Si aún no eres usuario, puedes crear una cuenta o entrar
Video Tutorial Arduino: LED RGB y Pulsadores

Ésta semana continuamos con la segunda edición de nuestro video tutorial sobre Arduino!!

Hoy continuamos un poco sobre la linea básica, ésta vez utilizaremos un diodo LED de tres colores (RGB) junto con tres pulsadores como método de entrada.

Podremos variar la intensidad de cada color mediante los botones, por lo que manejaremos el inicio de un dispositivo de entrada por lo que nuestro montaje responde a "estimulos" exteriores y no sólo nos basamos en encender un LED.

Cómo sé que estais ansiosos, no os entretengo más y os dejo la segunda edición en video a continuación...

Cómo siempre y por supuesto, estamos también ansiosos de ver vuestros avances y por supuesto vuestras sugerencias que nos fueron llegando a kilos toda ésta semana, asi que dejar vuestros comentarios y también podeis comenzar a calentar motores ya que en la siguiente edición os daremos un poco más de caña con un proyecto algo más complejo y geek... asi que atentos!




Video Tutorial Arduino: Led RGB y Pulsadores from BricoGeek on Vimeo.

Lista de materiales y descargas

Código fuente:

/***********************************
  Tutorial Diodos LED Tricolor y Pulsadores  
  Oscar Gonzalez - Marzo 2009
  www.BricoGeek.com
  
  Debes conectar el Diodo LED RGB según los pines de configuración indicados como
  "ledRojo", "ledAzul" y "ledVerde". Lo mismo para los botones, con sus respectivas
  resistencias como indicado en el video tutorial.
  
  Básicamente se trata de enviar un valor de entre 0 y 254 a cada color mediante la función analogWrite() a la cual
  indicamos el PIN a utilizar y el valor a enviar. Podemos utilizar otros pines, pero es muy importante utilizar los pines
  indicados como "PWM" ya que de no utilizarlo, no podremos variar el color y el programa no tendrá efecto alguno.
  
  Utiliza éste código como mejor te guste ya que es totalmente libre, aunque siempr ese agradece algún comentario
  sobre el autor original! :)
  
 ************************************/

// Define los pines a utilizar para cada color
int ledRojo=3;
int ledAzul=5;
int ledVerde=6;

// Guarda los valores a signar a cada color (0-254)
int ValorRojo=254;
int ValorVerde=254;
int ValorAzul=254;

// Define los pines utilizados por los botones
int BotonSelect = 8;
int BotonReduce = 9;
int BotonIncrementa = 10;

int ledSeleccionado = 0;
 
void setup() 
{ 

  // Hay que indicar que lo pines utilizados por los botones son de ENTRADA
  pinMode(BotonSelect, INPUT);
  pinMode(BotonReduce, INPUT);
  pinMode(BotonIncrementa, INPUT);
  
  analogWrite(ledRojo, 255);  
} 
 
// Valor por defecto: Rojo
// 0= Rojo, 1=Verde, 2=Azul
int pinLed = 0;
 
void loop() 
{ 
     
   int valorLed = 0;

   if (digitalRead(BotonSelect) == HIGH) 
   {
      pinLed++;  
      
      // Para no pasarnos de vueltas
      if (pinLed > 2) { pinLed=0; }
   
      // Apagamos todos los LED ya qu eluego se mostrará sólo el led seleccionado
      analogWrite(ledRojo, 0);
      analogWrite(ledVerde, 0);
      analogWrite(ledAzul, 0);      
      
      // Esperamos a que el boton se suelte
      while (digitalRead(BotonSelect) == HIGH) {  }            
      delay(10); // Esperamos un poquito más...
   }
  
   // Comprobamos si se incrementa el valor
   if (digitalRead(BotonIncrementa) == HIGH) 
   { 
     if (pinLed == 0) { ValorRojo++; }
     if (pinLed == 1) { ValorVerde++; }
     if (pinLed == 2) { ValorAzul++; }
     
     delay(5);
    }
    
   // Comprobamos si se reduce el valor
   if (digitalRead(BotonReduce) == HIGH) 
   { 
     if (pinLed == 0) { ValorRojo--; }
     if (pinLed == 1) { ValorVerde--; }
     if (pinLed == 2) { ValorAzul--; }
     
     delay(5);
    }        
    
    // Esto para no pasarse de vueltas en el valor de salida (0-254)
    if (ValorRojo > 254) { ValorRojo=254; }
    if (ValorRojo < 0) { ValorRojo=0; }
    
    if (ValorVerde > 254) { ValorVerde=254; }
    if (ValorVerde < 0) { ValorVerde=0; }

    if (ValorAzul > 254) { ValorAzul=254; }
    if (ValorAzul < 0) { ValorAzul=0; }    

  // Actualiza el valor del color seleccionado
  if (pinLed == 0) { analogWrite(ledRojo, ValorRojo); }
  if (pinLed == 1) { analogWrite(ledVerde, ValorVerde); }
  if (pinLed == 2) { analogWrite(ledAzul, ValorAzul); }
  
}

Debes conectar el Diodo LED RGB según los pines de configuración indicados como "ledRojo", "ledAzul" y "ledVerde". Lo mismo para los botones, con sus respectivas resistencias como indicado en el video tutorial.

Básicamente se trata de enviar un valor de entre 0 y 254 a cada color mediante la función analogWrite() a la cual indicamos el PIN a utilizar y el valor a enviar. Podemos utilizar otros pines, pero es muy importante utilizar los pines indicados como "PWM" ya que de no utilizarlo, no podremos variar el color y el programa no tendrá efecto alguno.

