Lámpara restaurada y reconvertida a rgb

Esta pequeña lámpara la compré hace años con mis amigos.

Es una baratija, pero como le guardo cariño y no quise tirarla porque ya no funcionaba, pues decidí arreglarla pintándola de color plateado y mejorarla con 3 leds RGB de 3W cada uno.

Para poder controlarlo todo con un solo potenciómetro usé arduino; el arduino más barato y pequeño del mercado: attiny85

Sus ventajas son el precio y el tamaño. Por menos de 2€ la podemos encontrar en aliexpress.

Su mayor desventaja es que no tiene comunicación en serie nativa de arduino si no usa liberías propias. También me ha dado muchos problemas en la comunicación i2c.



Y este es el resultado final:

Le he añadido una función extra que no está en el vídeo:

Cuando el potenciómetro está en el valor máximo hace un avance automático y progresivo de los colores.

Os dejo el código para generar un degradado de todos los colores ya que no encontré por internet algo parecido y tuve que hacerlo.

No era algo como anidar bucles ya que eso no haría un degradado de colores, sino que haría una especie de degradado con saltos entre colores diferentes y quedaría un efecto feo.

En su lugar hay que rellenar un color y vaciar el anterior:

void run_colors()
{
  //ROJO A AMARILLO
  r=255;
  g=0;
  b=0;
  for(g=0;g<255;g++)
  {
    analogWrite(pin_r, r);     analogWrite(pin_g, g);    analogWrite(pin_b, b);
    delay(50);
  }
  if(pot_range_down(704))return; //si hemos variado el potenciómetro salimos de la función
  //AMARILLO A VERDE 
  for(r=255;r>0;r--)
  {
    analogWrite(pin_r, r);     analogWrite(pin_g, g);    analogWrite(pin_b, b);
    delay(50);
  }
  if(pot_range_down(704))return;
  //VERDE A CYAN
  for(b=0;b<255;b++)
  {
    analogWrite(pin_r, r);     analogWrite(pin_g, g);    analogWrite(pin_b, b);
    delay(50);
  }
  if(pot_range_down(704))return;
  //CYAN A AZUL
  for(g=255;g>0;g--)
  {
    analogWrite(pin_r, r);     analogWrite(pin_g, g);    analogWrite(pin_b, b);
    delay(50);
  }
  if(pot_range_down(704))return;
  //AZUL A MAGENTA
  for(r=0;r<255;r++)
  {
    analogWrite(pin_r, r);     analogWrite(pin_g, g);    analogWrite(pin_b, b);
    delay(50);
  }
  if(pot_range_down(704))return;
  //MAGENTA A ROJO
  for(b=255;b>0;b--)
  {
    analogWrite(pin_r, r);     analogWrite(pin_g, g);    analogWrite(pin_b, b);
    delay(50);
  }  
 
}

Deja un comentario

Tu dirección de correo electrónico no será publicada.

*

code

nasa pic of the day
laresistenciadelbit/bats

some of my scripts for dayly use

laresistenciadelbit/wp_githubin

wordpress plugin for embedding github content

laresistenciadelbit/beacon

android beacon position triangulation app

laresistenciadelbit/androidTabs

example of dynamic scrolling tabs and dynamic sliding tabs for android studio

laresistenciadelbit/login_space

script for changing your login screen to last nasa uploaded picture

laresistenciadelbit/narpa

(N)o (A)(R)(P) (A)ttacks

laresistenciadelbit/d2gls

(D)iablo (2) (g)ame (l)ist (s)niffer

laresistenciadelbit/wp_nasapic

wordpress plugin for a widget with the last nasa uploaded picture.

laresistenciadelbit/starfield

draw a star field in js moving in the desired direction

laresistenciadelbit/drone

quadcopter made with arduino (arduino pro micro + modules)