Sadržaj:
- Korak 1: Potrebne komponente
- Korak 2: Povezivanje Arduino sata
- Korak 3: Kôd za Arduino sat sa RTC -om
Video: Sat u stvarnom vremenu sa Arduinom: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
U ovom projektu napravit ćemo sat uz pomoć Arduino i RTC modula. Kao što znamo, Arduino ne može prikazati stvarno vrijeme, pa ćemo koristiti RTC modul za prikazivanje pravog vremena na LCD -u. Pažljivo pročitajte sve korake, mnogo će vam pomoći da napravite sat.
Arduino kod DS3231 je sličan kodu DS1307 i radi s oba RTC čipa.
Arduino kôd ispod ne koristi nikakvu biblioteku za DS3231 RTC, biblioteka Wire služi za korespondenciju između Arduina i DS3231 koristeći I2C konvenciju.
Da! Mnogi inženjeri elektronike ovise o tome za svoje vremenski zasnovane projekte, ali RTC nije potpuno pouzdan. Radi na baterije i mora se zamijeniti uskoro ili kasnije. Dolazeći na IoT projekte, on zauzima vrijedne SPI (Serial Peripheral Interface) pinove i postaje neuredan sa žicama isprepletenim okolo. Rješenje …. Evo našeg heroja NTP (mrežni protokol vremena). NTP je toliko precizan jer dobiva vrijeme s interneta. Ovim protokolom ćemo upravljati koristeći način klijent-server. proces je toliko jednostavan da naš Nodemcu djeluje kao klijent i traži NTP paket od poslužitelja koristeći UDP. Zauzvrat, server šalje paket klijentu koji analizira podatke. NTP je univerzalni protokol za sinhronizaciju vremena. Osvijetlimo sada našu laboratorijsku radnu stanicu
Korak 1: Potrebne komponente
- Arduino ploča
- DS3231 RTC ploča
- 16x2 LCD ekran
- 2 x dugme
- 10K ohm promjenjivi otpornik (ili potenciometar)
- 330-ohmski otpornik
- 3V dugmasta baterija
- Breadboard
- Žice za kratkospojnike
RTC mokula DS3231
Vrijeme je bitan osjećaj potreban u ovom brzom svijetu ljudskih bića. U projektu u realnom vremenu
Koristimo RTC (A. K. A sat u stvarnom vremenu)
RTC sat u realnom vremenu (RTC) je integrirano kolo (IC) koje prati trenutno vrijeme. RTC se brine o vremenu u stvarnom načinu rada. RTC se obično nalazi na računarskim matičnim pločama i ugrađenim sistemima kako bi zahtijevao pravovremeni pristup.
Korak 2: Povezivanje Arduino sata
- Spojite SCL pin na RTC modul na Arduino A5
- Spojite SDA pin na RTC modul na Arduino A4
- Spojite VCC na 5v i GND na GND
- Spojite dugme na pin 8
- Spojite drugo dugme na iglu 9
- Spojite RS LCD na pin 2 Arduina
- Spojite E LCD -a na pin 3 Arduina
- Spojite D7 LCD -a na pin 7 Arduina
- Spojite D6 LCD -a na pin 6 Arduina
- Spojite D5 LCD -a na pin 5 Arduina
- Spojite D4 LCD -a na pin 4 Arduina
- Spojite VSS & K na GND
- Spojite VDD & A na 5v
- Spojite vo na izlazni pin potenciometra
Korak 3: Kôd za Arduino sat sa RTC -om
DS3231 radi samo s BCD formatom i za pretvaranje BCD -a u decimalni i obratno, upotrijebio sam 2 retka ispod (primjer za minute): // Pretvorim BCD u decimalnu minutu = (minuta >> 4) * 10 + (minuta & 0x0F);
// Pretvorimo decimalni u BCDminute = ((minute / 10) << 4) + (minute % 10); void DS3231_display (): prikazuje vrijeme i kalendar, prije prikaza vremena i podaci kalendara se pretvaraju iz BCD u decimalni format. void blink_parameter ():
// Sat u stvarnom vremenu i kalendar sa postavljenim gumbima koristeći DS3231 i Arduino // uključuju kôd LCD biblioteke #include // uključuju kôd knjižnice žice (potrebno za uređaje s protokolom I2C) #include // veze LCD modula (RS, E, D4, D5, D6, D7) LiquidCrystal lcd (2, 3, 4, 5, 6, 7); void setup () {pinMode (8, INPUT_PULLUP); // button1 je spojen na pin 8 pinMode (9, INPUT_PULLUP); // button2 je spojen na pin 9 // postavlja LCD broj stupaca i redova lcd.begin (16, 2); Wire.begin (); // Pridruži se i2c sabirnici} char Time = "TIME:::"; char Calendar = "DATUM: / / 20"; bajt i, drugi, minut, sat, datum, mjesec, godina; void DS3231_display () {// Pretvori BCD u decimalnu sekundu = (druga >> 4) * 10 + (druga & 0x0F); minuta = (minuta >> 4) * 10 + (minuta & 0x0F); sat = (sat >> 4) * 10 + (sat & 0x0F); date = (datum >> 4) * 10 + (datum & 0x0F); mjesec = (mjesec >> 4) * 10 + (mjesec & 0x0F); godina = (godina >> 4) * 10 + (godina & 0x0F); // Vrijeme konverzije na kraju [12] = drugi % 10 + 48; Vrijeme [11] = drugo / 10 + 48; Vrijeme [9] = minut % 10 + 48; Vrijeme [8] = minuta / 10 + 48; Vrijeme [6] = sat % 10 + 48; Vrijeme [5] = sat / 10 + 48; Kalendar [14] = godina % 10 + 48; Kalendar [13] = godina / 10 + 48; Kalendar [9] = mjesec % 10 + 48; Kalendar [8] = mjesec / 10 + 48; Kalendar [6] = datum % 10 + 48; Kalendar [5] = datum / 10 + 48; lcd.setCursor (0, 0); lcd.print (vrijeme); // Vrijeme prikaza lcd.setCursor (0, 1); lcd.print (Kalendar); // Prikaz kalendara} void blink_parameter () {bajt j = 0; while (j 23) // Ako su sati> 23 ==> sati = 0 parametar = 0; if (i == 1 && parameter> 59) // Ako minute> 59 ==> minute = 0 parametar = 0; if (i == 2 && parametar> 31) // Ako je datum> 31 ==> datum = 1 parametar = 1; if (i == 3 && parametar> 12) // Ako je mjesec> 12 ==> mjesec = 1 parametar = 1; if (i == 4 && parametar> 99) // Ako je godina> 99 ==> godina = 0 parametar = 0; sprintf (tekst, "%02u", parametar); lcd.setCursor (x, y); lcd.print (tekst); kašnjenje (200); // Pričekajte 200 ms} lcd.setCursor (x, y); lcd.print (""); // Prikaz dva razmaka blink_parameter (); sprintf (tekst, "%02u", parametar); lcd.setCursor (x, y); lcd.print (tekst); blink_parameter (); if (! digitalRead (8)) {// Ako je pritisnuto dugme (pin #8) i ++; // Povećanje 'i' za sljedeći parametar vraćanja parametra; // Vrati vrijednost parametra i izađi}}} void loop () {if (! DigitalRead (8)) {// Ako je pritisnuto dugme (pin #8) i = 0; sat = uredi (5, 0, sat); minuta = uređivanje (8, 0, minuta); datum = uredi (5, 1, datum); mjesec = uredi (8, 1, mjesec); godina = uredi (13, 1, godina); // Pretvorimo decimalu u BCD minute = ((minute / 10) << 4) + (minute % 10); sat = ((sat / 10) << 4) + (sat % 10); datum = ((datum / 10) << 4) + (datum % 10); mjesec = ((mjesec / 10) << 4) + (mjesec % 10); godina = ((godina / 10) << 4) + (godina % 10); // Završetak konverzije // Zapisivanje podataka na DS3231 RTC Wire.beginTransmission (0x68); // Pokretanje I2C protokola s DS3231 adresom Wire.write (0); // Pošaljite adresu registra Wire.write (0); // Resetiraj sesondove i pokreni oscilator Wire.write (minuta); // Zapisivanje minute Wire.write (sat); // Zapisati sat Wire.write (1); // Upiši dan (ne koristi se) Wire.write (datum); // Upišite datum Wire.write (mjesec); // Napiši mjesec Wire.write (godina); // Napišite godinu Wire.endTransmission (); // Zaustavljanje prijenosa i otpuštanje kašnjenja sabirnice I2C (200); // Pričekajte 200 ms} Wire.beginTransmission (0x68); // Pokretanje I2C protokola s DS3231 adresom Wire.write (0); // Pošaljite adresu registra Wire.endTransmission (false); // I2C ponovno pokretanje Wire.requestFrom (0x68, 7); // Zatražite 7 bajtova od DS3231 i otpustite I2C sabirnicu na kraju drugog čitanja = Wire.read (); // Očitavanje sekundi iz registra 0 minuta = Wire.read (); // Čitanje minuta iz registra 1 sat = Wire.read (); // Očitavanje sata iz registra 2 Wire.read (); // Očitavanje dana iz registra 3 (ne koristi se) date = Wire.read (); // Čitanje datuma iz registra 4 mjeseca = Wire.read (); // Očitavanje mjeseca iz registra 5 godina = Wire.read (); // Očitavanje godine iz registra 6 DS3231_display (); // Vrijeme reprodukcije i kašnjenje kalendara (50); // Sačekajte 50 ms}
Preporučuje se:
Kako koristiti modul sata u stvarnom vremenu (DS3231): 5 koraka
Kako koristiti modul sata u stvarnom vremenu (DS3231): DS3231 je jeftin, izuzetno precizan I2C sat u stvarnom vremenu (RTC) sa integriranim kristalnim oscilatorom kompenziranim temperaturom (TCXO) i kristalom. Uređaj ima ulaz za bateriju i održava precizno mjerenje vremena kada je napajanje
Korištenje DS1307 i DS3231 modula sata u stvarnom vremenu s Arduinom: 3 koraka
Korištenje DS1307 i DS3231 modula satova u stvarnom vremenu s Arduinom: Stalno dobivamo zahtjeve o tome kako koristiti module satova u stvarnom vremenu DS1307 i DS3231 s Arduinom iz različitih izvora-pa je ovo prvi od dva dijela vodiča o tome kako ih koristiti. Za ovaj Arduino vodič imamo dva modula sata u stvarnom vremenu
DS1307 Sat u realnom vremenu RTC sa Arduinom: 4 koraka
DS1307 RTC sat sa realnim vremenom sa Arduinom: U ovom vodiču ćemo naučiti o satu sa realnim vremenom (RTC) i kako Arduino & IC sa satom u realnom vremenu IC DS1307 sastavljeni su kao vremenski uređaj. Sat stvarnog vremena (RTC) koristi se za praćenje vremena i održavanje kalendara. Da biste koristili RTC, w
Kako napraviti sat u stvarnom vremenu pomoću Arduino i TFT ekrana - Arduino Mega RTC sa 3,5 -inčnim TFT ekranom: 4 koraka
Kako napraviti sat u stvarnom vremenu koristeći Arduino i TFT ekran | Arduino Mega RTC sa 3,5-inčnim TFT ekranom: Posjetite moj Youtube kanal. Uvod:- U ovom postu ću napraviti „Sat u stvarnom vremenu“koristeći 3,5-inčni TFT LCD ekran osjetljiv na dodir, Arduino Mega 2560 i DS3231 RTC modul … .Prije početka … provjerite video sa mog YouTube kanala..Napomena:- Ako koristite Arduin
Zapis podataka MPU-6050/A0 u stvarnom vremenu s Arduinom i Androidom: 7 koraka (sa slikama)
Zapisivanje podataka u realnom vremenu MPU-6050/A0 s Arduinom i Androidom: Zanimalo me korištenje Arduina za strojno učenje. Kao prvi korak, želim izgraditi prikaz podataka i zapisnik u stvarnom vremenu (ili prilično blizu njega) sa Android uređajem. Želim snimiti podatke akcelerometra s MPU-6050 pa sam dizajnirao