Utiliza éste código como mejor te guste ya que es totalmente libre, aunque siempre se agradece algún comentario sobre el autor original! :)


Comentarios:


muma
Enviado el 07/03/2009 (21:17)
Hola, buen trabajo, la verdad es que está muy bien para engrosar los básicos, solo una cosilla, si en los siguientes podríais darle un poco más de importancia a el montaje.

Por lo demás un gran tutorial, con trabajos así da gusto trabajar.

Ramon
Enviado el 08/03/2009 (12:54)
Estupendos tutoriales, seguid así, me esta ayudando mucho a empezar con la electronica.

A ver si podeis comentar como usar algunos de los componentes que vendeis como el LCD serial 16x2 blanco sobre negro de 3 conectores que no se por ejemplo que libreria usar para el arduino. Estaria bien que incluyeseis codigos de ejemplo junto a los productos para practicar. Gracias.

Outl4w
Enviado el 08/03/2009 (15:40)
De nuevo enhorabuena por el trabajo, espero ansioso el proyecto ese más geek que comentas.
Sólo un apunte, así como me ha gustado que en éste ya colgaras el código para verlo y/o ejecutarlo creo que sería una gran idea mostrar en el video tutorial el esquema eléctrico del montaje, no hace falta que te mates que ya bastante haces con tal de que lo hagas a boli en una hoja como cuando explicas lo del interruptor llega.
Como siempre insistir en que no es ninguna exigencia(solo faltaría) sino más bien una humilde opinión por si te sirve de ayuda.
Saludo

Jubjub
Enviado el 09/03/2009 (23:50)
Gran aporte, a ver si puedo empezar a practicar en poco con mi arduino nueva, que estoy impaciente con tanto ver videotutoriales y poca accion ;P

Esperare con impaciencia ese proyecto mas geek que dices ^^


DunDI
Enviado el 13/03/2009 (17:24)
Los tutoriales están muy bien, aunque como han dicho antes, falta un poco más de atención en el montaje.

Estaría bien que explicaras el uso de timers en arduino (hacer referencias al datasheck del micro), ya que programar con poolling no es lo idóneo.

Saludos

Fernando
Enviado el 07/04/2009 (19:59)
Muy buenos estos videotutoriales, espero que continuen con una dificultad progresiva.

Kingfalo
Enviado el 23/05/2009 (19:09)
Enhorabuena por el tutorial, me he quedao con ganas de más, ja. Ayer (que recibí mi arduino) para practicar hice el led parpadeante, el coche fantástico y alguna cosita más.

PD, cuando lo maneje mejor ya subiré algo!!

luis
Enviado el 26/06/2009 (21:15)
Hola gracias por el tutorial. lo único es que no podemos ver cómo van exactamente las resistencias del led.


Saludos

Wilson
Enviado el 04/09/2009 (02:54)
Hola somo unos estudiantes de ing civil en informatica y vimos tu gran tutorial sobre la intesidad de los led. Devido a tu tutorial nos motivamos a crear un ascensor a escala que vaya a un nivel solicitado dependiendo del pulsador presionado, logramos hacer correr el motor programando a travez de la arduino, pero no sabemos en que lugar colocar los pulsadores a la arduino y como programarlos para que el motor de tantas revoluciones en cierta direccion y luego detenerse despues de cierto tiempo.

Si no seria mucho pedir, nos podrias enviar un esquema o video donde nos expliques como poder lograr nuestro proyecto.

Gracias de antemano.

P.D: Estamos utilizando la arduino atmega328 (Duemilanove)

Atte:

Wilson

dani agenjo
Enviado el 04/01/2010 (19:03)
se puede hacer que se encienda con 2 colores a la vez ybajar la intensidad?
ejemplo lila= rojo + azul


CARLOS LOPEZ
Enviado el 10/02/2010 (01:49)
hola no tienes algun kid que genere video con una matrix de diodos led tricolor asi sea vaja resolucion pero que se vea algo de video ,



Enviar comentario

Debes disponer de una cuenta de usuario para publicar un comentario.

Si aún no dispones de una cuenta, únete a la comunidad de BricoGeek.com y registrate ahora, te llevará tan solo un minuto y es gratis. También puedes identificate si ya dispones de una cuenta de usuario.
rss

Conecta con BricoGeek.com

Canales sociales

Nos gusta mucho estar en contacto con nuestros lectores y saber más acerca de sus proyecto e inventos.


También puedes sugerir una noticia en el blog
Tienda de Electrónica DIY y Arduino

Lo que se cuece...

Comentarios recientes Más comentado Top noticias
Feed de novedades

Tienda BricoGeek.com

Electrónica para tus proyectos!

Estás preparando un proyecto o quieres iniciarte en la electrónica? Encuentra todo lo que necesitas en la tienda.

Visita la tienda BricoGeek!

La familia de BricoGeek.com

Conoce toda la gente que hace que BricoGeek.com sea posible cada día:

Alejandro Mallo
Colaborador
Manuel Jiménez
Colaborador
Pablo Toimil
Colaborador
Puedes hacer click sobre un autor para ver todas sus noticias


Etiquetas más populares:

Descubre todo el contenido de bricogeek.com con las etiquetas más populares:

Páginas amigas:

Aqui tienes una selección de las páginas que más nos gusta visitar


© BricoGeek.com 2005-2010

Demuestra lo que sabes hacer!