Neste post vamos construir um relógio digital usando display LED de 7 segmentos com design controlado por Arduino.
Como funcionam os circuitos
O circuito de clock de 7 segmentos proposto é barato e até mesmo iniciantes no Arduino podem realizá-lo com facilidade. Este relógio consiste em quatro displays de 7 segmentos, dois para horas e dois para minutos.
A tela está emparelhada com o IC 4026, projetado para acionar telas de 7 segmentos. Cada IC 4026 é controlado pelo Arduino.
Este relógio tem a função de alerta sonoro, que emite um sinal sonoro a cada início de hora, dando uma ideia aproximada da hora sem olhar para o relógio. Este relógio não tem função de alarme.
O código do Arduino não precisa de nenhuma biblioteca especial para compilar o programa. O relógio tem um design muito minimalista, apenas quatro displays e dois LEDs para indicador AM/PM e nenhuma função sofisticada além de apitar a cada hora.
Protótipo do autor:


Aqui está um protótipo completo usando papelão e materiais de sucata:


O design:
O circuito consiste em quatro IC 4026 para controlar quatro displays de 7 segmentos e o cérebro do relógio arduino. Dois resistores pull-down são conectados ao pino de reset do IC 4026 para evitar um reset acidental devido à carga estática. Indicador AM/PM conectado ao arduino em combinação com resistor limitador de corrente de 330 ohm.
Nota: O resistor de 220 ohm a 330 ohm deve ser conectado a cada segmento do display.


Configuração dos pinos do IC 4026:


O circuito do bip:
O circuito do beeper é apenas um multivibrador monoestável projetado usando IC555. Quando um pulso negativo é alimentado ao pino #2 do IC555, ele emite um bipe aproximadamente por um segundo. Este alerta de áudio ajuda o usuário a ter uma ideia aproximada da hora. O pino nº 2 do IC555 deve ser conectado ao pino nº 10 do arduino.


Código do programa:
//---------Program developed by R.Girish---------------//
int mint=13;
int hrs=11;
int beep=10;
int rst=8; // reset to mint ic.
int rsth=9; //reset to hrs ic.
int am=7;
int pm=6;
int y=0;
int t=0;
int x=0;
void setup()
{
pinMode(beep,OUTPUT);
pinMode(hrs,OUTPUT);
pinMode(am,OUTPUT);
pinMode(pm,OUTPUT);
pinMode(mint,OUTPUT);
pinMode(rst,OUTPUT);
pinMode(rsth,OUTPUT);
}
void loop()
{
digitalWrite(beep,1);
digitalWrite(13,0);
delay(10000);
delay(10000);
delay(10000);
delay(10000);
delay(10000);
delay(10000);
digitalWrite(13,1);
t=t+1;
if(t==60)
{
digitalWrite(rst,1);
digitalWrite(rst,0);
digitalWrite(hrs,1);
digitalWrite(hrs,0);
digitalWrite(beep,0);
digitalWrite(beep,1);
x=x+1;
y=y+1;
t=0;
delay(2000); // error fixing (varies with temperature)
}
if(x==13) // display 1'O clock after 12'O clock.
{
digitalWrite(rsth,1);
digitalWrite(rsth,0);
digitalWrite(hrs,1);
digitalWrite(hrs,0);
x=1;
}
if(y<12)
{
digitalWrite(am,1);
digitalWrite(pm,0);
}
if(y>=12)
{
digitalWrite(pm,1);
digitalWrite(am,0);
}
if(y==24) y=0;
}
//---------Program developed by R.Girish---------------//
Como definir o tempo:
Sendo um design muito minimalista, o “botão reset” pode ser usado para definir o tempo. Mas o usuário tem que definir a hora com a ajuda do relógio de referência. O usuário deve reiniciar o arduino exatamente às 12 horas. Feito isso, o relógio atualiza a hora por conta própria.
Nota: Como o relógio digital de 7 segmentos explicado acima usando Arduino não possui “chip de relógio de tempo real”, para manter o tempo preciso, existe a possibilidade de que o tempo possa adiantar/atrasar devido à mudança na temperatura ambiente.
Para corrigir isso, aqui estão os passos:
• Se o seu relógio adiantar o tempo do relógio de referência em alguns segundos, ele precisa ser desacelerado, anote a diferença e insira o valor no programa em milissegundos.
atraso(2000); // correção de erros (varia com a temperatura) Isso diminuirá alguns segundos a cada hora.
• Substitua 2000 pelo seu valor.
• Se você atrasar o relógio, defina o “delay(0); //correção de erros (varia com o tempo)” e faça as seguintes alterações no programa:
delay(10000);
delay(10000);
delay(10000);
delay(10000);
delay(10000);
delay(10000);
to
delay(10000);
delay(10000);
delay(10000);
delay(10000);
delay(10000);
delay(9700);
Substitua “atraso(9700);” com o seu valor para acelerar o tempo a cada minuto.
Essas etapas não garantem que o tempo seja sempre preciso, mas ajudam a manter o tempo com o mínimo de imprecisão. O projeto proposto é um relógio de 12 horas.
Hashtags: #Faça #este #relógio #digital #segmentos #circuito #alerta #bipe
FONTE
Nota: Este conteúdo foi traduzido do Inglês para português (auto)
Pode conter erros de tradução
Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…
Veja na FONTE até ser revisado o conteúdo.
Status (Ok Até agora)
Se tiver algum erro coloque nos comentários


