Cov txheej txheem:
- Kauj Ruam 1: Cov Cheeb Tsam Xav Tau
- Kauj Ruam 2: Kev Sib Txuas ntawm Arduino Moos
- Kauj Ruam 3: Txoj Cai rau Arduino Moos Nrog RTC
Video: Sijhawm Tiag Nrog Arduino: 3 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:26
Hauv txoj haujlwm no, peb yuav ua lub moos nrog kev pab ntawm Arduino thiab RTC module. Raws li peb paub Arduino tsis tuaj yeem tso saib lub sijhawm tiag tiag yog li peb yuav siv RTC module los tso saib lub sijhawm raug ntawm lub LCD. Nyeem tag nrho cov kauj ruam ua tib zoo nws yuav pab koj ntau heev kom ua tiav cov haujlwm.
DS3231 Arduino code zoo li DS1307 code thiab nws ua haujlwm nrog ob qho RTC chips.
Tus lej Arduino hauv qab tsis siv lub tsev qiv ntawv twg rau DS3231 RTC, Lub Tsev Qiv Hlau yog rau kev sib tham ntawm Arduino thiab DS3231 siv I2C cov rooj sib tham.
Yog! Ntau tus kws tsim khoom siv hluav taws xob vam khom nws rau lawv txoj haujlwm raws sijhawm tab sis RTC tsis ntseeg tau kiag li. Nws yog lub roj teeb ua haujlwm thiab yuav tsum tau hloov pauv sai lossis tom qab. Los rau IoT cov phiaj xwm nws tau txais txiaj ntsig zoo SPI (Serial Peripheral Interface) pins thiab cuam tshuam nrog cov xov hlau tangled ncig. Tshuaj…. Ntawm no yog peb tus phab ej NTP (Network lub sijhawm raws tu qauv). NTP yog qhov tseeb vim nws tau txais sijhawm los ntawm internet. Peb yuav ua haujlwm raws tu qauv no siv hom neeg siv-server. cov txheej txheem yog yooj yim heev uas peb Nodemcu ua raws li tus neeg siv khoom thiab thov NTP pob ntawv los ntawm server siv UDP. Rov qab los, tus neeg rau zaub mov xa pob ntawv mus rau tus neeg siv khoom uas txheeb xyuas cov ntaub ntawv. NTP yog lub sijhawm ua haujlwm thoob ntiaj teb synchronization raws tu qauv. Tam sim no cia peb teeb peb lub chaw ua haujlwm lab
Kauj Ruam 1: Cov Cheeb Tsam Xav Tau
- Arduino pawg thawj coj saib
- DS3231 RTC pawg thawj coj saib
- 16x2 LCD npo
- 2 x laub khawm
- 10K ohm kuj sib txawv resistor (lossis potentiometer)
- 330-ohm resistor
- 3V npib cell roj teeb
- Cov qhob cij
- Jumper xov hlau
RTC mocule DS3231 Cov
Lub sijhawm yog qhov kev nkag siab tseem ceeb xav tau hauv ntiaj teb kev nrawm ntawm tib neeg. Hauv qhov project tiag tiag
Peb siv RTC (AK Lub Sijhawm Sijhawm Tiag)
RTC Lub Sij Hawm Tiag Tiag (RTC) yog kev sib koom ua ke (IC) uas taug qab lub sijhawm tam sim no. RTC saib xyuas lub sijhawm nyob rau hauv hom tiag. RTC feem ntau pom muaj nyob hauv khoos phis tawj motherboards thiab teeb tsa kab ke kom xav tau kev nkag mus raws sijhawm.
Kauj Ruam 2: Kev Sib Txuas ntawm Arduino Moos
- Txuas SCL tus pin rau RTC module rau Arduino A5
- Txuas SDA tus pin rau RTC module rau Arduino A4
- Txuas VCC mus rau 5v thiab GND rau GND
- Txuas lub laub khawm rau tus pin 8
- Txuas lwm lub laub khawm rau tus pin 9
- Txuas RS ntawm LCD rau tus pin 2 ntawm Arduino
- Txuas E ntawm LCD rau tus pin 3 ntawm Arduino
- Txuas D7 ntawm LCD rau tus pin 7 ntawm Arduino
- Txuas D6 ntawm LCD rau tus pin 6 ntawm Arduino
- Txuas D5 ntawm LCD mus rau tus pin 5 ntawm Arduino
- Txuas D4 ntawm LCD rau tus pin 4 ntawm Arduino
- Txuas VSS & K rau GND
- Txuas VDD & A mus rau 5v
- Txuas lub vo rau tus pin tus lej potentiometer
Kauj Ruam 3: Txoj Cai rau Arduino Moos Nrog RTC
DS3231 ua haujlwm nrog BCD hom nkaus xwb thiab hloov BCD mus rau zauv thiab vise sib piv Kuv siv 2 kab hauv qab no (piv txwv rau feeb): // Hloov BCD rau decimalminute = (feeb >> 4) * 10 + (feeb & 0x0F);
// Hloov cov lej los BCDminute = ((feeb / 10) << 4) + (feeb % 10); tsis muaj dab tsi DS3231_display (): qhia lub sijhawm thiab daim ntawv qhia hnub, ua ntej tso saib lub sijhawm thiab daim ntawv qhia hnub cov ntaub ntawv tau hloov pauv los ntawm BCD mus rau cov lej zauv.void blink_parameter ():
// Lub sijhawm tiag tiag thiab daim ntawv qhia hnub nrog teeb tsa khawm siv DS3231 thiab Arduino // suav nrog LCD lub tsev qiv ntawv code #include // suav nrog Cov xov tooj xov tooj (uas xav tau rau I2C raws tu qauv khoom siv) #suav nrog // LCD module sib txuas (RS, E, D4, D5, D6, D7) LiquidCrystal lcd (2, 3, 4, 5, 6, 7); teeb tsa tsis muaj dab tsi () {pinMode (8, INPUT_PULLUP); // button1 txuas nrog tus pin 8 pinMode (9, INPUT_PULLUP); // khawm 2 txuas nrog tus pin 9 // teeb tsa LCD tus lej ntawm kab thiab kab lcd.begin (16, 2); Hlau.begin (); // Koom nrog i2c npav} char Sijhawm = "SIJHAWM:::"; char Calendar = "HNUB: / / 20"; byte kuv, thib ob, feeb, teev, hnub tim, hli, xyoo; void DS3231_display () {// Hloov BCD mus rau decimal thib ob = (thib ob >> 4) * 10 + (thib ob & 0x0F); feeb = (feeb >> 4) * 10 + (feeb & 0x0F); teev = (teev >> 4) * 10 + (teev & 0x0F); hnub = (hnub tim >> 4) * 10 + (hnub tim & 0x0F); hli = (hli >> 4) * 10 + (hli & 0x0F); xyoo = (xyoo >> 4) * 10 + (xyoo & 0x0F); // Xaus Kev Hloov Sijhawm [12] = thib ob % 10 + 48; Sijhawm [11] = thib ob / 10 + 48; Sijhawm [9] = feeb % 10 + 48; Sijhawm [8] = feeb / 10 + 48; Sijhawm [6] = teev % 10 + 48; Sijhawm [5] = teev / 10 + 48; Calendar [14] = xyoo % 10 + 48; Calendar [13] = xyoo / 10 + 48; Calendar [9] = hli % 10 + 48; Calendar [8] = hli / 10 + 48; Calendar [6] = hnub % 10 + 48; Calendar [5] = hnub tim / 10 + 48; lcd.setCursor (0, 0); lcd.print (Sijhawm); // Zaub sijhawm lcd.setCursor (0, 1); lcd.print (Calendar); // Zaub daim calendar} tsis muaj dab tsi blink_parameter () {byte j = 0; thaum (j 23) // Yog teev> 23 ==> teev = 0 parameter = 0; yog (i == 1 && parameter> 59) // Yog feeb> 59 ==> feeb = 0 parameter = 0; yog (i == 2 && parameter> 31) // Yog hnub tim> 31 ==> date = 1 parameter = 1; yog (i == 3 && parameter> 12) // Yog hli> 12 ==> hli = 1 qhov ntsuas = 1; yog (i == 4 && parameter> 99) // Yog xyoo> 99 ==> xyoo = 0 parameter = 0; sprintf (ntawv, "%02u", parameter); lcd.setCursor (x, y); lcd.print (ntawv nyeem); ncua (200); // Tos 200ms} lcd.setCursor (x, y); lcd.print (""); // Zaub ob qhov chaw blink_parameter (); sprintf (ntawv, "%02u", parameter); lcd.setCursor (x, y); lcd.print (ntawv nyeem); blink_parameter (); yog (! digitalRead (8)) {// Yog tias khawm (tus pin #8) raug nias kuv ++; // Increament 'i' rau qhov ntsuas tom ntej rov qab ntsuas; // Rov qab qhov ntsuas tus nqi thiab tawm mus}}} void loop () {yog (! DigitalRead (8)) {// Yog tias khawm (tus lej #8) raug nias i = 0; teev = hloov kho (5, 0, teev); feeb = kho kom raug (8, 0, feeb); date = edit (5, 1, hnub tim); hli = kho (8, 1, hli); xyoo = hloov kho (13, 1, xyoo); // Hloov zauv zauv rau BCD feeb = ((feeb / 10) << 4) + (feeb % 10); teev = ((teev / 10) << 4) + (teev % 10); hnub tim = ((hnub tim / 10) << 4) + (hnub tim % 10); hli = ((hli / 10) << 4) + (hli % 10); xyoo = ((xyoo / 10) << 4) + (xyoo % 10); // Xaus kev hloov pauv // Sau cov ntaub ntawv rau DS3231 RTC Wire.beginTransmission (0x68); // Pib I2C raws tu qauv nrog DS3231 chaw nyob Wire.write (0); // Xa npe chaw nyob Wire.write (0); // Pib dua sesonds thiab pib oscillator Wire.write (feeb); // Sau feeb Wire.write (teev); // Sau teev Wire.write (1); // Sau hnub (tsis siv) Wire.write (hnub tim); // Sau hnub tim Wire.write (hli); // Sau hli Wire.write (xyoo); // Sau xyoo Wire.endTransmission (); // Nres kev xa mus thiab tso I2C ncua tsheb npav (200); // Tos 200ms} Wire.beginTransmission (0x68); // Pib I2C raws tu qauv nrog DS3231 chaw nyob Wire.write (0); // Xa npe chaw nyob Wire.endTransmission (cuav); // I2C rov pib dua Wire.requestFrom (0x68, 7); // Thov 7 bytes los ntawm DS3231 thiab tso I2C npav thaum kawg nyeem thib ob = Wire.read (); // Nyeem vib nas this los ntawm npe 0 feeb = Wire.read (); // Nyeem qhov tsawg los ntawm npe 1 teev = Wire.read (); // Nyeem teev los ntawm npe 2 Wire.read (); // Nyeem hnub los ntawm npe 3 (tsis siv) hnub = Wire.read (); // Nyeem hnub tim sau npe 4 lub hlis = Wire.read (); // Nyeem lub hlis los ntawm npe 5 xyoos = Wire.read (); // Nyeem xyoo los ntawm npe 6 DS3231_display (); // Diaplay lub sijhawm & ncua sijhawm (50); // Tos 50ms}
Pom zoo:
Yuav Siv Li Cas Lub Sijhawm Teev Sijhawm Tiag (DS3231): 5 Kauj Ruam
Yuav Ua Li Cas Siv Lub Sijhawm Caij Sijhawm Tiag (DS3231): DS3231 yog tus nqi qis, tsis tshua muaj neeg raug I2C lub sijhawm tiag tiag (RTC) nrog kev sib xyaw ua kom sov-them nyiaj siv lead ua oscillator (TCXO) thiab siv lead ua. Lub cuab yeej suav nrog lub roj teeb nkag thiab tswj lub sijhawm kom raug thaum lub zog tseem ceeb rau
Lub Sijhawm Tiag Tiag Tiag Tiag Tiag Paub Siv EM Hneev Taw: 6 Kauj Ruam
Kev Pom Zoo Lub Sijhawm Tiag Tiag Siv EM Cov Hneev Taw: Cov cuab yeej no yog txhawm rau faib cov khoom siv hluav taws xob sib txawv raws li lawv cov cim EM. Rau cov cuab yeej sib txawv, lawv muaj cov cim sib txawv EM tawm los ntawm nws. Peb tau tsim kev daws teeb meem IoT txhawm rau txheeb xyuas cov khoom siv hluav taws xob siv Particle
Siv DS1307 thiab DS3231 Lub Sijhawm Teev Sijhawm Sijhawm Nrog Arduino: 3 Kauj Ruam
Siv DS1307 thiab DS3231 Lub Sijhawm Caij Nyoog Sijhawm Nrog Arduino: Peb tseem tau txais kev thov yuav siv DS1307 thiab DS3231 lub sijhawm teev sijhawm nrog Arduino los ntawm ntau qhov chaw-yog li qhov no yog thawj ntawm ob ntu kev qhia yuav siv li cas. Txog qhov kev qhia Arduino no peb muaj ob lub sijhawm teev sijhawm ua haujlwm rau peb
Arduino Raws Lub Sijhawm Siv DS1307 Lub Sijhawm Tiag (RTC) Module & 0.96: 5 Cov Kauj Ruam
Arduino Raws Lub Sijhawm Siv DS1307 Lub Sijhawm Tiag (RTC) Module & 0.96: Nyob zoo cov menyuam hauv qhov kev qhia no peb yuav pom yuav ua li cas thiaj ua lub moos ua haujlwm siv DS1307 lub sijhawm teev sijhawm & Yog li peb yuav nyeem lub sijhawm los ntawm lub moos module DS1307. Thiab luam tawm ntawm lub vijtsam OLED
Ua Lub Sijhawm Nrog M5stick C Siv Arduino IDE - RTC Lub Sijhawm Tiag Nrog M5stack M5stick-C: 4 Cov Kauj Ruam
Ua Lub Sijhawm Nrog M5stick C Siv Arduino IDE | RTC Lub Sijhawm Sijhawm Nrog M5stack M5stick-C: Nyob zoo cov neeg hauv phau ntawv qhia no peb yuav kawm paub yuav ua li cas thiaj ua lub moos nrog m5stick-C txhim kho pawg thawj coj ntawm m5stack siv Arduino IDE.So m5stick yuav tso tawm hnub, sijhawm & lub lim tiam ntawm lub hlis ntawm cov zaub