Conviértete en un Experto de Arduino
Te invito a mi Curso de Arduino desde cero, el cual incluye:
– +15 proyectos prácticos
– Lecciones teóricas de los componentes
– Creación de código para Arduino
– 13 horas de video
– El Curso más completo en Español
Acerca del proyecto
¡Hola amigos!
En esta ocasión, he recreado un proyecto muy sencillo de realizar con Arduino, y que si estás iniciando en este mundo, seguro te interesará.
Se trata de un reloj binario creado con luces led.
He preparado el material para que sea ameno y fácil de seguir, explicando paso a paso cómo conectar cada componente. ¡Empecemos!
Contents
Componentes para crear un reloj binario con Arduino
La lista de componentes es muy sencilla. Te los enlisto a continuación:
Componentes | Recomendación para adquirirlos |
1 x Protoboard | https://amzn.to/337bbhQ |
6 x Leds Color Rojo | https://amzn.to/2INiBQv |
6 x Leds Color Verde | https://amzn.to/2INiBQv |
5 x Leds Color Amarillo | https://amzn.to/2INiBQv |
17 x Resistencias de 330 ohms | https://amzn.to/35RnIrv |
17 x Jumpers | https://amzn.to/333iFCA |
1 x Arduino UNO | https://amzn.to/3nNUQX0 |
Diagrama de conexión para crear un reloj binario con Arduino
El diagrama de conexión es bastante sencillo, aunque parezcan muchos cables, realmente la conexión es la misma para cada salida del Arduino:
A continuación, he aislado una sola conexión, para que veas cuál es la conexión básica de cada uno de los leds, si te fijas, básicamente, es un led conectado a través del polo positivo a uno de los pines del Arduino, mientras que la pata negativa, va conectada a una resistencia, y finalmente al canal que conecta con el pin GND del Arduino.
Código fuente para hacer funcionar el reloj binario con Arduino
El código fuente requiere un poco de comprensión acerca de funciones propias del lenguaje de Arduino. Dicho esto, el código es el siguiente:
int ledPinsSec[] = {2, 3, 4, 5, 6, 7}; int ledPinsMin[] = {8, 9, 10, 11, 12, 13}; int ledPinsHr[] = {14, 15, 16, 17, 18, 19}; int secSize =sizeof(ledPinsSec) / sizeof(int); int minSize = sizeof(ledPinsMin) / sizeof(int); int hourSize = sizeof(ledPinsHr) / sizeof(int); int seconds = 30; int minutes = 30; int hours = 15; void setup() { Serial.begin(9600); //Obtiene el número de elementos de un arreglo Serial.println(sizeof(ledPinsSec)); for(int i = 0; i< secSize;i++) { pinMode(ledPinsSec[i], OUTPUT); } for(int i = 0; i< minSize;i++) { pinMode(ledPinsMin[i], OUTPUT); } for(int i = 0; i< hourSize;i++) { pinMode(ledPinsHr[i], OUTPUT); } } void loop() { seconds++; if(seconds > 59) { seconds = 0; minutes++; if(minutes > 59) { minutes = 0; hours++; if(hours > 23) { hours = 0; } } } //Serial.println((char) seconds); Serial.print("Hours: "); Serial.print(hours); Serial.print(" Minutes: "); Serial.print(minutes); Serial.print(" Seconds: "); Serial.println(seconds); DisplaySeconds(); DisplayMinutes(); DisplayHours(); delay(1000); /* DisplaySeconds(); DisplayMinutes(); DisplayHours();*/ } void DisplaySeconds() { for(int i = secSize - 1; i>= 0; i--) { int currentSecond = bitRead(seconds, i); digitalWrite(ledPinsSec[i], currentSecond); } } void DisplayMinutes() { for(int i = minSize - 1; i>= 0; i--) { int currentMinute = bitRead(minutes, i); digitalWrite(ledPinsMin[i], currentMinute); } } void DisplayHours() { for(int i = hourSize - 1; i>= 0; i--) { int currentHour = bitRead(hours, i); digitalWrite(ledPinsHr[i], currentHour); } }
Video para crear un reloj binario con Arduino paso a paso
Una vez dicho todo lo anterior, te dejo un video con el paso a paso, por si tienes dudas respecto a algún paso en específico.