Budowa modułu DS3231 Moduł DS3231 to bardzo precyzyjny w odmierzaniu czasu rzeczywistego zegar RTC moduł RTC RTC , który komunikuje się po szynie I2C I2C I2C . Wyposażony jest w układ kompensacji temperaturowej oscylatora (TCX0) i w zintegrowany kwarc, dzięki czemu nie ma już konieczności podpięcia zewnętrznego generatora kwarcowego. Do tego posiada większy zakres napięcia (2.3 V - 5.5 V) oraz baterię podtrzymującą pamięć.
R1duW5MgAGaeN Grafika przedstawia schematyczną budowę modułu DS3231. Moduł ma kształt prostokąta z zaokrąglonymi rogami. Wzdłuż krótszego lewego boku mamy kolejno od góry następujące piny: 32K, SQW, SCL, SDA, VCC, GND. Wzdłuż prawego krótszego boku mamy następujące piny: SCL, SDA, VCC, GND. W dolnej prawej części mamy piny od lewej: A0, A1, A2.
Źródło: Contentplus .pl Sp. z o.o., licencja: CC BY-SA 3.0.
Na płytce mieści się także pamięć EEPROM pamięć EEPROM pamięć EEPROM AT24C32, która daje 32K pamięci, a zapisane w niej dane nie są usuwane w przypadku braku zasilania. Pozwala to na stworzenie np. prostego rejestratora zdarzeń.
Jeśli nie chcemy ingerować w strukturę modułu, najlepiej zastosować akumulator LIR2032. Możemy też użyć zwykłej baterii CR2032, ale w takiej sytuacji musimy pamiętać o kwestii jej ładowania. W przypadku, gdy moduł ma być zasilany napięciem 5V, należy odlutować diodę przy układzie DS3231 lub przeciąć ścieżkę pomiędzy diodą a rezystorem (chodzi o ścieżkę biegnącą na lewo od litery S w oznaczeniu SCL). Natomiast przy zasilaniu modułu napięciem 3.3V nie ma takiej potrzeby. Spadek napięcia na diodzie sprawia, że dopóki napięcie ładowania nie jest większe od napięcia baterii – ta nie będzie ładowana, a dioda zapobiegnie rozładowywaniu baterii.
Specyfikacja modułu DS3231
Zasilanie: 3,3 V - 5,5 V
Interfejs komunikacji: I2C
Układ zegara: DS3231
Pamięć EEPROM
pojemność: 32 kb
adres I2C: 0 x 57
Dodatkowe wyjścia: SDA, SCL, VCC i GND do kaskadowego podłączenia kolejnego modułu pracującego na magistrali I2C
Wymiary: 38 x 22 mm
Piny
VCC, GND – zasilanie
SCL, SDA – piny magistrali I2C
SQW – wyjście sygnału prostokątnego lub źródło przerwań dla alarmów
32K – sygnał prostokątny o częstotliwości 32 kHz
Funkcje
Zegar RTC z podtrzymaniem pamięci (wbudowana bateria):
odmierza sekundy, minuty, godziny, dni miesiąca, miesiące, dni tygodnia, lata,
zawiera dwa alarmy do ustawienia (z wieloma możliwymi interwałami do wyboru),
wyznacza lata przestępne do roku 2100,
dokonuje pomiary temperatury.
Pamięć EEPROM (konfigurowalny adres na magistrali I2C za pomocą zworek A0, A1 i A2)
Przykłady pracy z modułem DS3231 Wyświetlanie daty i czasu Co nam będzie potrzebne:
Do poprawnego działania moduł DS3231 potrzebuje zainstalowanej biblioteki DS3231.h. Można ją pobrać, klikając w odnośnik:
RjNf3CsD74RBV Przycisk z plikiem biblioteki DS3231 wykorzystanej w projekcie
Plik ZIP o rozmiarze 380.03 KB w języku polskim
Po pobraniu bibliotekę należy zainstalować w Arduino IDE.
Podłączamy moduł DS3231 według następującego schematu:
R2TDLnXlrEdwP Ilustracja przedstawia schemat elektryczny połączeń Arduino Uno i modułu DS3231. Pin arduino 5V podłączono do węzła +5V, pin GND podłączono do węzła GND. Pin SCL podłączono do pinu 3 SCL modułu, pin SDA arduino podłączono do pinu 4 SDA modułu. Pin 6 GND podłączono do węzła GND, pin 5 VCC podłączono do węzła +5V.
Źródło: Contentplus .pl Sp. z o.o., licencja: CC BY-SA 3.0.
Teraz przechodzimy do programowania.
Najpierw dołączamy bibliotekę.
Linia 1. kratka include otwórz nawias ostrokątny DS3231 kropka h zamknij nawias ostrokątny.
#include <DS3231.h>
Następnie inicjujemy DS3231 za pomocą interfejsu sprzętowego.
Linia 1. DS3231 rtc otwórz nawias okrągły SDA przecinek SCL zamknij nawias okrągły średnik.
DS3231 rtc (SDA, SCL);
W pętli setup ()
ustawiamy prędkość połączenia z monitorem portu szeregowego na 115200 bodów.
Linia 1. Serial kropka begin otwórz nawias okrągły 115200 zamknij nawias okrągły średnik.
Serial.begin (115200);
Ustawiamy ręcznie datę i godzinę.
Czas i datę wpisujemy według poniższego kodu. Ustawiamy dzień tygodnia, czas (HH:MM:SS) oraz datę (DD:MM:YYYY).
Linia 1. rtc kropka setDOW otwórz nawias okrągły WEDNESDAY zamknij nawias okrągły średnik.
Linia 2. rtc kropka setTime otwórz nawias okrągły 11 przecinek 05 przecinek 0 zamknij nawias okrągły średnik.
Linia 3. rtc kropka setDate otwórz nawias okrągły 25 przecinek 1 przecinek 2021 zamknij nawias okrągły średnik.
rtc.setDOW (WEDNESDAY);
rtc.setTime (11, 05, 0);
rtc.setDate (25, 1, 2021);
W pętli loop ()
deklarujemy, jakie informacje będą wyświetlane w monitorze portu szeregowego.
Linia 1. Serial kropka print otwórz nawias okrągły rtc kropka getDOWStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 2. Serial kropka print otwórz nawias okrągły cudzysłów cudzysłów zamknij nawias okrągły średnik.
Linia 4. Serial kropka print otwórz nawias okrągły rtc kropka getDateStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 5. Serial kropka print otwórz nawias okrągły cudzysłów minus minus cudzysłów zamknij nawias okrągły średnik.
Linia 7. Serial kropka println otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Serial.print (rtc.getDOWStr());
Serial.print (" ");
Serial.print (rtc.getDateStr());
Serial.print (" -- ");
Serial.println (rtc.getTimeStr());
Kod Całość kodu wygląda następująco:
Linia 1. kratka include otwórz nawias ostrokątny DS3231 kropka h zamknij nawias ostrokątny.
Linia 3. DS3231 rtc otwórz nawias okrągły SDA przecinek SCL zamknij nawias okrągły średnik.
Linia 5. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. Serial kropka begin otwórz nawias okrągły 115200 zamknij nawias okrągły średnik.
Linia 9. rtc kropka begin otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 11. prawy ukośnik prawy ukośnik rtc kropka setDOW otwórz nawias okrągły WEDNESDAY zamknij nawias okrągły średnik.
Linia 12. prawy ukośnik prawy ukośnik rtc kropka setTime otwórz nawias okrągły 11 przecinek 20 przecinek 00 zamknij nawias okrągły średnik.
Linia 13. prawy ukośnik prawy ukośnik rtc kropka setDate otwórz nawias okrągły 25 przecinek 01 przecinek 2021 zamknij nawias okrągły średnik.
Linia 14. zamknij nawias klamrowy.
Linia 16. void loop otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 17. Serial kropka print otwórz nawias okrągły rtc kropka getDOWStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 18. Serial kropka print otwórz nawias okrągły cudzysłów cudzysłów zamknij nawias okrągły średnik.
Linia 20. Serial kropka print otwórz nawias okrągły rtc kropka getDateStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 21. Serial kropka print otwórz nawias okrągły cudzysłów minus minus cudzysłów zamknij nawias okrągły średnik.
Linia 23. Serial kropka println otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 25. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 26. zamknij nawias klamrowy.
#include <DS3231.h>
DS3231 rtc (SDA, SCL);
void setup() {
Serial.begin (115200);
rtc.begin ();
//rtc.setDOW (WEDNESDAY);
//rtc.setTime (11, 20, 00);
//rtc.setDate (25, 01, 2021);
}
void loop() {
Serial.print (rtc.getDOWStr());
Serial.print (" ");
Serial.print (rtc.getDateStr());
Serial.print (" -- ");
Serial.println (rtc.getTimeStr());
delay (1000);
}
Teraz wgrajmy kod do Arduino Uno i sprawdźmy, co pojawi nam się w monitorze portu szeregowego.
R1A2UwkOAOxK4 Zrzut ekranu przedstawia okno „Ustawienie_czasu|Arduino 1.8.13”. W polu głównym mamy otwartą zakładkę zatytułowaną „Ustawianie_czasu”. W zakładce wpisany jest następujący kod: 1. #include <DS3231.h> 2. 3. DS3231 rtc (SDA, SCL); 4. 5. Void setup() { 6. 7. Serial.begin (115200); 8. 9. rtc.begin (); 10. 11. rtc.setDOW (Monday ); 12. rtc.setTime (11, 29, 00); 13. rtc.setDate (25, 01, 2021); 14. } 15. 16. void loop() { 17. Serial.print (rtc.getDOWStr()); 18. Serial.print (” ”); 19. 20. Serial.print (rtc.getDateStr()); 21. Serial.print (” -- ”); 22. 23. Serial.println (rtc.getTimeStr()); 24. 25. delay (1000); 26. } Na zrzucie otwarte jest także drugie, mniejsze okno COM5, w którym wyświetla się komunikat w każdym kolejnym wierszu: „Monday 25.01.2021 – 11:29:14”. Każdy kolejny wiersz różni się o sekundę więcej od poprzedniego.
Wyświetlanie temperatury Co nam będzie potrzebne:
Połączenie jest identyczne jak w przypadku wyświetlania daty i czasu, więc nie musimy niczego przepinać.
Przejdźmy zatem do pisania programu.
Najpierw dołączamy bibliotekę.
Linia 1. kratka include otwórz nawias ostrokątny DS3231 kropka h zamknij nawias ostrokątny.
#include <DS3231.h>
Następnie inicjujemy DS3231 za pomocą interfejsu sprzętowego.
Linia 1. DS3231 rtc otwórz nawias okrągły SDA przecinek SCL zamknij nawias okrągły średnik.
DS3231 rtc (SDA, SCL);
W pętli setup ()
ustawiamy prędkość połączenia z monitorem portu szeregowego na 115200 bodów.
Linia 1. Serial kropka begin otwórz nawias okrągły 115200 zamknij nawias okrągły średnik.
Serial.begin (115200);
Inicjujemy obiekt RTC.
Linia 1. rtc kropka begin otwórz nawias okrągły zamknij nawias okrągły średnik.
rtc.begin ();
W pętli loop ()
deklarujemy wyświetlanie temperatury.
Linia 1. Serial kropka print otwórz nawias okrągły cudzysłów Temperatura wynosi dwukropek cudzysłów zamknij nawias okrągły średnik.
Linia 2. Serial kropka print otwórz nawias okrągły rtc kropka getTemp otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 3. Serial kropka println otwórz nawias okrągły cudzysłów st kropka C cudzysłów zamknij nawias okrągły średnik.
Serial.print ("Temperatura wynosi: ");
Serial.print (rtc.getTemp());
Serial.println (" st. C");
Kod Całość kodu wygląda następująco:
Linia 1. kratka include otwórz nawias ostrokątny DS3231 kropka h zamknij nawias ostrokątny.
Linia 3. DS3231 rtc otwórz nawias okrągły SDA przecinek SCL zamknij nawias okrągły średnik.
Linia 5. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. Serial kropka begin otwórz nawias okrągły 115200 zamknij nawias okrągły średnik.
Linia 8. rtc kropka begin otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 9. zamknij nawias klamrowy.
Linia 11. void loop otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 12. Serial kropka print otwórz nawias okrągły cudzysłów Temperatura wynosi dwukropek cudzysłów zamknij nawias okrągły średnik.
Linia 13. Serial kropka print otwórz nawias okrągły rtc kropka getTemp otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 14. Serial kropka println otwórz nawias okrągły cudzysłów st kropka C cudzysłów zamknij nawias okrągły średnik.
Linia 15. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 16. zamknij nawias klamrowy.
#include <DS3231.h>
DS3231 rtc (SDA, SCL);
void setup() {
Serial.begin(115200);
rtc.begin ();
}
void loop() {
Serial.print ("Temperatura wynosi: ");
Serial.print (rtc.getTemp());
Serial.println (" st. C");
delay (1000);
}
Teraz wgrajmy kod do Arduino Uno i sprawdźmy, co pojawi się w monitorze portu szeregowego.
R1RaQTMwG7cGX Zrzut ekranu przedstawia okno „Temperatura|Arduino 1.8.13”. W polu głównym mamy otwartą zakładkę zatytułowaną „Temperatura”. W zakładce wpisany jest następujący kod: 1. #include <DS3231.h> 2. 3. DS3231 rtc (SDA, SCL); 4. 5. void setup() { 6. Serial.begin (115200); 7. 8. rtc.begin (); 9. } 10. 11. void loop() { 12. Serial.print (”Temperatura wynosi: ”); 13. Serial.print (rtc.getTemp()); 14. Serial.printIn (” st. C”); 15. Delay (1000); 16. } Na zrzucie otwarte jest także drugie, mniejsze okno COM5, w którym wyświetla się komunikat w pierwszych ośmiu kolejnych wierszach: „Temperatura wynosi: 24.50 st. C”. W kolejnych siedmiu wyświetla się komunikat: „Temperatura wynosi: 28.50 st. C”.
„Podgrzejmy” trochę moduł i sprawdźmy, jakie teraz będą odczyty.
R25s6OXuldeY7 Zrzut ekranu przedstawia okno „Temperatura|Arduino 1.8.13”. W polu głównym mamy otwartą zakładkę zatytułowaną „Temperatura”. W zakładce wpisany jest następujący kod: 1. #include <DS3231.h> 2. 3. DS3231 rtc (SDA, SCL); 4. 5. void setup() { 6. Serial.begin (115200); 7. 8. rtc.begin (); 9. } 10. 11. void loop() { 12. Serial.print (”Temperatura wynosi: ”); 13. Serial.print (rtc.getTemp()); 14. Serial.printIn (” st. C”); 15. Delay (1000); 16. } Na zrzucie otwarte jest także drugie, mniejsze okno COM5, w którym wyświetla się komunikat w pierwszych ośmiu kolejnych wierszach: „Temperatura wynosi: 24.50 st. C”. W kolejnych siedmiu wyświetla się komunikat: „Temperatura wynosi: 28.50 st. C”.
Polecenie 1
Zmodyfikuj kod tak, by w monitorze portu szeregowego pokazywane były następujące informacje:
R1Qp17pQPXMNy Zrzut ekranu przedstawia okno „Data_i_czas|Arduino 1.8.13”. W polu głównym mamy otwartą zakładkę zatytułowaną „Data_i_czas”. W zakładce wpisany jest następujący kod: … 3. DS3231 rtc (SDA, SCL); 4. 5. void setup() { 6. 7. Serial.begin (115200); 8. 9. rtc.begin (); 10. 11. rtc.setDOW (MONDAY); 12. rtc.setTime (11, 29, 00); 13. rtc.setDate (25, 01, 2021); 14. } 15. 16. void loop() { 17. Serial.print (rtc.getDateStr()); 18. Serial.print (” -- ”); 19. 20. Serial.print (rtc.getTimeStr()); 21. Serial.print (” -- ”); 22. 23. Serial.print (”Temperatura wynosi: ”); 24. Serial.print (rtc.getTemp()); 25. Serial.printIn (” st. C”); 26. 27. delay (1000); 28. } Na zrzucie otwarte jest także drugie, mniejsze okno COM5, w którym wyświetla się komunikat w każdym kolejnym wierszu: „25.01.2021 -- 11:29:01 – Temperatura wynosi: 23.50 st. C”. Każdy kolejny wiersz różni się o sekundę więcej od poprzedniego, temperatura pozostaje bez zmian.
Arduino
Pokaż rozwiązanie Linia 1. kratka include otwórz nawias ostrokątny DS3231 kropka h zamknij nawias ostrokątny.
Linia 3. DS3231 rtc otwórz nawias okrągły SDA przecinek SCL zamknij nawias okrągły średnik.
Linia 5. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. Serial kropka begin otwórz nawias okrągły 115200 zamknij nawias okrągły średnik.
Linia 9. rtc kropka begin otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 11. rtc kropka setDOW otwórz nawias okrągły MONDAY zamknij nawias okrągły średnik.
Linia 12. rtc kropka setTime otwórz nawias okrągły 11 przecinek 29 przecinek 00 zamknij nawias okrągły średnik.
Linia 13. rtc kropka setDate otwórz nawias okrągły 25 przecinek 01 przecinek 2021 zamknij nawias okrągły średnik.
Linia 14. zamknij nawias klamrowy.
Linia 16. void loop otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 17. Serial kropka print otwórz nawias okrągły rtc kropka getDateStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 18. Serial kropka print otwórz nawias okrągły cudzysłów minus minus cudzysłów zamknij nawias okrągły średnik.
Linia 20. Serial kropka print otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 21. Serial kropka print otwórz nawias okrągły cudzysłów minus minus cudzysłów zamknij nawias okrągły średnik.
Linia 23. Serial kropka print otwórz nawias okrągły cudzysłów Temperatura wynosi dwukropek cudzysłów zamknij nawias okrągły średnik.
Linia 24. Serial kropka print otwórz nawias okrągły rtc kropka getTemp otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 25. Serial kropka println otwórz nawias okrągły cudzysłów st kropka C cudzysłów zamknij nawias okrągły średnik.
Linia 27. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 28. zamknij nawias klamrowy.
#include <DS3231.h>
DS3231 rtc (SDA, SCL);
void setup() {
Serial.begin (115200);
rtc.begin ();
rtc.setDOW (MONDAY);
rtc.setTime (11, 29, 00);
rtc.setDate (25, 01, 2021);
}
void loop() {
Serial.print (rtc.getDateStr());
Serial.print (" -- ");
Serial.print (rtc.getTimeStr());
Serial.print (" -- ");
Serial.print ("Temperatura wynosi: ");
Serial.print (rtc.getTemp());
Serial.println (" st. C");
delay (1000);
}
Polecenie 2
Podłącz wyświetlacz LCD i wyświetl na nim następujące informacje:
Ekran 1:
wiersz 1: data
wiersz 2: czas
Czas wyświetlania ekranu 1 wynosi 5 sekund.
Czas wyświetlania ekranu 2 wynosi 5 sekund.
RWeQzfKVchlzX Zdjęcie przedstawia główny moduł Andruino , do którego podpięte są przewody połączeniowe łączące go z płytką stykową. Do płytki podłączony jest także wyświetlacz, na którym jest data i godzina: wiersz pierwszy: 25.01.2021, wiersz drugi: 11:30:44.
Źródło: Contentplus .pl Sp. z o.o., licencja: CC BY-SA 3.0.
RWOtEOwWP9FxA Zdjęcie przedstawia główny moduł Andruino , do którego podpięte są przewody połączeniowe łączące go z płytką stykową. Do płytki podłączony jest także wyświetlacz, na którym jest temperatura: wiersz pierwszy: TEMPERATURA:, wiersz drugi: 23.00 st. C.
Źródło: Contentplus .pl Sp. z o.o., licencja: CC BY-SA 3.0.
Pokaż rozwiązanie Linia 1. kratka include otwórz nawias ostrokątny DS3231 kropka h zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny LiquidCrystal kropka h zamknij nawias ostrokątny.
Linia 4. LiquidCrystal lcd otwórz nawias okrągły 7 przecinek 6 przecinek 5 przecinek 4 przecinek 3 przecinek 2 zamknij nawias okrągły średnik.
Linia 6. DS3231 rtc otwórz nawias okrągły SDA przecinek SCL zamknij nawias okrągły średnik.
Linia 8. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. lcd kropka begin otwórz nawias okrągły 16 przecinek 2 zamknij nawias okrągły średnik.
Linia 12. rtc kropka begin otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 14. rtc kropka setTime otwórz nawias okrągły 11 przecinek 29 przecinek 00 zamknij nawias okrągły średnik.
Linia 15. rtc kropka setDate otwórz nawias okrągły 25 przecinek 01 przecinek 2021 zamknij nawias okrągły średnik.
Linia 16. zamknij nawias klamrowy.
Linia 18. void loop otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 19. lcd kropka setCursor otwórz nawias okrągły 3 przecinek 0 zamknij nawias okrągły średnik.
Linia 20. lcd kropka print otwórz nawias okrągły rtc kropka getDateStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 22. lcd kropka setCursor otwórz nawias okrągły 4 przecinek 1 zamknij nawias okrągły średnik.
Linia 23. lcd kropka print otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 24. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 25. lcd kropka setCursor otwórz nawias okrągły 4 przecinek 1 zamknij nawias okrągły średnik.
Linia 26. lcd kropka print otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 27. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 28. lcd kropka setCursor otwórz nawias okrągły 4 przecinek 1 zamknij nawias okrągły średnik.
Linia 29. lcd kropka print otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 30. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 31. lcd kropka setCursor otwórz nawias okrągły 4 przecinek 1 zamknij nawias okrągły średnik.
Linia 32. lcd kropka print otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 33. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 34. lcd kropka setCursor otwórz nawias okrągły 4 przecinek 1 zamknij nawias okrągły średnik.
Linia 35. lcd kropka print otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 36. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 37. lcd kropka clear otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 38. delay otwórz nawias okrągły 10 zamknij nawias okrągły średnik.
Linia 40. lcd kropka setCursor otwórz nawias okrągły 2 przecinek 0 zamknij nawias okrągły średnik.
Linia 41. lcd kropka print otwórz nawias okrągły cudzysłów TEMPERATURA dwukropek cudzysłów zamknij nawias okrągły średnik.
Linia 42. lcd kropka setCursor otwórz nawias okrągły 3 przecinek 1 zamknij nawias okrągły średnik.
Linia 43. lcd kropka print otwórz nawias okrągły rtc kropka getTemp otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 44. lcd kropka setCursor otwórz nawias okrągły 9 przecinek 1 zamknij nawias okrągły średnik.
Linia 45. lcd kropka print otwórz nawias okrągły cudzysłów st C cudzysłów zamknij nawias okrągły średnik.
Linia 47. delay otwórz nawias okrągły 5000 zamknij nawias okrągły średnik.
Linia 49. lcd kropka clear otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 50. zamknij nawias klamrowy.
#include <DS3231.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd (7, 6, 5, 4, 3, 2);
DS3231 rtc (SDA, SCL);
void setup() {
lcd.begin(16, 2);
rtc.begin ();
rtc.setTime (11, 29, 00);
rtc.setDate (25, 01, 2021);
}
void loop() {
lcd.setCursor(3, 0);
lcd.print (rtc.getDateStr());
lcd.setCursor(4, 1);
lcd.print (rtc.getTimeStr());
delay (1000);
lcd.setCursor (4, 1);
lcd.print (rtc.getTimeStr());
delay (1000);
lcd.setCursor (4, 1);
lcd.print (rtc.getTimeStr());
delay (1000);
lcd.setCursor (4, 1);
lcd.print (rtc.getTimeStr());
delay (1000);
lcd.setCursor(4, 1);
lcd.print (rtc.getTimeStr());
delay (1000);
lcd.clear();
delay (10);
lcd.setCursor (2, 0);
lcd.print ("TEMPERATURA:");
lcd.setCursor(3, 1);
lcd.print (rtc.getTemp());
lcd.setCursor (9, 1);
lcd.print ("st C");
delay (5000);
lcd.clear();
}
Polecenie 3
Zmodyfikuj kod tak, by w jednej kratce wyświetlany był znak Indeks górny o o C.
R19lnSsFDiIuh Grafika przedstawia prostokąt, którego podstawą jest krótszy bok. W prostokącie narysowano równomiernie małe kwadraty: 5 na 8. Część kwadratów jest niebieska tak, jak cały prostokąt, a część ma białe tło. Wymienimy białe kwadraty. Ustalmy dla uproszczenia, że kwadraty będziemy nazywać od ich położenia. Kwadrat w pierwszym wierszu i w pierwszej kolumnie nazwiemy 1 W 1 K. Zatem białe kwadraty mają następujące rozmieszczenie: 1 W 2 K, 2 W 1 K, 2 W 3 K, 3 W 2 K, 4 W 3 K, 4 W 4 K, 5 W 2 K, 5 W 5 K, 6 W 2 K, 7 W 2 K, 7 W 5 K, 8 W 3 K, 8 W 4 K.
Źródło: Contentplus .pl Sp. z o.o., licencja: CC BY-SA 3.0.
Rs4oTujuDuSwE Zdjęcie przedstawia główny moduł Arduino , do którego podpięte są przewody połączeniowe łączące go z płytką stykową. Do płytki podłączony jest także wyświetlacz, na którym jest temperatura: wiersz pierwszy: TEMPERATURA:, wiersz drugi: 23 ° C
Źródło: Contentplus .pl Sp. z o.o., licencja: CC BY-SA 3.0.
Pokaż rozwiązanie Linia 1. kratka include otwórz nawias ostrokątny DS3231 kropka h zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny LiquidCrystal kropka h zamknij nawias ostrokątny.
Linia 4. LiquidCrystal lcd otwórz nawias okrągły 7 przecinek 6 przecinek 5 przecinek 4 przecinek 3 przecinek 2 zamknij nawias okrągły średnik.
Linia 6. DS3231 rtc otwórz nawias okrągły SDA przecinek SCL zamknij nawias okrągły średnik.
Linia 8. byte stC otwórz nawias kwadratowy 8 zamknij nawias kwadratowy znak równości otwórz nawias klamrowy.
Linia 9. B01000 przecinek.
Linia 10. B10100 przecinek.
Linia 11. B01000 przecinek.
Linia 12. B00110 przecinek.
Linia 13. B01001 przecinek.
Linia 14. B01000 przecinek.
Linia 15. B01001 przecinek.
Linia 16. B00110.
Linia 17. zamknij nawias klamrowy średnik.
Linia 19. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 21. lcd kropka begin otwórz nawias okrągły 16 przecinek 2 zamknij nawias okrągły średnik.
Linia 23. lcd kropka createChar otwórz nawias okrągły 0 przecinek stC zamknij nawias okrągły średnik.
Linia 25. rtc kropka begin otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 27. rtc kropka setTime otwórz nawias okrągły 11 przecinek 29 przecinek 00 zamknij nawias okrągły średnik.
Linia 28. rtc kropka setDate otwórz nawias okrągły 25 przecinek 01 przecinek 2021 zamknij nawias okrągły średnik.
Linia 29. zamknij nawias klamrowy.
Linia 31. void loop otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 32. lcd kropka setCursor otwórz nawias okrągły 3 przecinek 0 zamknij nawias okrągły średnik.
Linia 33. lcd kropka print otwórz nawias okrągły rtc kropka getDateStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 35. lcd kropka setCursor otwórz nawias okrągły 4 przecinek 1 zamknij nawias okrągły średnik.
Linia 36. lcd kropka print otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 37. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 38. lcd kropka setCursor otwórz nawias okrągły 4 przecinek 1 zamknij nawias okrągły średnik.
Linia 39. lcd kropka print otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 40. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 41. lcd kropka setCursor otwórz nawias okrągły 4 przecinek 1 zamknij nawias okrągły średnik.
Linia 42. lcd kropka print otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 43. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 44. lcd kropka setCursor otwórz nawias okrągły 4 przecinek 1 zamknij nawias okrągły średnik.
Linia 45. lcd kropka print otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 46. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 47. lcd kropka setCursor otwórz nawias okrągły 4 przecinek 1 zamknij nawias okrągły średnik.
Linia 48. lcd kropka print otwórz nawias okrągły rtc kropka getTimeStr otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 49. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 50. lcd kropka clear otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 51. delay otwórz nawias okrągły 10 zamknij nawias okrągły średnik.
Linia 53. lcd kropka setCursor otwórz nawias okrągły 2 przecinek 0 zamknij nawias okrągły średnik.
Linia 54. lcd kropka print otwórz nawias okrągły cudzysłów TEMPERATURA dwukropek cudzysłów zamknij nawias okrągły średnik.
Linia 55. lcd kropka setCursor otwórz nawias okrągły 4 przecinek 1 zamknij nawias okrągły średnik.
Linia 56. lcd kropka print otwórz nawias okrągły rtc kropka getTemp otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 57. lcd kropka setCursor otwórz nawias okrągły 10 przecinek 1 zamknij nawias okrągły średnik.
Linia 58. lcd kropka write otwórz nawias okrągły byte otwórz nawias okrągły 0 zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 60. delay otwórz nawias okrągły 5000 zamknij nawias okrągły średnik.
Linia 62. lcd kropka clear otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 63. zamknij nawias klamrowy.
#include <DS3231.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd (7, 6, 5, 4, 3, 2);
DS3231 rtc (SDA, SCL);
byte stC [8] = {
B01000,
B10100,
B01000,
B00110,
B01001,
B01000,
B01001,
B00110
};
void setup() {
lcd.begin(16, 2);
lcd.createChar (0, stC);
rtc.begin ();
rtc.setTime (11, 29, 00);
rtc.setDate (25, 01, 2021);
}
void loop() {
lcd.setCursor(3, 0);
lcd.print (rtc.getDateStr());
lcd.setCursor(4, 1);
lcd.print (rtc.getTimeStr());
delay (1000);
lcd.setCursor (4, 1);
lcd.print (rtc.getTimeStr());
delay (1000);
lcd.setCursor (4, 1);
lcd.print (rtc.getTimeStr());
delay (1000);
lcd.setCursor (4, 1);
lcd.print (rtc.getTimeStr());
delay (1000);
lcd.setCursor(4, 1);
lcd.print (rtc.getTimeStr());
delay (1000);
lcd.clear();
delay (10);
lcd.setCursor (2, 0);
lcd.print ("TEMPERATURA:");
lcd.setCursor(4, 1);
lcd.print (rtc.getTemp());
lcd.setCursor (10, 1);
lcd.write (byte(0));
delay (5000);
lcd.clear();
}
Słownik moduł RTC moduł RTC
inaczej zegar czasu rzeczywistego
I2C I2C
szeregowa, dwukierunkowa magistrala służąca do przesyłania danych w urządzeniach elektronicznych
pamięć EEPROM pamięć EEPROM
(ang. electrically erasable programmable read‑only memory) rodzaj nieulotnej pamięci komputerowej; pamięć EEPROM w odróżnieniu od pamięci EPROM może być kasowana tylko przy użyciu prądu elektrycznego