Engineer Alarm Clock

Introducere

Am creat acest proiect pentru a evita situatiile in care iti pui ceasul desteptator si nu il auzi in perioada (scurta) in care suna sau il opresti cu un deget si adormi la loc. Solutia este sa iti pui creierul in miscare dupa ce te trezesti, iar rezolvarea unei ecuatii de gradul II este o metoda buna de a obtine acest lucru; ca sa fie mai eficient (si sa folosesc mai putine piese) solutiile trebuie introduse in baza 2 pe 8 biti (cu semn).

Ceasul se opreste din sunat daca:

  • apesi pe un buton si apoi rezolvi ecuatia prezentata in 5 minute
  • trec 10 minute (se presupune ca utilizatorul e plecat in vacanta si a uitat ceasul setat)

Descriere generală

Schema bloc hardware:

Butoane este format de 9 push-button-uri 8 pentru setarea bitilor solutiei si unul pentru a o confirma; unele din butoanele pentru solutie in combinatie cu butonul de confirmare au rolul de a seta ceasul.

LED-uri contine 8 led-uri pentru a vizualiza solutia curenta. (violet - indica semnul)

Din punct de vedere software, proiectul este compus dintr-un modul principal la care se adauga “driver-ul” pentru ecranul LCD.

Hardware Design

Lista de piese:

  • placuta de la etapa 1
  • 8 LED-uri albe 4 LED-uri albe, 4 3 albastre, 1 violet
  • 9 push-button-uri
  • afisaj LCD 16×2 caractere DEM 16226 SYH-LY RC1602B
  • 10 rezistori 1Kohmi si 1 rezistor 100ohmi
  • buzzer
  • potentiometru 10Kohmi
  • 2 cabluri de date pentru floppy

Software Design

Partea de software a fost scrisa pe un sistem cu Windows 7 in Programmer's Notepad si compilata cu WinAVR.

Module:

  • lcd.h - defineste structurile si functiile necesare pentru interfeta cu afisajul.
  • lcd.c - implementarea functiilor din lcd.h
  • eac.c - modulul principal; se ocupa de setarea timer-elor si a PWM-ului, trateaza intreruperile, genereaza si valideaza ecuatia, asteapta input-ul utilizatorului.

Logica programului

La pornire/resetare, ceasul si alarma vor fi 0:00, iar alarma va fi dezactivata; se intra in modul normal. Cand alarma este setata si valoarea ceasului este cea specificata se intra in modul alarma.

Modul normal:

  • la fiecare 100ms se verifica daca un buton a fost apasat si executa functiile de la stanga la dreapta

Modul alarma:

  • porneste sistemul de sunet
  • la fiecare 100ms se verifica daca un buton a fost apasat si poate trece in modul ecuatie
  • daca trec 10 minute alarma se dezactiveaza si se trece in modul normal

Modul ecuatie:

  • se opreste sunetul
  • o ecuatie de gradul II este generata si afisata pe ecran
  • la fiecare 100ms se verifica daca un buton a fost apasat si aprinde/stinge led-ul asociat
  • daca este apasat butonul de confirmare preia configuratia led-urilor si le stinge; in caz de solutie incorecta se trece in modul alarma
  • daca trec 5 minute se trece in modul alarma
  • dupa introducerea celor 2 radacini corecte, alarma se opreste si se trece in modul normal

Ceasul are doua moduri de functionare:

  • intreruperi de la un timer la fiecare secunda
  • la a fiecare 10-a verificare a butoanelor se incrementeasa secundele ( 10 * 100ms = 1s )

Rezultate Obţinute

Mai trebuie adaugat un invelis protector pentru a proteja sistemul de interactiunea cu utilizatorul.

          Versiunea 1 - fata

          Versiunea 1 - spate

          Versiunea 2 - fata

Concluzii

Proiectul trebuie redimensionat si dotat cu o sursa de putere proprie pentru a putea fi folosit mai des; insa cu putina grija in manuire este eficient in a te trezi din somn si a grabi o stare de activitate mentala.

Cand incepi un proiect de electronica, cumpara cu 50% mai multe piese decat crezi ca ai nevoie.

Download

Bibliografie/Resurse

pm/prj2012/dtudose/5.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0