Página principal
Arduino
Luces de navidad
Luces intermitentes
Cuando empiezas a programar con arduino,
lo primero que pruebas es el LED de luz intermitente que viene
incorporado en el propio arduino.
Esta práctica la he diseñado para principiantes que empiezan
con arduino y quieren probar un poco de todo.
Seguro que en muchas casas tendréis las clásicas luces de navidad
con un botón para cambiar el modo de parpadeo, esta práctica hace
eso con arduino.
En mi caso tenía una tira de luces de LED bastante larga, por lo que
decidí cortarla para hacer dos tiras y hacerlo mucho mas vistoso.
Las salidas de arduino pueden proporcionar como mucho 40mA, por lo
que tenéis que ajustar el valor de las resistencias para que no
superen este valor, en mi caso era de 100 ohmios, y como mucho
superaba los 20mA.
Para cambiar el modo de parpadeo he utilizado un pulsador.
Esquema.
Diagrama de montaje.
El programa utiliza directivas del procesador como :
#define SALIDA1 9
Esto indica al preprocesador que si encuentra la etiqueta
SALIDA1 lo cambie por 9 antes de compilar.
Es fácil cambiar de un plumazo la puerta de salida en todo el
programa.
Cuando se empieza a crear un programa es normal poner puntos de
depuración para comprobar en cada momento lo que sucede.
Cuando se termina el programa sobran los puntos de depuración, pero
no conviene quitarlos por si mas tarde se necesitan.
El caso que ocupan memoria y no sirven para nada. Esto se soluciona
con las directivas de preprocesador: #if y #endif
.
En mi programa he colocado una etiqueta con el nombre #define
DEBUG 0 .
Si cambiamos el 0 por el 1 , cambiamos entre el modo normal y el de
depuración.
Cuando empiezo con un programa empleo la consola serie para ver
distintos datos. Luego no me sirve para nada y ocupa memoria.
#if DEBUG==1
Serial.begin(9600);
#endif
Con esta instrucción compilo o no dependiendo del valor de DEBUG.
//Con consola serie 3898 bytes
//Sin consola serie 2158 bytes
Además de ocupar menos memoria, es más rápido.
El programa utiliza varias técnicas:
Repartición de tiempo mediante contadores. tiempo0--;
tiempo2--; tiempo3--; tiempo4--;
Cambio de modo de parpadeo leyendo cada 10mS el pulsador. HIGH==digitalRead(ENTRADA)
En muchas de las opciones se podría haber utilizado las salidas
digitales normales con la orden digitalWrite(SALIDA1, LOW);
, pero como debía utilizar salidas analógicas, he empleado para todo
este método: analogWrite(SALIDA1, a);
Lecturas de secuencia de parpadeo desde una matriz de 10 elementos.
unsigned char secuenciaA1[10]={255,0,255,0,0,0,0,0,0,0};
unsigned char
secuenciaB1[10]={0,0,0,255,255,255,255,0,0,0};
Pienso que esta práctica es sencilla y bastante vistosa.
Montaje.
El circuito se puede alimentar fácilmente mediante un POWER BANK, o
a través de 3 pilas de 1.5V (4.5V) , el arduino funciona en la
mayoría de las veces con tensiones de hasta 4V.
VIDEO
PROGRAMA
Saludos.
Juan Galaz
Bibliografía: