0% encontró este documento útil (0 votos)
356 vistas5 páginas

Reloj Binario Con Arduino

El documento describe un proyecto para crear un reloj binario controlado por un Arduino Uno. Consiste en un circuito con LEDs para mostrar la hora en binario usando un led encendido para 1 y apagado para 0. Explica cómo calcular las resistencias necesarias y el diagrama del circuito. También incluye el código para el Arduino que convierte los valores decimales de hora y minutos a binario y controla los LEDs.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
356 vistas5 páginas

Reloj Binario Con Arduino

El documento describe un proyecto para crear un reloj binario controlado por un Arduino Uno. Consiste en un circuito con LEDs para mostrar la hora en binario usando un led encendido para 1 y apagado para 0. Explica cómo calcular las resistencias necesarias y el diagrama del circuito. También incluye el código para el Arduino que convierte los valores decimales de hora y minutos a binario y controla los LEDs.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

3rd April 2013

Recientemente adquir un pequeo gadget, un Arduino Uno R3 [http://arduino.cc/en/Main/arduinoBoardUno] ,


as que me he dedicado a incursionar en pequeos proyectos por diversin, uno de ellos y que describir a
detalle es un reloj que muestra la hora en binario, un led para cada digito traducido como 1 (Encendido) y 0
(Apagado).
Circuito ensamblado y conectado al Arduino:
[http://4.bp.blogspot.com/-_XZ_XOmTrO4/UVzniJmGPuI/AAAAAAAAAMM/IJuQIU2-
G9s/s1600/IMG_20130403_215334.jpg]
Circuito ejecutandose con un paso de 10ms para apreciar el comportamiento del circuito:
Para empezar, se vuelve til tener un diagrama del circuito que se realiza, para esto necesitamos los datos
que tendr el circuito.
Los pins de I/O digital del arduino manejan un voltaje de 5V a 40mA.
Reloj Binario: Circuito de LEDs controlado por un
Arduino
Pgina 1 de 5 Reloj Binario: Circuito de LEDs controlado por un Arduino
03/03/2014 http://ioniancoder.blogspot.mx/2013/04/reloj-binario-circuito-de-leds.html
Los LEDs que fueron usados consumen 3V a 20mA (Distintos Leds, usan distintos voltajes y requieren
corrientes diferentes), es por ello que para evitar el deterioro de los LEDs es necesario usar una resistencia,
para calcularla nos valemos de la ley de Ohm mediante la siguiente formula:
[http://3.bp.blogspot.com/-dTRCb2R6_94/UVzRYvyIN1I/AAAAAAAAAL8/D-Ri5LStxEA/s1600/ohm.png]
R: Resistencia (En Ohmios)
V: Voltaje (en Voltios)
I: Corriente elctrica (en Amperios)
En este caso usamos el voltaje resultante de la diferencia entre la entrada y lo consumido por el LED y la
corriente del LED.
20mA = 0,02A
R= (5-3)V/0.02A = 100 Ohm
Con los datos obtenidos se puede realizar el diagrama, en este caso es el siguiente:
[http://2.bp.blogspot.com/-F6VgcZL4ttE/UVzPQ8-
Yx0I/AAAAAAAAALw/E8ECe_nz2nc/s1600/Circuito.png]
Para poder controlar las luces para que se comporten como el reloj deseado, se debe codificar un programa
para el arduino, el pequeo programa simplemente acta como un reloj, pero tiene una funcin que se
encarga de encender los leds transformando los valores de minutos y horas (base 10) a binario (base 2) y
encender y apagar los LEDs correspondientes.
Pgina 2 de 5 Reloj Binario: Circuito de LEDs controlado por un Arduino
03/03/2014 http://ioniancoder.blogspot.mx/2013/04/reloj-binario-circuito-de-leds.html
Para esto, existe una manera muy sencilla de hacer la conversin y revisar bit a bit el cambio de base de
los nmeros, el equivalente al numero en base 10 se obtiene con la operacin modulo de la siguiente
manera:
Entero X en base 10.
X%2= (1 o 0), este valor corresponde al bit menos significativo.
Para obtener el siguiente numero, realizamos la misma operacin sobre el resultado obtenido dividiendo X
entre 2.
X/2 = Y
Y%2 = (1 o 2), este valor corresponde al bit siguiente de derecha a izquierda.
Este procedimiento se repite hasta que la divisin entera del numero a dividir de como resultado cero y el
resto sera el bit mas significativo del numero en binario.
Ej: X = 5
5%2= 1 (primer bit)
5/2 = 2
2%2 = 0 (segundo bit)
2/2 = 1
1%2 = 1 (tercer bit)
1/2 = 0 (finalizar)
Los bits se ordenan de ultimo a primero, por lo tanto, la representacin en binario del numero 5 es 101.
El cdigo para el programa de arduino utilizado es el siguiente:
int minuteOne = 4;
int minuteTwo = 5;
int minuteThree = 6;
int minuteFour = 7;
int minuteFive = 8;
int minuteSix = 9;
int hourOne = 10;
int hourTwo = 11;
int hourThree = 12;
int hourFour = 13;
void setup(){
pinMode(minuteOne, OUTPUT); pinMode(minuteTwo, OUTPUT); pinMode(minuteThree, OUTPUT);
pinMode(minuteFour, OUTPUT); pinMode(minuteFive, OUTPUT); pinMode(minuteSix, OUTPUT);
pinMode(hourOne, OUTPUT); pinMode(hourTwo, OUTPUT); pinMode(hourThree, OUTPUT); pinMode
(hourFour, OUTPUT);
}
int hour = 0;
int minute = 0;
int second = 0;
Pgina 3 de 5 Reloj Binario: Circuito de LEDs controlado por un Arduino
03/03/2014 http://ioniancoder.blogspot.mx/2013/04/reloj-binario-circuito-de-leds.html
void printTime(int h, int m){
if(m%2==0){
digitalWrite(minuteOne, LOW);
}else{
digitalWrite(minuteOne, HIGH);
}
if((m/2)%2==0){
digitalWrite(minuteTwo, LOW);
}else{
digitalWrite(minuteTwo, HIGH);
}
if(((m/2)/2)%2==0){
digitalWrite(minuteThree, LOW);
}else{
digitalWrite(minuteThree, HIGH);
}
if((((m/2)/2)/2)%2==0){
digitalWrite(minuteFour, LOW);
}else{
digitalWrite(minuteFour, HIGH);
}
if(((((m/2)/2)/2)/2)%2==0){
digitalWrite(minuteFive, LOW);
}else{
digitalWrite(minuteFive, HIGH);
}
if((((((m/2)/2)/2)/2)/2)%2==0){
digitalWrite(minuteSix, LOW);
}else{
digitalWrite(minuteSix, HIGH);
}
if(h%2==0){
digitalWrite(hourOne, LOW);
}else{
digitalWrite(hourOne, HIGH);
}
if((h/2)%2==0){
digitalWrite(hourTwo, LOW);
}else{
digitalWrite(hourTwo, HIGH);
}
if(((h/2)/2)%2==0){
digitalWrite(hourThree, LOW);
}else{
digitalWrite(hourThree, HIGH);
}
if((((h/2)/2)/2)%2==0){
digitalWrite(hourFour, LOW);
}else{
digitalWrite(hourFour, HIGH);
Pgina 4 de 5 Reloj Binario: Circuito de LEDs controlado por un Arduino
03/03/2014 http://ioniancoder.blogspot.mx/2013/04/reloj-binario-circuito-de-leds.html
}
}
void loop(){
second++;
if(second==60){
second=0;
minute++;
if(minute==60){
minute = 0;
hour++;
if(hour==12){
hour=0;
}
}
}
printTime(hour,minute);
delay(1000);
}
Publicado 3rd April 2013 por Andres

Introduce tu comentario...
Comentar como: Seleccionar pe
Publicar Vista previa
0
Add a comment
Pgina 5 de 5 Reloj Binario: Circuito de LEDs controlado por un Arduino
03/03/2014 http://ioniancoder.blogspot.mx/2013/04/reloj-binario-circuito-de-leds.html

También podría gustarte