Faça este relógio digital de 7 segmentos com circuito de alerta sonoro

Experimente Nosso Instrumento Para Eliminar Problemas





Neste post, vamos construir um relógio digital usando um display LED de 7 segmentos com design controlado por Arduino.

DE:



Como funcionam os circuitos

O circuito de relógio de 7 segmentos proposto é barato e até mesmo um iniciante em Arduino pode realizá-lo com facilidade. Este relógio consiste em quatro visores de 7 segmentos, dois para horas e dois para minutos.

O display está emparelhado com IC 4026, que é projetado para operar displays de 7 segmentos. Cada IC 4026 é controlado pelo Arduino.



Este relógio possui função de alerta sonoro, que emite um sinal sonoro a cada começo de hora, dando uma ideia aproximada do tempo sem olhar para o relógio. Este relógio não possui 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 telas e dois LEDs para o indicador AM / PM e nenhuma função sofisticada além de bipes a cada hora.

Protótipo do autor:

Resultado do teste do relógio digital de 7 segmentos

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 telas de 7 segmentos e o cérebro do arduino do relógio. Dois resistores pull down são conectados ao pino de reset do IC 4026 para evitar o reset acidental devido à carga estática. Indicador AM / PM conectado ao Arduino em combinação com resistor limitador de corrente de 330 ohms.

Nota: um resistor de 220 ohm a 330 ohm deve ser conectado a cada segmento do display.

Relógio digital de 7 segmentos com circuito de alerta sonoro

Configuração do pino do IC 4026:

Configuração de pinos do IC 4026

O circuito do beeper:

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 por cerca de um segundo. Este alerta sonoro ajuda o usuário a ter uma ideia aproximada sobre o tempo. O pino nº 2 do IC555 deve ser conectado ao pino nº 10 do Arduino.

Circuito de campainha IC 555

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 a hora:

Por ser um design muito minimalista, o “botão de reset” pode ser usado para definir o tempo. Mas o usuário deve acertar a hora com a ajuda do relógio de referência. O usuário deve redefinir o arduino para exatamente 12 horas. Feito isso, o relógio atualiza a hora por conta própria.

Nota: Uma vez que o relógio digital de 7 segmentos explicado acima usando Arduino não tem “chip de relógio em tempo real”, para manter o tempo preciso, existe a possibilidade de que o tempo possa avançar / atrasar devido à mudança na temperatura ambiente.

Para corrigir isso, aqui estão as etapas:

• Se o seu relógio chegar à hora do relógio de referência em alguns segundos, ele precisa ser desacelerado, anote a diferença e insira o valor do programa em milissegundos.

delay (2000) // correção de erro (varia com a temperatura) Isso diminuirá alguns segundos a cada hora.

• Substitua 2000 pelo seu valor.

• Se você cronometrar atrasos, defina o “atraso (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)” pelo seu valor para acelerar o tempo a cada minuto.

Essas etapas não garantem que a hora seja sempre precisa, mas ajudam a mantê-la com o mínimo de imprecisão. O design proposto é o relógio de 12 horas.




Anterior: Circuito Indicador de Carga Total da Bateria usando Dois Transistores Próximo: Gerador de Efeito Corona