HOUSE CLOCK

Autor: Cojocaru Adrian-Cosmin

Grupa: 335CA

Introducere

Proiectul simuleaza o reprezentare de ceas cu uz casnic, afisand ora, temperatura din camera si putand fi programata o alarma pe o anumita ora in urmatoarele 24h.

Descriere generală

La arduino va fi conectat prin Breadboard un ecran LCD pe care sunt afisate pe randuri diferite, ora, temperatura. De asemenea print intermediul unui buton se va putea seta o alarma folosind un keypad pe care este introdusa ora la care se doreste alarma. Sunetul alarmei va fi simulat printr-un buzzer conectat, de asemenea la breadboard. La fel si senzorii pentru temperatura

Hardware Design

  • Arduino UNO
  • BUZZER
  • Ecran LCD 16×2
  • Butoane setare ora/alarma (LCD KEYPAD SHIELD)
  • Senzor temperatura si umiditate DHT11

Software Design

O librarie folosita pentru a beneficia de functii de scriere pe ecranul LCD este “LiquidCrystal.h”

Pentru a incrementa secundele ceasului, folosesc intreruperi pe Timer-ul 1 al placutei Arduino, setand registrii corespunzatori in setup() pentru a obtine intrerupere la fiecare secunda. In rutina de intrerupere(ISR(TIMER1_COMPA_vect)), recalculez ora(minutele + secundele), la fiecare secunda scursa.

Functia set_alarm() seteaza, la alegerea utilizatorului(de pe butoanele up, down, left, right) o ora la care buzzerul conectat la Arduino va simula un sunet de alarma. Functiile increase_hour/minutes, decrease_hour/minutes, raspund la apasari ale utilizatorului pe butoanele up, down, left, right dandu-i voie acestuia sa seteze o anumita ora pe ceas.

La pinul A1 este conectat seonzorul de temperatura, de la care iau valoarea citita(analog) si o transform conform datasheet-ului in grade Celsius.

La pinul A2 este conectat buzzer-ul care este pus sa produca o alarma ce dureaza 5 secunde(delay) atunci cand ora curenta(ora si minut) coincide cu ora alarmei.

In functia loop, afisez mereu ora si temperatura(si un mesaj care informeaza utilizatorul ca pentru a seta o alarma trebuia sa apese butonul SELECT). In plus, verific daca nu cumva un buton a fost apasat, si ce buton(voltajul de pe A0 imi indica ce buton s-a apasat). Apoi, in functie de ce buton e apasat, am descris mai sus functiile ce trateaza fiecare buton. Dupa ce este setata alarma(in cazul in care utilizatorul a apasat SELECT), este afisat un mesaj de informare si anume ca trebuie apasat din nou SELECT pentru revenirea la ecranul principal.

Am atasat mai jos sketc-ul ce contine codul. proiect_cojocaru_335ca.zip

Rezultate obtinute

La link-ul urmator se poate vedea un demo cu functionalitatea proiectutlui

https://www.youtube.com/watch?v=CQ7Ttky4qeI

Concluzii

Jurnal

03.05.2021 Initializare pagina wiki, descriere sumara proiect

03.06.2021 Finalizare proiect, software design + demo

Bibliografie/Resurse

PDF

pm/prj2021/alazar/houseclock.txt · Last modified: 2021/06/03 20:03 by adrian.cojocaru1603
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