Circuito de relógio digital usando display LCD 16 × 2

Experimente Nosso Instrumento Para Eliminar Problemas





A postagem explica como fazer um relógio digital simples usando Arduino e um display LCD 16 x 2.

Introdução

Como um entusiasta da eletrônica em uma fase, teríamos pensado em como fazer um relógio digital, especialmente quem está interessado no campo da eletrônica digital. Neste artigo, veremos como fazer um relógio digital e o design é tão simples que um novato no Arduino pode realizar o projeto sem dor de cabeça.



Este relógio digital tem apenas dois componentes principais, o Arduino e tela de LCD . O Arduino é o cérebro do relógio, que executa funções matemáticas e lógicas para atualizar o relógio a cada segundo.

Imagem de protótipo:

conexão de fio entre o LCD e o Arduino

A tela LCD é um display padrão com interface de 16 pinos. Tem 16 linhas e 2 colunas, o que significa que pode exibir 16 caracteres ASCII em uma linha e tem duas colunas e é por isso que é chamado de exibição 16x2.



A conexão de fio entre o LCD e o Arduino é padrão e podemos encontrar o tipo de conexão semelhante na maioria dos outros projetos baseados no Arduino-LCD.

O potenciômetro é usado para ajustar o contraste do display.

O usuário deve definir isso de forma otimizada para que possa ver os dígitos / caracteres exibidos corretamente em todas as situações de luz.

Há luz de fundo que permite ao usuário ver a tela durante a escuridão. O arduino pode ser alimentado externamente a partir de um conector DC de 7 volts a 12 volts.

Diagrama de circuito:

o potenciômetro é usado para ajustar o contraste do display.

CÓDIGO DO PROGRAMA ARDUINO:

// -------- Programa desenvolvido por R.GIRISH ------- //
#include
LiquidCrystal lcd(12,11,5,4,3,2)
int h=12
int m
int s
int flag
int TIME
const int hs=8
const int ms=9
int state1
int state2
void setup()
{
lcd.begin(16,2)
}
void loop()
{
lcd.setCursor(0,0)
s=s+1
lcd.print('TIME:' )
lcd.print(h)
lcd.print(':')
lcd.print(m)
lcd.print(':')
lcd.print(s)
if(flag<12) lcd.print(' AM')
if(flag==12) lcd.print(' PM')
if(flag>12) lcd.print(' PM')
if(flag==24) flag=0
delay(1000)
lcd.clear()
if(s==60) {
s=0
m=m+1
}
if(m==60)
{
m=0
h=h+1
flag=flag+1
}
if(h==13)
{
h=1
}
lcd.setCursor(0,1)
lcd.print('HAVE A NICE DAY')
//-----------Time setting----------//
state1=digitalRead(hs)
if(state1==1)
{
h=h+1
flag=flag+1
if(flag<12) lcd.print(' AM')
if(flag==12) lcd.print(' PM')
if(flag>12) lcd.print(' PM')
if(flag==24) flag=0
if(h==13) h=1
}
state2=digitalRead(ms)
if(state2==1) {
s=0
m=m+1
}
}
//-------- Program developed by R.GIRISH-------//

NOTA: O programa acima é verificado e sem erros. Caso você receba algum aviso ou erro, adicione a biblioteca LiquidCrystal manualmente.

Configuração de tempo:

Existem dois botões, um para definir as horas e outro para definir os minutos. Pressionar qualquer um deles aumentará os dígitos correspondentes. Para definir as horas, pressione o botão horas até que a hora correta seja exibida, da mesma forma para os minutos.

NOTA:

· Durante a configuração do tempo mantenha o botão pressionado até atingir o tempo desejado. Pressionar o botão momentaneamente pode não alterar a hora.

· Cada dígito é incrementado apenas segundo após segundo, isso ocorre porque todo o loop do programa foi atrasado por 1 segundo.

· O dígito dos segundos vai de 01 a 60 e faz um loop novamente e não exibirá '00' como o relógio digital tradicional faz.




Anterior: Inversor Solar para Ar Condicionado 1.5 Ton Próximo: Circuito Gerador de Turbina Eólica de Eixo Vertical Simples