dilluns, 14 de juliol del 2014

Jugando con LED's


7 JUGANDO CON LED'S

Podemos controlar LED's con Arduino de forma creativa, veamos un ejemplo:


DOS LED's CONTROLADOS CON 1 SALIDA

Materiales:
1 Arduino.
2 LED
2 Resistencia 330 Ω (Naranja Naranja Marrón Oro)
cables y una Protoboard (placa de conexiones para realizar prototipos electrónicos)


2 Led's con 1 Salida.

El circuito anterior permite conmutar 2 LED's de forma que mientras el primero está a nivel bajo, el otro estará a nivel alto.
Podemos controlar el tiempo que está cada uno encendido mediante la instrucción delay. El tiempo generalmente se indica en milisegundos excepto cuando utilizamos otra escala en microsegundos, así delay (1000); indica un retardo de 1 segundo.
Vamos a realizar una secuencia de 1 segundo cada led, 2 segundos cada led y 3 segundos led1 y 1 segundo led 2.
Utilizaremos el bloque [delay  MILIS miliseconds]
Vamos a conectar nuestros LED's a la salida D7 de Arduino.
Necesitamos conectar a +5V del Arduino nuestro circuito de LED's y la señal de control estará conectada en la unión de los LED's. Recordar que estos diodos Led tienen polaridad, así que sólo recordar que la patilla más larga es + (ánodo).

Programa en Ardublock:
2 Leds
El programa es muy simple y sólo enviamos por el pin D7 señales ON y OFF con los retardos (delays) correspondientes.
PROGRAMA 2LEDS.ino
void setup() // CONFIGURACION ENTRADAS Y SALIDAS
{
  pinMode( 7 , OUTPUT);      // PIN7 COMO SALIDA
}
void loop() // INICIO SECUENCIAL
{
  digitalWrite( 7 , HIGH ); // SALIDA A '1'
  delay( 1000 ); // RETARDO DE 1 SEG
  digitalWrite( 7 , LOW ); // SALIDA PUESTA A '0'
  delay( 1000 ); // RETARDO 1 SEG
  digitalWrite( 7 , HIGH );
  delay( 2000 ); // RETARDO 2 SEGUNDOS
  digitalWrite( 7 , LOW );
  delay( 2000 );
  digitalWrite( 7 , HIGH );
  delay( 3000 ); // RETARDO 3 SEGUNDOS
  digitalWrite( 7 , LOW );
  delay( 1000 );
}
Circuito:
2LEDS protoboard.
Esquema:

Esquema eléctrico 2 LEDS 1 Salida.

Vídeo youtube 


LED'S RGB
Un diodo led RGB [14] realmente es un dispositivo electrónico con 3 leds de diferentes colores en la misma cápsula. Los LED's son R(Red) G(Green) B (Blue) es decir Rojo, Verde y Azul. Hay de cátodo comúm (-) o de ánodo común (+).
Necesitaremos 3 pins de salida en Arduino para poder activar cada uno de los LED.
D8 Rojo, D9 Verde y D10 Azul.


LED RGB Cátodo comúm.

Vamos a implementar un sencillo secuenciador de colores para un LED RGB de cátodo común, utilizaremos las salidas D8,D9,D10

LED RGB 
Materiales:
1 Arduino.
1 LED RGB
3 Resistencias 330 Ω (Naranja Naranja Marrón Oro)
cables y una Protoboard (placa de conexiones para realizar prototipos electrónicos)
Circuito:
RGB LED

Vamos a realizar una secuencia de colores Rojo, Verde, Azul con un delay de 1 segundo entre cada transición.  Utilizaremos un nuevo concepto en Ardublock, utilizaremos tres subrutinas[13], una para cada color.

Vamos a utilizar subrutinas, básicamente son subprogramas que llamamos cuando los necesitamos y los desarrollamos como bloques aparte.
Uso de subrutinas
Programa:
Programa principal


 Subrutinas reset,verde y azul.


Subrutina rojo.

Código
RGB.ino
//-------------- programa RGB secuencial ------------------------------------
void reset();  //SUBRUTINA RESET
void verde();  //SUBRUTINA VERDE
void azul();   //SUBRUTINA AZUL
void rojo();   //SUBRUTINA ROJO
void setup()  //CONFIGURA PINS SALIDA
{
  pinMode( 8 , OUTPUT);
  pinMode( 9 , OUTPUT);
  pinMode( 10 , OUTPUT);
}
void loop()
{
  reset(); //LLAMADA SUBRUTINA RESET
  rojo();  // LAMADA SUBRUTINA ROJO
  delay( 1000 ); //PAUSA 1 SEGUNDO
  reset();
  verde();
  delay( 1000 );
  reset();
  azul();
  delay( 1000 );
}
// SUBRUTINAS QUE DEFINEN LOS COLORES
void rojo()  // ROJO 100
{
  digitalWrite( 8 , HIGH );
  digitalWrite( 9 , LOW );
  digitalWrite( 10 , LOW );
}
void azul() //SUBRUTINA AZUL 001
{
  digitalWrite( 8 , LOW );
  digitalWrite( 9 , LOW );
  digitalWrite( 10 , HIGH );
}
void reset() //SUBRUTINA RESET SALIDA 000
{
  digitalWrite( 8 , HIGH );
  digitalWrite( 9 , LOW );
  digitalWrite( 10 , LOW );
}
void verde()  //SUBRUTINA VERDE 010
{
  digitalWrite( 8 , LOW );
  digitalWrite( 9 , HIGH );
  digitalWrite( 10 , LOW );
}




[13] http://arduino.cc/es/Reference/FunctionDeclaration
[14] https://www.sparkfun.com/products/105
[15] http://youtu.be/KILIg76Q9SM  2 Leds
[16] http://youtu.be/ZBSirFV-SYE  Led RGB Secuencial

1 comentari: