Autor: Dimovski Kirjan
Grupa: 332CB
Un ceas cu alarmă cu un LCD care utilizează un RTC DS3231 pentru a ține evidența timpului.
Arduino citeste din modul, converteste datele si le trimite display-ului. Un buzzer porneste daca timpul alarmei a ajuns la timpul curent. Pentru a opri alarma se apasa butonul din mijloc. Pentry ca avem o baterie în modulul, acesta va ține evidența timpului, chiar dacă nu este alimentat de o conexiune USB.
Am folosit si rezistore de pull up pentru ca am connectat 2 despozitive la I2C.
Dezvoltarea a fost facuta folosind mediul de dezvoltare Arduino IDE
bool alarm1_status, alarm2_status; char Time[] = " : : ", calendar[] = " / /20 ", alarm1[] = "A1: : :00", alarm2[] = "A2: : :00", temperature[] = "T: . C"; byte i, second, minute, hour, day, date, month, year, alarm1_minute, alarm1_hour, alarm2_minute, alarm2_hour, status_reg;
Pinii de la 9 pana la 11 sunt setați ca intrări pentru butoane, utilizând rezistențele pull up încorporate ale Arduino, iar pinul 12 este dezactivat (alarm_pin) cu noTone (). Ecranul LCD este inițializat (lcd.begin (20, 4)) și pinul 2 este setat ca pinul de întrerupere, utilizând alarmă ca procedură de întrerupere.
Porneste buzzerul la o frecventa de 1000. Folosit in setup() cu attachInterrupt().
Verificam daca un buton a fost apasat. Daca e, editam timpul sau alarmul si scriem pe modulul. Altfel, citim de la modulul si afisam pe display-ul.
Proiectul a fost foarte interesant de implementat. M-am familiarizat cu protocolul I2C, chiar dacă uneori a fost cam dificil. Cea mai mare parte a muncii a vizat formatarea de pe ecran, cu care vă puteți distra foarte mult dacă va puneti mintea la contribuție.