Circuit digital de ceas folosind ecran LCD 16 × 2

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





Postul explică cum să faci un ceas digital simplu folosind Arduino și un ecran LCD de 16 x 2.

Introducere

Ca un pasionat de electronică într-o etapă, ne-am fi gândit cum să creăm un ceas digital, mai ales cei interesați de domeniul electronicii digitale. În acest articol vom vedea cum să creați un ceas digital, iar designul este atât de simplu încât un noob din Arduino poate realiza proiectul fără dureri de cap.



Acest ceas digital are doar două componente principale, Arduino și Ecran LCD . Arduino este creierul ceasului, care face funcții matematice și logice pentru a actualiza ceasul în fiecare secundă.

Imagine prototip:

conexiune prin cablu între LCD și Arduino

Ecranul LCD este un afișaj standard cu 16 pini interfațat. Are 16 rânduri și 2 coloane, ceea ce înseamnă că poate afișa 16 caractere ASCII la rând și are două coloane și de aceea se numește afișaj 16x2.



Conexiunea prin cablu între LCD și Arduino este standard și putem găsi tipuri similare de conexiuni în majoritatea celorlalte proiecte bazate pe Arduino-LCD.

Potențiometrul este utilizat pentru a regla contrastul afișajului.

Utilizatorul trebuie să seteze acest lucru în mod optim, astfel încât utilizatorul să poată vedea corect cifrele / caracterele afișate în toate situațiile de lumină.

Există lumină de fundal care permite utilizatorului să vadă afișajul în condiții de întuneric. Arduino poate fi alimentat extern de la mufa DC de la 7 volți la 12 volți.

Diagrama circuitului:

potențiometrul este utilizat pentru a regla contrastul afișajului.

CODUL PROGRAMULUI ARDUINO:

// -------- Program dezvoltat de 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-------//

NOTĂ: Programul de mai sus este verificat și fără erori. În cazul în care ați primit vreun avertisment sau eroare, vă rugăm să adăugați manual biblioteca LiquidCrystal.

Setarea timpului:

Există două butoane, unul pentru setarea orelor și altul pentru setarea de minute. Apăsând oricare dintre ele va crește cifrele corespunzătoare. Pentru setarea orelor, apăsați butonul hrs până când se afișează ora corectă, în mod similar pentru minute.

NOTĂ:

· În timp ce setați timpul, țineți apăsat butonul până ajunge timpul dorit. Apăsarea momentană a butonului nu poate schimba ora.

· Fiecare cifră este incrementată doar secundă după secundă, acest lucru se datorează faptului că întreaga buclă a programului a întârziat 1 secundă.

· Cifra secundelor merge de la 01 la 60 și apare din nou și nu va afișa „00”, așa cum o face ceasul digital tradițional.




Precedent: Invertor solar pentru aparat de aer condiționat de 1,5 tone Următorul: Circuit generator simplu de turbină eoliană pe axă verticală