Arduino-ൽ ക്ലോക്ക് ഉപയോഗിച്ച് സ്വിച്ചുചെയ്യുന്നു. ഒരു RTC മൊഡ്യൂൾ ഉപയോഗിക്കാതെ Arduino-ൽ ക്ലോക്ക് ചെയ്യുക

തുടക്കക്കാർ ആർഡ്വിനോ ബോർഡ് ഉപയോഗിച്ച് നിർമ്മിക്കുന്ന ആദ്യ പ്രോജക്റ്റുകളിൽ ഒന്നാണ് ലളിതമായ ക്ലോക്ക്, സമയം എണ്ണുന്നു. അടിസ്ഥാനപരമായി, അത്തരം ക്ലോക്കുകൾ Arduino-യുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന ഒരു RTC മൊഡ്യൂളിനെ അടിസ്ഥാനമാക്കിയുള്ളതാണ് ( തൽസമയംക്ലോക്ക് അല്ലെങ്കിൽ റിയൽ ടൈം ക്ലോക്ക്). ഇന്ന് വിപണിയിൽ ഇലക്ട്രോണിക് ഘടകങ്ങൾലഭ്യമാണ് വ്യത്യസ്ത മോഡലുകൾകൃത്യതയിലും വിലയിലും വ്യത്യാസമുള്ള ആർ.ടി.സി. DS1302, DS1307, DS3231 എന്നിവയാണ് സാധാരണ മോഡലുകൾ.



എന്നാൽ ഒരു ആർടിസി ഉപയോഗിക്കാതെ തന്നെ നിങ്ങൾക്ക് ആർഡ്വിനോയിൽ ഒരു ക്ലോക്ക് ഉണ്ടാക്കാം, പ്രത്യേകിച്ചും നിങ്ങൾക്ക് അത്തരം മൊഡ്യൂളുകൾ ലഭിക്കുന്നില്ലെങ്കിൽ. തീർച്ചയായും, കൃത്യതയാണ് ഈ സാഹചര്യത്തിൽചെറുതായിരിക്കും, അതിനാൽ പ്രോജക്റ്റ് ഒരു പരിശീലന പദ്ധതിയായി കണക്കാക്കണം.


അത്തരം വാച്ചുകളുടെ പ്രവർത്തന തത്വം വളരെ ലളിതമാണ്. നിങ്ങൾ ഈ ആർഡ്വിനോ ക്ലോക്ക് ഓണാക്കുമ്പോഴെല്ലാം, മറ്റേതൊരു സമയത്തേയും പോലെ നിങ്ങൾ അത് നിലവിലെ സമയത്തിലേക്ക് സജ്ജീകരിക്കേണ്ടതുണ്ട് അനലോഗ് ക്ലോക്ക്. അത്തരം വാച്ചുകൾ നിങ്ങളുടെ കയ്യിൽ ഉപയോഗിക്കാതിരിക്കുന്നതാണ് നല്ലത് ദൈനംദിന ജീവിതംഅവ റീബൂട്ട് ചെയ്യാതെ വളരെക്കാലം സജീവമായിരിക്കുമ്പോൾ ഒപ്പം കൂടുതൽ കസ്റ്റമൈസേഷൻ, ദീർഘകാല പ്രവർത്തന സമയത്ത് നിലവിലെ സമയവുമായി ഡീസിൻക്രൊണൈസേഷൻ പ്രാധാന്യമർഹിക്കുന്നതിനാൽ.


ഈ വാച്ച് ഒരു സാധാരണ ഉപയോഗിച്ച് കൂട്ടിച്ചേർക്കാവുന്നതാണ് ബ്രെഡ്ബോർഡ്, ഇതിന് ധാരാളം ഘടകങ്ങൾ ആവശ്യമില്ലാത്തതിനാൽ. ഞങ്ങളുടെ പ്രധാന ലിങ്ക് ഇവിടെ ആയിരിക്കും ആർഡ്വിനോ ബോർഡ് Uno. സമയം പ്രദർശിപ്പിക്കുന്നതിന്, നിങ്ങൾക്ക് 16x2 എൽസിഡി ഡിസ്പ്ലേ എടുക്കാം. സമയ ക്രമീകരണങ്ങൾ മാറ്റാൻ, നിങ്ങൾ രണ്ട് ബട്ടണുകൾ (മണിക്കൂറുകൾക്കും മിനിറ്റുകൾക്കും) ബന്ധിപ്പിക്കേണ്ടതുണ്ട്. ബട്ടണുകൾ 10KΩ റെസിസ്റ്ററുകൾ വഴി Aduino- ലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു. ഡിസ്പ്ലേയുടെ തെളിച്ചം മാറ്റാൻ നിങ്ങൾക്ക് ഒരു 10 kOhm പൊട്ടൻഷിയോമീറ്റർ ആവശ്യമാണ്. Arduino Uno ബോർഡിലേക്കുള്ള ഈ എല്ലാ ഘടകങ്ങളുടെയും കണക്ഷൻ ഡയഗ്രം ചുവടെ അവതരിപ്പിച്ചിരിക്കുന്നു.



ഇപ്പോൾ നിങ്ങൾ Arduino പ്രോഗ്രാം ചെയ്യണം. LCD സ്ക്രീനിൽ സമയം പ്രദർശിപ്പിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു ലളിതമായ കോഡ് (സ്കെച്ച്) ചുവടെ നൽകിയിരിക്കുന്നു.


#ഉൾപ്പെടുന്നു ലിക്വിഡ് ക്രിസ്റ്റൽ എൽസിഡി(12,11,5,4,3,2); int h=12; int m; int s; int പതാക; ഇൻറ്റ് TIME; const int hs=8; const int ms=9; int state1; int state2; void setup() (lcd.begin(16,2); ) void loop() (lcd.setCursor(0,0); s=s+1; lcd.print("TIME:"); lcd.print(h ); lcd.print(":"); lcd.print(m); lcd.print(":"); lcd.print(s); if(flag).<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM"); എങ്കിൽ(പതാക==24)പതാക=0; കാലതാമസം (1000); lcd.clear(); if(s==60)( s=0; m=m+1; ) if(m==60) (m=0; h=h+1; flag=flag+1; ) if(h==13 ) ( h=1; ) lcd.setCursor(0,1); lcd.print("ഒരു നല്ല ദിവസം ആശംസിക്കുന്നു"); //-------സമയം // ക്രമീകരണം-------// state1=digitalRead(hs); if(state1==1) ( h=h+1; flag=flag+1; if(flag<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM"); എങ്കിൽ(പതാക==24)പതാക=0; if(h==13)h=1; ) state2=digitalRead(ms); if(state2==1)( s=0; m=m+1; ) )

    വെബ്സൈറ്റ് വിവര പദ്ധതിയിലുള്ള നിങ്ങളുടെ താൽപ്പര്യത്തിന് നന്ദി.
   നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടെങ്കിൽ ഒപ്പം ഉപയോഗപ്രദമായ വസ്തുക്കൾകൂടുതൽ തവണ പുറത്തിറങ്ങി, പരസ്യങ്ങൾ കുറവായിരുന്നു,
    ഞങ്ങളുടെ പ്രോജക്ടിന്റെ വികസനത്തിനായി എത്ര തുകയും സംഭാവന ചെയ്തുകൊണ്ട് നിങ്ങൾക്ക് പിന്തുണയ്ക്കാം.

അതിനാൽ, തത്സമയ ക്ലോക്ക്. ഈ ഉപയോഗപ്രദമായ ചെറിയ കാര്യം ഏറ്റവും ഉപയോഗപ്രദമായ സമയവുമായി ബന്ധപ്പെട്ട പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നു. നിങ്ങളുടെ ഡാച്ചയിൽ രാവിലെ 5 മണിക്ക് നിങ്ങൾ നനവ് നിയന്ത്രിക്കുന്നുവെന്ന് പറയാം. അല്ലെങ്കിൽ ലൈറ്റുകൾ ഓണാക്കുന്നതും ഓഫാക്കുന്നതും നിശ്ചിത നിമിഷം. തീയതി പ്രകാരം നിങ്ങൾക്ക് ഏത് വീട്ടിലും ചൂടാക്കൽ ആരംഭിക്കാം. കാര്യം വളരെ രസകരവും ഉപയോഗപ്രദവുമാണ്. കൂടുതൽ വ്യക്തമായി? ജനപ്രിയമായ Arduino പ്ലാറ്റ്‌ഫോമിനായി ഞങ്ങൾ DS1302 തത്സമയ ക്ലോക്ക് നോക്കും.

ഈ ലേഖനത്തിൽ നിന്ന് നിങ്ങൾ പഠിക്കും:

ശുഭദിനം, പ്രിയ വായനക്കാരേതടയുക kip-world! എങ്ങിനെ ഇരിക്കുന്നു? അഭിപ്രായങ്ങളിൽ എഴുതുക, നിങ്ങൾക്ക് റോബോട്ടിക്സിൽ താൽപ്പര്യമുണ്ടോ? ഈ വിഷയം നിങ്ങൾക്ക് എന്താണ് അർത്ഥമാക്കുന്നത്?

ഒരു നിമിഷം പോലും എനിക്ക് ഇതിനെക്കുറിച്ച് ചിന്തിക്കാതിരിക്കാൻ കഴിയില്ല. ഒരു പേഴ്‌സണൽ റോബോട്ട് അസിസ്റ്റന്റ് വാങ്ങാൻ എല്ലാവർക്കും താങ്ങാനാകുന്ന ഘട്ടത്തിലേക്ക് ഞങ്ങൾ എപ്പോൾ എത്തുമെന്ന് ഞാൻ സ്വപ്നം കാണുന്നു. അവൻ എന്ത് ചെയ്യുന്നു, ചവറ്റുകുട്ടകൾ എടുക്കൽ, പുൽത്തകിടി വെട്ടൽ, കാർ കഴുകൽ എന്നിവയിൽ കാര്യമില്ല.

എങ്ങനെയെന്ന് എനിക്ക് ഊഹിക്കാവുന്നതേയുള്ളൂ സങ്കീർണ്ണമായ അൽഗോരിതങ്ങൾഅവ അവരുടെ "തലച്ചോറിൽ" അടങ്ങിയിരിക്കണം.

എല്ലാത്തിനുമുപരി, പേഴ്സണൽ കമ്പ്യൂട്ടറുകളിലെ അതേ രീതിയിൽ സോഫ്റ്റ്വെയർ ഫ്ലാഷ് ചെയ്യുന്ന ഘട്ടത്തിലേക്ക് ഞങ്ങൾ വരും. കൂടാതെ ഡൗൺലോഡ് ചെയ്യുക ആപ്ലിക്കേഷൻ പ്രോഗ്രാമുകൾ. കൈകൾ, കാലുകൾ, നഖങ്ങൾ മാറ്റുക, കൃത്രിമത്വം എന്നിവയിൽ തയ്യുക.

"ഐ റോബോട്ട്", " എന്നീ സിനിമകൾ കാണുക നിർമ്മിത ബുദ്ധി", "സ്റ്റാർ വാർസ്".

ജാപ്പനീസ് അവരുടെ വികസനങ്ങൾ വളരെക്കാലമായി നടപ്പിലാക്കുന്നു. എന്തുകൊണ്ടാണ് നമ്മൾ മോശമായത് ?? ഞങ്ങൾക്ക് ജനപ്രീതി വളരെ കുറവാണ്. എനിക്ക് കുറച്ച് ഡെവലപ്പർമാരെ അറിയാം. എനിക്കത് വിരലിൽ എണ്ണാം. ഞങ്ങൾ മറ്റെന്തെങ്കിലും ചെയ്യുന്നു. ഞങ്ങൾ റീസെല്ലർമാരാണ്. ഞങ്ങൾ റെഡിമെയ്ഡ് കിറ്റുകളും റോബോട്ടുകളും കളിപ്പാട്ടങ്ങളും എല്ലാത്തരം മാലിന്യങ്ങളും വാങ്ങുന്നു.

എന്തുകൊണ്ടാണ് ഞങ്ങൾ ഇത് വികസിപ്പിക്കാത്തത്:

അല്ലെങ്കിൽ ഇത്:

ഞാൻ ഉറക്കെ എന്റെ ചിന്തകൾ അവസാനിപ്പിച്ചു. DS1302 റിയൽ ടൈം ക്ലോക്ക് ടൈമർ Arduino-ലേക്ക് ബന്ധിപ്പിക്കുന്നതിനെക്കുറിച്ച് സംസാരിക്കാം.

തത്സമയ ക്ലോക്ക് DS1302

Arduino കൺട്രോളറിന് അതിന്റേതായ ക്ലോക്ക് ഇല്ല. അതിനാൽ, ആവശ്യമെങ്കിൽ, ഇത് ഒരു പ്രത്യേക DS1302 മൈക്രോ സർക്യൂട്ട് ഉപയോഗിച്ച് അനുബന്ധമായി നൽകണം.

വൈദ്യുതി വിതരണത്തിനായി, ഈ ബോർഡുകൾക്ക് സ്വന്തം ബാറ്ററി ഉപയോഗിക്കാം, അല്ലെങ്കിൽ Arduino ബോർഡിൽ നിന്ന് നേരിട്ട് പവർ ചെയ്യാം.

പിൻഔട്ട് പട്ടിക:

Arduino UNO-യുമായുള്ള കണക്ഷൻ ഡയഗ്രം:


DS1302-നൊപ്പം പ്രവർത്തിക്കാൻ Arduino പ്രോഗ്രാമിംഗ് രീതി

വിശ്വസനീയമായ ഉറവിടങ്ങളിൽ നിന്ന് സാധുവായ ഒരു ലൈബ്രറി ഡൗൺലോഡ് ചെയ്യേണ്ടത് അത്യന്താപേക്ഷിതമാണ്.

തത്സമയ പാരാമീറ്ററുകൾ വായിക്കാനും എഴുതാനും ലൈബ്രറി നിങ്ങളെ അനുവദിക്കുന്നു. ഞാൻ താഴെ ഒരു ചെറിയ വിവരണം നൽകുന്നു:

#ഉൾപ്പെടുന്നു // ലൈബ്രറി ബന്ധിപ്പിക്കുക.
iarduino_RTC ഒരു വസ്തു ( NAME [, RST_OUTPUT [, CLK_OUTPUT [, DAT_OUTPUT ]]] ); // ഒരു വസ്തു സൃഷ്ടിക്കുക.

ഫംഗ്ഷൻ ആരംഭിക്കുന്നു();// RTC മൊഡ്യൂളിന്റെ പ്രവർത്തനം ആരംഭിക്കുക.

ഫംഗ്ഷൻ സെറ്റ് ടൈം(സെക്കന്റ് [, മിനിറ്റ് [, മണിക്കൂർ [, ദിവസം [, മാസം [, വർഷം [, ദിവസം]]]]]] ); // സമയം ക്രമീകരിക്കുന്നു.

ഫംഗ്ഷൻ കിട്ടുന്ന സമയം([ലൈൻ] ); // സമയം വായിക്കുക.

പ്രവർത്തനം മിന്നുന്ന സമയം (പാരാമീറ്റർ [ഫ്രീക്വൻസി] ); // ഗെറ്റ്‌ടൈം ഫംഗ്‌ഷൻ "മിന്നിമറയാൻ" കാരണമാകുന്നു വ്യക്തമാക്കിയ പരാമീറ്റർസമയം.

പ്രവർത്തനം കാലഘട്ടം(മിനിറ്റ് ); // മിനിറ്റുകൾക്കുള്ളിൽ മൊഡ്യൂളിലേക്ക് പ്രവേശിക്കുന്നതിനുള്ള ഏറ്റവും കുറഞ്ഞ കാലയളവ് സൂചിപ്പിക്കുന്നു.

വേരിയബിൾ സെക്കന്റുകൾ// 0 മുതൽ 59 വരെയുള്ള സെക്കൻഡുകൾ നൽകുന്നു.

വേരിയബിൾ മിനിറ്റ്// 0 മുതൽ 59 വരെയുള്ള മിനിറ്റുകൾ നൽകുന്നു.

വേരിയബിൾ മണിക്കൂറുകൾ// 1 മുതൽ 12 വരെ മണിക്കൂറുകൾ നൽകുന്നു.

വേരിയബിൾ മണിക്കൂറുകൾ// 0 മുതൽ 23 വരെ മണിക്കൂറുകൾ നൽകുന്നു.

വേരിയബിൾ മദ്ധ്യാഹ്നം// ഉച്ചയ്ക്ക് 0 അല്ലെങ്കിൽ 1 (0-am, 1-pm) മടങ്ങുന്നു.

വേരിയബിൾ ദിവസം// മാസത്തിലെ ദിവസം 1 മുതൽ 31 വരെ നൽകുന്നു.

വേരിയബിൾ പ്രവൃത്തിദിനം// ആഴ്ചയിലെ ദിവസം 0 മുതൽ 6 വരെ നൽകുന്നു (0 ഞായറാഴ്ചയാണ്, 6 ശനിയാഴ്ചയാണ്).

വേരിയബിൾ മാസം// 1 മുതൽ 12 വരെയുള്ള മാസം നൽകുന്നു.

വേരിയബിൾ വർഷം// വർഷം 0 മുതൽ 99 വരെ നൽകുന്നു.

ഞങ്ങള് എഴുതുന്നു ഒരു ലളിതമായ പ്രോഗ്രാം. RTC മൊഡ്യൂളിൽ (DS1302) നിലവിലെ സമയം ക്രമീകരിക്കുന്നു:

ആർഡ്വിനോ

#ഉൾപ്പെടുന്നു iarduino_RTC സമയം(RTC_DS1302,6,7,8); അസാധുവായ സജ്ജീകരണം() (കാലതാമസം(300); Serial.begin(9600); time.begin(); time.settime(0,51,21,27,10,15,2); // 0 സെക്കന്റ്, 51 മിനിറ്റ്, 21 മണിക്കൂർ, ഒക്ടോബർ 27, 2015, ചൊവ്വാഴ്ച ) ശൂന്യമായ ലൂപ്പ്())( if(millis()%1000==0)( // 1 സെക്കൻഡ് Serial.println(time.gettime("d-m-Y, H:i: s, D")); // സമയ കാലതാമസം പ്രദർശിപ്പിക്കുക(1); // 1 ms-ന് താൽക്കാലികമായി നിർത്തുക, അങ്ങനെ 1 ms-ൽ സമയം പലതവണ പ്രദർശിപ്പിക്കാതിരിക്കുക) )

#ഉൾപ്പെടുന്നു

iarduino_RTCtime(RTC_DS1302, 6, 7, 8);

അസാധുവായ സജ്ജീകരണം () (

കാലതാമസം (300);

സീരിയൽ. ആരംഭിക്കുക (9600);

സമയം. ആരംഭിക്കുന്നു();

സമയം. സെറ്റ് ടൈം (0, 51, 21, 27, 10, 15, 2); // 0 സെക്കന്റ്, 51 മിനിറ്റ്, 21 മണിക്കൂർ, ഒക്ടോബർ 27, 2015, ചൊവ്വാഴ്ച

ശൂന്യമായ ലൂപ്പ്() (

എങ്കിൽ (മില്ലി()% 1000 == 0 ) ( // 1 സെക്കൻഡ് കഴിഞ്ഞെങ്കിൽ

സീരിയൽ. println (സമയം . gettime ( "d-m-Y, H:i:s, D" ) ); // പ്രദർശന സമയം

കാലതാമസം (1); // സമയം 1 ms-ൽ പലതവണ പ്രദർശിപ്പിക്കാതിരിക്കാൻ 1 ms-ന് താൽക്കാലികമായി നിർത്തുക

ഞങ്ങൾ RTC മൊഡ്യൂളിൽ നിന്ന് (DS1302) നിലവിലെ സമയം വായിച്ച് "സീരിയൽ പോർട്ടിലേക്ക്" ഔട്ട്പുട്ട് ചെയ്യുന്നു:

#ഉൾപ്പെടുന്നു iarduino_RTC സമയം(RTC_DS1302,6,7,8); അസാധുവായ സജ്ജീകരണം() (കാലതാമസം(300); Serial.begin(9600); time.begin(); ) void loop())( if(millis()%1000==0)( // 1 സെക്കൻഡ് സീരിയൽ കടന്നുപോയെങ്കിൽ .println (time.gettime("d-m-Y, H:i:s, D")); // സമയ കാലതാമസം പ്രദർശിപ്പിക്കുക(1); // സമയം 1 ms-ൽ പലതവണ പ്രദർശിപ്പിക്കാതിരിക്കാൻ 1 ms-ന് താൽക്കാലികമായി നിർത്തുക ) )

ഗുഡ് ആഫ്റ്റർനൂൺ, ഇന്ന് ഞാൻ ഒരു റൂം തെർമോമീറ്റർ ഉപയോഗിച്ച് ഒരു ക്ലോക്ക് നിർമ്മിക്കുന്നതിനുള്ള നിർദ്ദേശങ്ങൾ പങ്കിടും( DIY Arduino ക്ലോക്ക്). Arduino UNO-യിൽ ക്ലോക്ക് പ്രവർത്തിക്കുന്നു; സമയവും താപനിലയും പ്രദർശിപ്പിക്കുന്നതിന് WG12864B ഗ്രാഫിക് സ്‌ക്രീൻ ഉപയോഗിക്കുന്നു. ഒരു താപനില സെൻസറായി - ds18b20. മറ്റ് മിക്ക ക്ലോക്കുകളിൽ നിന്നും വ്യത്യസ്തമായി, ഞാൻ RTS (റിയൽ ടൈം ക്ലോക്ക്) ഉപയോഗിക്കില്ല, എന്നാൽ ഈ അധിക മൊഡ്യൂൾ ഇല്ലാതെ ചെയ്യാൻ ശ്രമിക്കും.

Arduino സർക്യൂട്ടുകളെ അവയുടെ ലാളിത്യത്താൽ വേർതിരിച്ചിരിക്കുന്നു, ആർക്കും Arduino പഠിക്കാൻ തുടങ്ങാം. ഞങ്ങളുടെ ലേഖനത്തിൽ ലൈബ്രറികൾ എങ്ങനെ ബന്ധിപ്പിക്കാമെന്നും ആർഡ്വിനോ ഫ്ലാഷ് ചെയ്യാമെന്നും നിങ്ങൾക്ക് വായിക്കാം.

നമുക്ക് തുടങ്ങാം.

ഈ ക്ലോക്ക് സൃഷ്ടിക്കാൻ ഞങ്ങൾക്ക് ഇത് ആവശ്യമാണ്:

Arduino UNO (അല്ലെങ്കിൽ മറ്റേതെങ്കിലും Arduino അനുയോജ്യംപണം നൽകുക)
- ഗ്രാഫിക് സ്ക്രീൻWG12864B
- താപനില സെൻസർ ds18b20
- റെസിസ്റ്റർ 4.7 കോം 0.25 W
- റെസിസ്റ്റർ 100 ഓം 0.25 W
- 4 AA ബാറ്ററികൾക്കുള്ള ബാറ്ററി കമ്പാർട്ട്മെന്റ്
- പൊരുത്തപ്പെടുന്ന പെട്ടി
- നല്ല ഫയൽ
- നെയിൽ പോളിഷ് (കറുപ്പ് അല്ലെങ്കിൽ ശരീര നിറം)
- കുറച്ച് നേർത്ത പ്ലാസ്റ്റിക് അല്ലെങ്കിൽ കാർഡ്ബോർഡ്
- ഇലക്ട്രിക്കൽ ടേപ്പ്
- ബന്ധിപ്പിക്കുന്ന വയറുകൾ
- സർക്യൂട്ട് ബോർഡ്
- ബട്ടണുകൾ
- സോൾഡറിംഗ് ഇരുമ്പ്
- സോൾഡർ, റോസിൻ
- ഇരട്ട വശങ്ങളുള്ള ടേപ്പ്

ഗ്രാഫിക് സ്ക്രീൻ തയ്യാറാക്കുന്നു.
ഒറ്റനോട്ടത്തിൽ, സ്ക്രീനിനെ ബന്ധിപ്പിക്കുന്നത് നിരവധി പ്രശ്നങ്ങളും ബുദ്ധിമുട്ടുകളും സൃഷ്ടിക്കുന്നു. എന്നാൽ നിങ്ങൾ ആദ്യം അവയുടെ തരങ്ങൾ മനസ്സിലാക്കിയാൽ, അത് വളരെ എളുപ്പവും വ്യക്തവുമാകും. ks0107/ks0108 കൺട്രോളറിൽ നിരവധി തരം സ്‌ക്രീനുകൾ ഉണ്ട്. എല്ലാ സ്ക്രീനുകളും സാധാരണയായി 4 തരങ്ങളായി തിരിച്ചിരിക്കുന്നു:
ഓപ്ഷൻ എ: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC ഇലക്‌ട്രോണിക്‌സ് LCD-0022, WinStar WG12864B-TML-T
ഓപ്ഷൻ B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ ഡിസ്പ്ലേകൾ AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG18D4t61 864J4, QY-12864 F, TM12864L-2, 12864J-1
ഓപ്ഷൻ സി: Shenzhen Jinghua Displays Co Ltd. JM12864
ഓപ്‌ഷൻ D: Wintek-Cascades WD-G1906G, Wintek - GEN/WD-G1906G/KS0108B, Wintek/WD-G1906G/S6B0108A, TECDIS/Y19061/HD61202, Varitronix/MG26060

പട്ടിക പൂർണ്ണമല്ല, അവയിൽ ധാരാളം ഉണ്ട്. ഏറ്റവും സാധാരണവും, എന്റെ അഭിപ്രായത്തിൽ, സൗകര്യപ്രദവുമാണ് WG12864B3 V2.0. സീരിയൽ വഴിയോ അല്ലെങ്കിൽ Arduino ലേക്ക് ഡിസ്പ്ലേ ബന്ധിപ്പിക്കാൻ കഴിയും സമാന്തര തുറമുഖം. Arduino UNO ഉപയോഗിച്ച് ഉപയോഗിക്കുമ്പോൾ, വഴിയുള്ള കണക്ഷൻ തിരഞ്ഞെടുക്കുന്നതാണ് നല്ലത് സീരിയൽ പോർട്ട്- അപ്പോൾ ഒരു സമാന്തര പോർട്ട് വഴി ബന്ധിപ്പിക്കുമ്പോൾ കുറഞ്ഞത് 13 ലൈനുകൾക്ക് പകരം ഞങ്ങൾക്ക് 3 മൈക്രോകൺട്രോളർ ഔട്ട്പുട്ടുകൾ മാത്രമേ ആവശ്യമുള്ളൂ. എല്ലാം വളരെ ലളിതമായി ബന്ധിപ്പിക്കുന്നു. ഒരു ന്യൂനൻസ് കൂടിയുണ്ട്: ബിൽറ്റ്-ഇൻ പൊട്ടൻഷിയോമീറ്റർ (കോൺട്രാസ്റ്റ് ക്രമീകരിക്കുന്നതിന്) കൂടാതെ അത് കൂടാതെ നിങ്ങൾക്ക് രണ്ട് ഡിസ്പ്ലേ ഓപ്ഷനുകൾ വിൽപ്പനയിൽ കണ്ടെത്താൻ കഴിയും. ഞാൻ തിരഞ്ഞെടുത്തു, ബിൽറ്റ്-ഇൻ ഒന്ന് ഉപയോഗിച്ച് ഇത് ചെയ്യാൻ ഞാൻ നിങ്ങളെ ഉപദേശിക്കുന്നു.


ഇത് ഭാഗങ്ങളുടെ എണ്ണവും സോളിഡിംഗ് സമയവും കുറയ്ക്കുന്നു. ബാക്ക്‌ലൈറ്റിനായി 100 ഓം കറന്റ് ലിമിറ്റിംഗ് റെസിസ്റ്റർ ഇൻസ്റ്റാൾ ചെയ്യുന്നത് മൂല്യവത്താണ്. 5 വോൾട്ട് നേരിട്ട് ബന്ധിപ്പിക്കുന്നതിലൂടെ, ബാക്ക്ലൈറ്റ് കത്തിക്കാനുള്ള സാധ്യതയുണ്ട്.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - +5V
4 (RS) - 10
5 (R/W) - 11
6 (ഇ) - 13
15 (PSB) - GND
19 (BLA) - ഒരു റെസിസ്റ്ററിലൂടെ - +5V
20 (BLK) - GND

ഏറ്റവും സൗകര്യപ്രദമായ മാർഗം സ്ക്രീനിന് പിന്നിൽ എല്ലാം കൂട്ടിച്ചേർക്കുകയും അതിൽ നിന്ന് 5 വയറുകൾ പുറത്തെടുത്ത് Arduino UNO- ലേക്ക് ബന്ധിപ്പിക്കുകയും ചെയ്യുക എന്നതാണ്. അന്തിമഫലം ഇതുപോലെയായിരിക്കണം:


ഇപ്പോഴും തിരഞ്ഞെടുക്കുന്നവർക്ക് സമാന്തര കണക്ഷൻഞാൻ ഒരു കണക്ഷൻ പട്ടിക നൽകും.

കൂടാതെ ഓപ്ഷൻ ബിയുടെ സ്ക്രീനുകൾക്കായുള്ള ഡയഗ്രം:



ഒരു ആശയവിനിമയ ലൈനിലേക്ക് നിരവധി സെൻസറുകൾ ബന്ധിപ്പിക്കാൻ കഴിയും. ഒന്ന് മതി നമ്മുടെ വാച്ചുകൾക്ക്. ds18b20 ന്റെ "DQ" പിൻ മുതൽ Arduino UNO യുടെ "പിൻ 5" ലേക്ക് ഞങ്ങൾ വയർ ബന്ധിപ്പിക്കുന്നു.

ബട്ടണുകൾ ഉപയോഗിച്ച് ബോർഡ് തയ്യാറാക്കുന്നു.
വാച്ചിൽ സമയവും തീയതിയും സജ്ജമാക്കാൻ ഞങ്ങൾ മൂന്ന് ബട്ടണുകൾ ഉപയോഗിക്കും. സൗകര്യാർത്ഥം, ഞങ്ങൾ സർക്യൂട്ട് ബോർഡിലെ മൂന്ന് ബട്ടണുകൾ സോൾഡർ ചെയ്യുകയും വയറുകൾ നീക്കം ചെയ്യുകയും ചെയ്യുന്നു.


ഞങ്ങൾ ഇനിപ്പറയുന്ന രീതിയിൽ ബന്ധിപ്പിക്കുന്നു: മൂന്ന് ബട്ടണുകൾക്കും പൊതുവായുള്ള വയർ ഞങ്ങൾ Arduino യുടെ "GND" ലേക്ക് ബന്ധിപ്പിക്കുന്നു. സമയ ക്രമീകരണ മോഡിൽ പ്രവേശിക്കാനും സമയവും തീയതിയും അനുസരിച്ച് മാറാനും ഉപയോഗിക്കുന്ന ആദ്യ ബട്ടൺ, "പിൻ 2"-ലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു. രണ്ടാമത്തേത്, മൂല്യം വർദ്ധിപ്പിക്കുന്നതിനുള്ള ബട്ടൺ, "പിൻ 3" ലേക്ക് ആണ്, മൂന്നാമത്തേത്, മൂല്യം കുറയ്ക്കുന്നതിനുള്ള ബട്ടൺ "പിൻ 4" ആണ്.

അതെല്ലാം ഒന്നിച്ചു ചേർക്കുന്നു.
ഒഴിവാക്കാൻ ഷോർട്ട് സർക്യൂട്ട്, സ്ക്രീൻ ഇൻസുലേറ്റ് ചെയ്യണം. ഞങ്ങൾ അത് ഇലക്ട്രിക്കൽ ടേപ്പ് ഉപയോഗിച്ച് ഒരു സർക്കിളിൽ പൊതിയുന്നു, ഒപ്പം ഓൺ തിരികെഇൻസുലേറ്റിംഗ് മെറ്റീരിയലിന്റെ ഒരു സ്ട്രിപ്പ് ഞങ്ങൾ ഇരട്ട-വശങ്ങളുള്ള ടേപ്പിലേക്ക് അറ്റാച്ചുചെയ്യുന്നു, വലുപ്പത്തിൽ മുറിക്കുക. കട്ടിയുള്ള കാർഡ്ബോർഡ് അല്ലെങ്കിൽ നേർത്ത പ്ലാസ്റ്റിക് ചെയ്യും. പേപ്പറിനായി ഞാൻ ഒരു ടാബ്‌ലെറ്റിൽ നിന്ന് പ്ലാസ്റ്റിക് ഉപയോഗിച്ചു. ഫലം ഇനിപ്പറയുന്നതാണ്:


സ്ക്രീനിന് മുന്നിൽ, അരികിൽ, ഞങ്ങൾ ഇരട്ട-വശങ്ങളുള്ള നുരകളുടെ ടേപ്പ് പശ ചെയ്യുന്നു, വെയിലത്ത് കറുപ്പ്.


Arduino-ലേക്ക് സ്‌ക്രീൻ ബന്ധിപ്പിക്കുക:


പ്ലസ് നിന്ന് ബാറ്ററി കമ്പാർട്ട്മെന്റ് Arduino-യുടെ "VIN"-ലേക്ക് കണക്റ്റുചെയ്യുക, മൈനസ് "GND". ഞങ്ങൾ അത് Arduino യുടെ പിന്നിൽ സ്ഥാപിക്കുന്നു. കേസിൽ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുമുമ്പ്, താപനില സെൻസറും ബോർഡും ബട്ടണുകൾ ഉപയോഗിച്ച് ബന്ധിപ്പിക്കാൻ മറക്കരുത്.


സ്കെച്ച് തയ്യാറാക്കുകയും പൂരിപ്പിക്കുകയും ചെയ്യുന്നു.
താപനില സെൻസറിന് OneWire ലൈബ്രറി ആവശ്യമാണ്.

സ്ക്രീനിലേക്കുള്ള ഔട്ട്പുട്ട് U8glib ലൈബ്രറിയിലൂടെയാണ് നടത്തുന്നത്:

ഒരു സ്കെച്ച് എഡിറ്റ് ചെയ്യാനും പൂരിപ്പിക്കാനും, നിങ്ങൾ ഈ രണ്ട് ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്. ഇത് ചെയ്യാൻ രണ്ട് വഴികളുണ്ട്. ഈ ആർക്കൈവുകൾ അൺപാക്ക് ചെയ്ത് ഇൻസ്റ്റാളേഷൻ ഫോൾഡറിൽ സ്ഥിതിചെയ്യുന്ന "ലൈബ്രറികൾ" ഫോൾഡറിൽ പാക്ക് ചെയ്യാത്ത ഫയലുകൾ സ്ഥാപിക്കുക. Arduino IDE. അല്ലെങ്കിൽ പ്രോഗ്രാമിംഗ് പരിതസ്ഥിതിയിൽ നേരിട്ട് ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്യുക എന്നതാണ് രണ്ടാമത്തെ ഓപ്ഷൻ. ഡൗൺലോഡ് ചെയ്‌ത ആർക്കൈവുകൾ അൺപാക്ക് ചെയ്യാതെ, Arduino IDE-ൽ, സ്കെച്ച് - കണക്റ്റ് ലൈബ്രറി മെനു തിരഞ്ഞെടുക്കുക. ഡ്രോപ്പ്-ഡൗൺ ലിസ്റ്റിന്റെ ഏറ്റവും മുകളിൽ, "Add.Zip ലൈബ്രറി" തിരഞ്ഞെടുക്കുക. ദൃശ്യമാകുന്ന ഡയലോഗ് ബോക്സിൽ, നിങ്ങൾ ചേർക്കാൻ ആഗ്രഹിക്കുന്ന ലൈബ്രറി തിരഞ്ഞെടുക്കുക. സ്കെച്ച് മെനു വീണ്ടും തുറക്കുക - ലൈബ്രറി ബന്ധിപ്പിക്കുക. ഡ്രോപ്പ്-ഡൗൺ ലിസ്റ്റിന്റെ ഏറ്റവും താഴെ നിങ്ങൾ പുതിയ ലൈബ്രറി കാണും. ഇപ്പോൾ ലൈബ്രറി പ്രോഗ്രാമുകളിൽ ഉപയോഗിക്കാം. ഇതിനെല്ലാം ശേഷം Arduino IDE റീസ്റ്റാർട്ട് ചെയ്യാൻ മറക്കരുത്.

വൺ വയർ പ്രോട്ടോക്കോൾ ഉപയോഗിച്ചാണ് ടെമ്പറേച്ചർ സെൻസർ പ്രവർത്തിക്കുന്നത്, ഓരോ ഉപകരണത്തിനും ഒരു അദ്വിതീയ വിലാസമുണ്ട് - ഒരു 64-ബിറ്റ് കോഡ്. ഓരോ തവണയും ഈ കോഡ് തിരയുന്നത് പ്രായോഗികമല്ല. അതിനാൽ, നിങ്ങൾ ആദ്യം സെൻസർ Arduino-ലേക്ക് ബന്ധിപ്പിക്കണം, മെനുവിൽ കാണുന്ന സ്കെച്ച് അപ്‌ലോഡ് ചെയ്യുക ഫയൽ - ഉദാഹരണങ്ങൾ - ഡാളസ് താപനില - OneWireSearch. അടുത്തതായി, ടൂൾസ് - പോർട്ട് മോണിറ്റർ സമാരംഭിക്കുക. Arduino ഞങ്ങളുടെ സെൻസർ കണ്ടെത്തുകയും അതിന്റെ വിലാസവും നിലവിലെ താപനില റീഡിംഗുകളും എഴുതുകയും വേണം. ഞങ്ങളുടെ സെൻസറിന്റെ വിലാസം ഞങ്ങൾ പകർത്തുകയോ എഴുതുകയോ ചെയ്യുന്നു. സ്കെച്ച് Arduino_WG12864B_Term തുറക്കുക, ലൈനിനായി നോക്കുക:

ബൈറ്റ് addr=(0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97);//എന്റെ സെൻസറിന്റെ വിലാസം

അതിനിടയിൽ നിങ്ങളുടെ സെൻസറിന്റെ വിലാസം ഞങ്ങൾ എഴുതുന്നു ചുരുണ്ട ബ്രേസുകൾ, എന്റെ സെൻസറിന്റെ വിലാസം മാറ്റിസ്ഥാപിക്കുന്നു.

സംഭരിക്കുക:

//u8g.setPrintPos(44, 64); u8g.print(sec); // നീക്കത്തിന്റെ കൃത്യത നിയന്ത്രിക്കാൻ സെക്കൻഡുകൾ ഔട്ട്പുട്ട് ചെയ്യുക

"ഡാറ്റ" ലിഖിതത്തിനടുത്തുള്ള സെക്കൻഡുകൾ പ്രദർശിപ്പിക്കാൻ സഹായിക്കുന്നു. ഇതിന് ഇത് ആവശ്യമാണ് കൃത്യമായ ഇൻസ്റ്റലേഷൻസമയം കടന്നുപോകുന്നത്.
ക്ലോക്ക് വേഗതയോ പിന്നിലോ ആണെങ്കിൽ, നിങ്ങൾ വരിയിലെ മൂല്യം മാറ്റണം:

എങ്കിൽ (മൈക്രോ() - prevmicros >494000) ( // 500000 ആയിരുന്നു ശരിയാക്കാൻ മറ്റെന്തെങ്കിലും മാറ്റുക

ക്ലോക്ക് കൃത്യമായി പ്രവർത്തിക്കുന്ന സംഖ്യ ഞാൻ അനുഭവപരമായി നിർണ്ണയിച്ചു. നിങ്ങളുടെ ക്ലോക്ക് വേഗതയേറിയതാണെങ്കിൽ, നിങ്ങൾ ഈ സംഖ്യ വർദ്ധിപ്പിക്കണം; അത് പിന്നിലാണെങ്കിൽ, അത് കുറയ്ക്കുക. നീക്കത്തിന്റെ കൃത്യത നിർണ്ണയിക്കാൻ, നിങ്ങൾ സെക്കൻഡുകൾ പ്രദർശിപ്പിക്കേണ്ടതുണ്ട്. നമ്പറിന്റെ കൃത്യമായ കാലിബ്രേഷനുശേഷം, സെക്കൻഡുകൾ കമന്റ് ചെയ്യാനും അങ്ങനെ സ്ക്രീനിൽ നിന്ന് നീക്കം ചെയ്യാനും കഴിയും.

പല Arduino പ്രോജക്റ്റുകളിലും, ചില സംഭവങ്ങളുടെ സമയം നിരീക്ഷിക്കുകയും രേഖപ്പെടുത്തുകയും ചെയ്യേണ്ടത് ആവശ്യമാണ്. ഒരു അധിക ബാറ്ററി കൊണ്ട് സജ്ജീകരിച്ചിരിക്കുന്ന തത്സമയ ക്ലോക്ക് മൊഡ്യൂൾ, സംഭരിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു നിലവിലെ തീയതി, ഉപകരണത്തിൽ തന്നെ വൈദ്യുതിയുടെ ലഭ്യത പരിഗണിക്കാതെ തന്നെ. Arduino ബോർഡിനൊപ്പം ഉപയോഗിക്കാവുന്ന ഏറ്റവും സാധാരണമായ RTC മൊഡ്യൂളുകളായ DS1307, DS1302, DS3231 എന്നിവയെക്കുറിച്ച് ഈ ലേഖനത്തിൽ നമ്മൾ സംസാരിക്കും.

ക്ലോക്ക് മൊഡ്യൂൾ ആണ് ചെറിയ ഫീസ്, സാധാരണയായി DS1307, DS1302, DS3231 മൈക്രോ സർക്യൂട്ടുകളിൽ ഒന്ന് അടങ്ങിയിരിക്കുന്നു. കൂടാതെ, ബോർഡിൽ നിങ്ങൾക്ക് ബാറ്ററി ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുള്ള ഒരു സംവിധാനം പ്രായോഗികമായി കണ്ടെത്താനാകും. സമയം, തീയതി, ആഴ്ചയിലെ ദിവസം, മറ്റ് ക്രോണോമെട്രിക് പാരാമീറ്ററുകൾ എന്നിവ ട്രാക്കുചെയ്യുന്നതിന് അത്തരം ബോർഡുകൾ പലപ്പോഴും ഉപയോഗിക്കുന്നു. മൊഡ്യൂളുകൾ പ്രവർത്തിക്കുന്നത് സ്വയംഭരണ വൈദ്യുതി വിതരണം- ബാറ്ററികൾ, അക്യുമുലേറ്ററുകൾ, ആർഡ്വിനോയുടെ പവർ ഓഫാക്കിയാലും എണ്ണുന്നത് തുടരുക. DS1302, DS1307, DS3231 എന്നിവയാണ് ഏറ്റവും സാധാരണമായ വാച്ച് മോഡലുകൾ. അവ ആർ‌ടി‌സി (റിയൽ ടൈം ക്ലോക്ക്) മൊഡ്യൂളിനെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്.

സൗകര്യപ്രദമായ യൂണിറ്റുകളിൽ ക്ലോക്ക് കണക്കാക്കുന്നു ഒരു സാധാരണക്കാരന്- മിനിറ്റുകൾ, മണിക്കൂറുകൾ, ആഴ്ചയിലെ ദിവസങ്ങൾ എന്നിവയും മറ്റുള്ളവയും, "ടിക്കുകൾ" വായിക്കുന്ന പരമ്പരാഗത കൗണ്ടറുകൾക്കും ക്ലോക്ക് ജനറേറ്ററുകൾക്കും വിപരീതമായി. Arduino ഉണ്ട് പ്രത്യേക പ്രവർത്തനം millis(), ഇതിന് വ്യത്യസ്ത സമയ ഇടവേളകൾ വായിക്കാനും കഴിയും. എന്നാൽ ഈ ഫംഗ്‌ഷന്റെ പ്രധാന പോരായ്മ ടൈമർ ഓണായിരിക്കുമ്പോൾ അത് പൂജ്യത്തിലേക്ക് പുനഃസജ്ജമാക്കുന്നു എന്നതാണ്. അതിന്റെ സഹായത്തോടെ നിങ്ങൾക്ക് സമയം വായിക്കാൻ മാത്രമേ കഴിയൂ; ആഴ്ചയിലെ തീയതിയോ ദിവസമോ സജ്ജീകരിക്കുന്നത് അസാധ്യമാണ്. ഈ പ്രശ്നം പരിഹരിക്കാൻ തത്സമയ ക്ലോക്ക് മൊഡ്യൂളുകൾ ഉപയോഗിക്കുന്നു.

ഇലക്ട്രോണിക് സർക്യൂട്ടിൽ ഒരു മൈക്രോ സർക്യൂട്ട്, ഒരു പവർ സപ്ലൈ, ഒരു ക്വാർട്സ് റെസൊണേറ്റർ, റെസിസ്റ്ററുകൾ എന്നിവ ഉൾപ്പെടുന്നു. ക്വാർട്സ് റെസൊണേറ്റർ 32768 ഹെർട്സ് ആവൃത്തിയിൽ പ്രവർത്തിക്കുന്നു, ഇത് ഒരു പരമ്പരാഗത ബൈനറി കൗണ്ടറിന് സൗകര്യപ്രദമാണ്. DS3231 സർക്യൂട്ടിൽ ബിൽറ്റ്-ഇൻ ക്വാർട്സും തെർമൽ സ്റ്റബിലൈസേഷനും ഉണ്ട്, ഇത് വളരെ കൃത്യമായ മൂല്യങ്ങൾ അനുവദിക്കുന്നു.

ജനപ്രിയ RTC മൊഡ്യൂളുകളുടെ താരതമ്യം DS1302, DS1307, DS3231

ഈ പട്ടികയിൽ ഞങ്ങൾ ഏറ്റവും ജനപ്രിയമായ മൊഡ്യൂളുകളുടെയും അവയുടെ പ്രധാന സവിശേഷതകളുടെയും ഒരു ലിസ്റ്റ് നൽകിയിട്ടുണ്ട്.

പേര് ആവൃത്തി കൃത്യത പിന്തുണയ്ക്കുന്ന പ്രോട്ടോക്കോളുകൾ
DS1307 1 Hz, 4.096 kHz, 8.192 kHz, 32.768 kHz ക്വാർട്സിനെ ആശ്രയിച്ചിരിക്കുന്നു - സാധാരണയായി മൂല്യം പ്രതിദിനം 2.5 സെക്കൻഡിൽ എത്തുന്നു, പ്രതിദിനം 1 സെക്കൻഡിൽ കൂടുതൽ കൃത്യത കൈവരിക്കുന്നത് അസാധ്യമാണ്. കൂടാതെ, കൃത്യത താപനിലയെ ആശ്രയിച്ചിരിക്കുന്നു. I2C
DS1302 32.768 kHz ഒരു ദിവസം 5 സെക്കൻഡ് I2C, SPI
DS3231 രണ്ട് ഔട്ട്പുട്ടുകൾ - ആദ്യത്തേത് 32.768 kHz, രണ്ടാമത്തെ പ്രോഗ്രാം 1 Hz മുതൽ 8.192 kHz വരെ 0C മുതൽ 40C വരെയുള്ള താപനിലയിൽ ±2 ppm.

-40C മുതൽ 85C വരെയുള്ള താപനിലയിൽ ±3.5 ppm.

താപനില അളക്കൽ കൃത്യത - ± 3С

I2C

മൊഡ്യൂൾ DS1307

സമയക്രമീകരണത്തിനായി ഉപയോഗിക്കുന്ന ഒരു മൊഡ്യൂളാണ് DS1307. DS1307ZN ചിപ്പിന്റെ അടിസ്ഥാനത്തിലാണ് ഇത് കൂട്ടിച്ചേർക്കുന്നത്, വൈദ്യുതി വരുന്നത് ലിഥിയം ബാറ്ററിനടപ്പിലാക്കുന്നതിനായി ബാറ്ററി ലൈഫ്ഒരു നീണ്ട കാലയളവിൽ. ബോർഡിലെ ബാറ്ററി ഘടിപ്പിച്ചിരിക്കുന്നു പിൻ വശം. മൊഡ്യൂളിന് AT24C32 ചിപ്പ് ഉണ്ട് - ഇതൊരു 32 KB അസ്ഥിരമല്ലാത്ത EEPROM മെമ്മറിയാണ്. രണ്ട് മൈക്രോ സർക്യൂട്ടുകളും ഒരു I2C ബസ് വഴി ബന്ധിപ്പിച്ചിരിക്കുന്നു. DS1307 ഉണ്ട് കുറഞ്ഞ വൈദ്യുതി ഉപഭോഗംകൂടാതെ 2100 വർഷം വരെയുള്ള ഒരു ക്ലോക്കും കലണ്ടറും അടങ്ങിയിരിക്കുന്നു.

മൊഡ്യൂളിന് ഇനിപ്പറയുന്ന പാരാമീറ്ററുകൾ ഉണ്ട്:

  • വൈദ്യുതി വിതരണം - 5V;
  • പ്രവർത്തന താപനില പരിധി -40C മുതൽ 85C വരെ;
  • മെമ്മറിയുടെ 56 ബൈറ്റുകൾ;
  • ലിഥിയം ബാറ്ററി LIR2032;
  • 12, 24 മണിക്കൂർ മോഡുകൾ നടപ്പിലാക്കുന്നു;
  • I2C ഇന്റർഫേസ് പിന്തുണ.

വളരെ അപൂർവ്വമായി, ഒരാഴ്ചയോ അതിൽ കൂടുതലോ ഇടവേളകളിൽ ഡാറ്റ വായിക്കുന്ന സന്ദർഭങ്ങളിൽ മൊഡ്യൂൾ ന്യായീകരിക്കപ്പെടുന്നു. എപ്പോൾ മുതൽ ഭക്ഷണം ലാഭിക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു തടസ്സമില്ലാത്ത ഉപയോഗംബാറ്ററി ഉപയോഗിച്ചാലും കൂടുതൽ വോൾട്ടേജ് പാഴാക്കേണ്ടി വരും. മെമ്മറിയുടെ സാന്നിധ്യം നിങ്ങളെ രജിസ്റ്റർ ചെയ്യാൻ അനുവദിക്കുന്നു വിവിധ പരാമീറ്ററുകൾ(ഉദാഹരണത്തിന്, താപനില അളക്കൽ) കൂടാതെ മൊഡ്യൂളിൽ നിന്ന് ലഭിച്ച വിവരങ്ങൾ വായിക്കുക.

എസ്‌സി‌എൽ, എസ്‌ഡി‌എ പിന്നുകളിൽ നിന്നുള്ള ഐ 2 സി ഇന്റർഫേസ് ഉപയോഗിച്ചാണ് മറ്റ് ഉപകരണങ്ങളുമായുള്ള ആശയവിനിമയവും അവയുമായുള്ള വിവര കൈമാറ്റവും നടത്തുന്നത്. സർക്യൂട്ടിൽ നിങ്ങളെ നൽകാൻ അനുവദിക്കുന്ന റെസിസ്റ്ററുകൾ അടങ്ങിയിരിക്കുന്നു ആവശ്യമായ ലെവൽസിഗ്നൽ. DS18B20 ടെമ്പറേച്ചർ സെൻസർ ഘടിപ്പിക്കുന്നതിനുള്ള പ്രത്യേക സ്ഥലവും ബോർഡിലുണ്ട്, കോൺടാക്റ്റുകൾ 2 ഗ്രൂപ്പുകളായി വിതരണം ചെയ്യുന്നു, പിച്ച് 2.54 എംഎം. കോൺടാക്റ്റുകളുടെ ആദ്യ ഗ്രൂപ്പിൽ ഇനിപ്പറയുന്ന പിൻസ് അടങ്ങിയിരിക്കുന്നു:

  • DS - സെൻസറിനുള്ള ഔട്ട്പുട്ട് DS18B20;
  • SCL - ക്ലോക്ക് ലൈൻ;
  • SDA - ഡാറ്റ ലൈൻ;
  • വിസിസി - 5 വി;

കോൺടാക്റ്റുകളുടെ രണ്ടാമത്തെ ഗ്രൂപ്പിൽ ഇവ ഉൾപ്പെടുന്നു:

  • SQ - 1 MHz;
  • BAT - ലിഥിയം ബാറ്ററിക്കുള്ള ഇൻപുട്ട്.

Arduino ബോർഡിലേക്ക് കണക്റ്റുചെയ്യുന്നതിന്, നിങ്ങൾക്ക് ബോർഡ് തന്നെ ആവശ്യമാണ് (ഈ സാഹചര്യത്തിൽ ഞങ്ങൾ Arduino Uno പരിഗണിക്കുന്നു), ഒരു RTC DS1307 തത്സമയ ക്ലോക്ക് മൊഡ്യൂളും വയറുകളും ഒരു USB കേബിളും.

കൺട്രോളർ Arduino-ലേക്ക് ബന്ധിപ്പിക്കുന്നതിന്, 4 പിൻസ് ഉപയോഗിക്കുന്നു - VCC, ഗ്രൗണ്ട്, SCL, SDA.. ക്ലോക്കിൽ നിന്നുള്ള VCC, Arduino-യിലെ 5V-യുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു, ക്ലോക്കിൽ നിന്നുള്ള ഗ്രൗണ്ട് Arduino-യിൽ നിന്ന് ഭൂമിയുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു, SDA - A4, SCL - A5.

ക്ലോക്ക് മൊഡ്യൂളിനൊപ്പം പ്രവർത്തിക്കാൻ ആരംഭിക്കുന്നതിന്, നിങ്ങൾ DS1307RTC, TimeLib, Wire ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്. നിങ്ങൾക്ക് ജോലിക്ക് RTCLib ഉപയോഗിക്കാം.

RTC മൊഡ്യൂൾ പരിശോധിക്കുന്നു

നിങ്ങൾ ആദ്യ കോഡ് പ്രവർത്തിപ്പിക്കുമ്പോൾ, പ്രോഗ്രാം മൊഡ്യൂളിൽ നിന്നുള്ള ഡാറ്റ സെക്കൻഡിൽ ഒരിക്കൽ വായിക്കും. ആദ്യം, ആർഡ്വിനോ ബോർഡ് കമ്പ്യൂട്ടറുമായി ബന്ധിപ്പിച്ചിട്ടില്ലാത്ത സമയത്ത് നിങ്ങൾ മൊഡ്യൂളിൽ നിന്ന് ബാറ്ററി നീക്കം ചെയ്യുകയും മറ്റൊന്ന് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുകയും ചെയ്താൽ പ്രോഗ്രാം എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് നിങ്ങൾക്ക് കാണാൻ കഴിയും. നിങ്ങൾ കുറച്ച് നിമിഷങ്ങൾ കാത്തിരുന്ന് ബാറ്ററി നീക്കം ചെയ്യേണ്ടതുണ്ട്, ഒടുവിൽ വാച്ച് റീബൂട്ട് ചെയ്യും. അതിനുശേഷം നിങ്ങൾ Examples→RTClib→ds1307 മെനുവിൽ നിന്ന് ഒരു ഉദാഹരണം തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്. ട്രാൻസ്മിഷൻ വേഗത 57600 ബിപിഎസ് ആയി ക്രമീകരിക്കേണ്ടത് പ്രധാനമാണ്.

നിങ്ങൾ സീരിയൽ മോണിറ്റർ വിൻഡോ തുറക്കുമ്പോൾ, ഇനിപ്പറയുന്ന വരികൾ ദൃശ്യമാകും:

സമയം 0:0:0 കാണിക്കും. വാച്ചിന്റെ ശക്തി നഷ്ടപ്പെടുകയും സമയം എണ്ണുന്നത് നിർത്തുകയും ചെയ്യുന്നതാണ് ഇതിന് കാരണം. ഇക്കാരണത്താൽ, മൊഡ്യൂൾ പ്രവർത്തിക്കുമ്പോൾ ബാറ്ററി നീക്കം ചെയ്യാൻ പാടില്ല.

മൊഡ്യൂളിൽ സമയം സജ്ജീകരിക്കുന്നതിന്, നിങ്ങൾ സ്കെച്ചിലെ ലൈൻ കണ്ടെത്തേണ്ടതുണ്ട്

RTC.adjust(DateTime(__DATE__, __TIME__));

തത്സമയ ക്ലോക്ക് മൊഡ്യൂൾ ഫ്ലാഷ് ചെയ്യാൻ ഉപയോഗിക്കുന്ന കമ്പ്യൂട്ടറിൽ നിന്നുള്ള ഡാറ്റ ഈ ലൈനിൽ അടങ്ങിയിരിക്കും. വേണ്ടി ശരിയായ പ്രവർത്തനംകമ്പ്യൂട്ടറിലെ തീയതിയും സമയവും ശരിയാണോ എന്ന് നിങ്ങൾ ആദ്യം പരിശോധിക്കണം, അതിനുശേഷം മാത്രമേ ക്ലോക്ക് മൊഡ്യൂൾ മിന്നാൻ തുടങ്ങൂ. സജ്ജീകരണത്തിന് ശേഷം, മോണിറ്റർ ഇനിപ്പറയുന്ന ഡാറ്റ പ്രദർശിപ്പിക്കും:

സജ്ജീകരണം ശരിയായി ചെയ്തു, കൂടാതെ തത്സമയ ക്ലോക്ക് വീണ്ടും ക്രമീകരിക്കേണ്ട ആവശ്യമില്ല.

സമയ വായന. മൊഡ്യൂൾ കോൺഫിഗർ ചെയ്‌തുകഴിഞ്ഞാൽ, സമയ അഭ്യർത്ഥനകൾ അയയ്‌ക്കാൻ കഴിയും. ഇത് ഇപ്പോൾ () ഫംഗ്‌ഷൻ ഉപയോഗിച്ചാണ് ചെയ്യുന്നത്, ഇത് സമയവും തീയതിയും വിവരങ്ങളടങ്ങിയ ഒരു DateTime ഒബ്‌ജക്‌റ്റ് നൽകുന്നു. സമയം വായിക്കാൻ ഉപയോഗിക്കുന്ന നിരവധി ലൈബ്രറികളുണ്ട്. ഉദാഹരണത്തിന്, RTC.year(), RTC.hour() - അവർ വർഷത്തെയും മണിക്കൂറിനെയും കുറിച്ചുള്ള വിവരങ്ങൾ പ്രത്യേകം നേടുന്നു. അവരോടൊപ്പം പ്രവർത്തിക്കുമ്പോൾ, ഒരു പ്രശ്നം ഉണ്ടാകാം: ഉദാഹരണത്തിന്, സമയം പ്രദർശിപ്പിക്കുന്നതിനുള്ള ഒരു അഭ്യർത്ഥന 1:19:59-ന് നടത്തും. സമയം 1:20:00 കാണിക്കുന്നതിന് മുമ്പ്, ക്ലോക്ക് സമയം 1:19:00 പ്രദർശിപ്പിക്കും, അതായത്, സാരാംശത്തിൽ, ഒരു മിനിറ്റ് നഷ്ടപ്പെടും. അതിനാൽ, വായന അപൂർവ്വമായി സംഭവിക്കുന്ന സന്ദർഭങ്ങളിൽ ഈ ലൈബ്രറികൾ ഉപയോഗിക്കുന്നത് നല്ലതാണ് - കുറച്ച് ദിവസത്തിലൊരിക്കൽ. സമയം വിളിക്കുന്നതിന് മറ്റ് ഫംഗ്ഷനുകൾ ഉണ്ട്, എന്നാൽ നിങ്ങൾക്ക് പിശകുകൾ കുറയ്ക്കുകയോ ഒഴിവാക്കുകയോ ചെയ്യണമെങ്കിൽ, ഇപ്പോൾ () ഉപയോഗിക്കുകയും അതിൽ നിന്ന് ആവശ്യമായ വായനകൾ എക്‌സ്‌ട്രാക്‌റ്റുചെയ്യുകയും ചെയ്യുന്നതാണ് നല്ലത്.

i2C ക്ലോക്ക് മൊഡ്യൂളും ഡിസ്പ്ലേയും ഉള്ള ഉദാഹരണ പ്രോജക്റ്റ്

പദ്ധതി ആണ് പതിവ് വാച്ച്, സൂചകം പ്രദർശിപ്പിക്കും കൃത്യമായ സമയം, കൂടാതെ അക്കങ്ങൾക്കിടയിലുള്ള കോളൻ ഒരു സെക്കൻഡിന്റെ ഇടവേളകളിൽ മിന്നിമറയും. പദ്ധതി നടപ്പിലാക്കാൻ നിങ്ങൾക്ക് ഒരു Arduino Uno ബോർഡ് ആവശ്യമാണ്, ഡിജിറ്റൽ സൂചകം, ഒരു തത്സമയ ക്ലോക്ക് (ഈ സാഹചര്യത്തിൽ, മുകളിൽ വിവരിച്ച ds1307 മൊഡ്യൂൾ), കണക്ഷനുള്ള ഒരു ഷീൽഡ് (ഈ സാഹചര്യത്തിൽ, ട്രോയ്ക ഷീൽഡ് ഉപയോഗിക്കുന്നു), ക്ലോക്കിനും വയറുകൾക്കുമുള്ള ബാറ്ററി.

TM1637 ചിപ്പിൽ ലളിതമായ നാലക്ക സൂചകമാണ് പദ്ധതി ഉപയോഗിക്കുന്നത്. ഉപകരണത്തിന് രണ്ട് വയർ ഇന്റർഫേസ് ഉണ്ട് കൂടാതെ 8 ലെവൽ മോണിറ്റർ തെളിച്ചവും നൽകുന്നു. മണിക്കൂർ: മിനിറ്റ് ഫോർമാറ്റിൽ സമയം പ്രദർശിപ്പിക്കാൻ മാത്രം ഉപയോഗിക്കുന്നു. സൂചകം ഉപയോഗിക്കാൻ എളുപ്പവും കണക്റ്റുചെയ്യാൻ എളുപ്പവുമാണ്. മിനിറ്റോ മണിക്കൂറോ ഡാറ്റ പരിശോധന ആവശ്യമില്ലാത്ത പ്രോജക്റ്റുകൾക്കായി ഉപയോഗിക്കുന്നത് പ്രയോജനകരമാണ്. കൂടുതൽ ലഭിക്കാൻ പൂർണ്ണമായ വിവരങ്ങൾസമയവും തീയതിയും സൂചിപ്പിക്കാൻ LCD മോണിറ്ററുകൾ ഉപയോഗിക്കുന്നു.

ക്ലോക്ക് മൊഡ്യൂൾ SCL/SDA പിൻസുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു, അവ I2C ബസിന്റേതാണ്. നിങ്ങൾ നിലവും വൈദ്യുതിയും ബന്ധിപ്പിക്കേണ്ടതുണ്ട്. മുകളിൽ വിവരിച്ച അതേ രീതിയിൽ ഇത് Arduino- യുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു: SDA - A4, SCL - A5, മൊഡ്യൂളിൽ നിന്ന് ഗ്രൗണ്ട് വരെ Arduino, VCC -5V.

ഇൻഡിക്കേറ്റർ ലളിതമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു - അതിന്റെ CLK, DIO പിൻസ് ബോർഡിലെ ഏതെങ്കിലും ഡിജിറ്റൽ പിന്നുകളിലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു.

സ്കെച്ച്. കോഡ് എഴുതാൻ, സെറ്റപ്പ് ഫംഗ്ഷൻ ഉപയോഗിക്കുക, ഇത് ക്ലോക്കും ഇൻഡിക്കേറ്ററും സമാരംഭിക്കാനും കംപൈലേഷൻ സമയം രേഖപ്പെടുത്താനും നിങ്ങളെ അനുവദിക്കുന്നു. സ്ക്രീനിലേക്ക് സമയം പ്രിന്റ് ചെയ്യുന്നത് ലൂപ്പ് ഉപയോഗിച്ച് ചെയ്യപ്പെടും.

#ഉൾപ്പെടുന്നു #"TM1637.h" ഉൾപ്പെടുത്തുക #"DS1307.h" ഉൾപ്പെടുത്തുക //എല്ലാം ഉൾപ്പെടുത്തേണ്ടതുണ്ട് ആവശ്യമായ ലൈബ്രറികൾക്ലോക്കും ഡിസ്പ്ലേയും ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നതിന്. char compileTime = __TIME__; // സമാഹാര സമയം. # DISPLAY_CLK_PIN 10 നിർവചിക്കുക # DISPLAY_DIO_PIN 11 //സ്ക്രീൻ ബന്ധിപ്പിച്ചിരിക്കുന്ന Arduino ഔട്ട്പുട്ടുകളിൽ നിന്നുള്ള നമ്പറുകൾ നിർവചിക്കുക; void setup() ( display.set(); display.init(); //സ്ക്രീൻ കണക്റ്റ് ചെയ്ത് കോൺഫിഗർ ചെയ്യുക. clock.begin(); //ക്ലോക്ക് ഓണാക്കുക. byte hour = getInt(compileTime, 0); byte മിനിറ്റ് = getInt (compileTime, 2); ബൈറ്റ് സെക്കന്റ് = getInt (compileTime, 4); //സമയം ലഭിക്കുന്നു. clock.fillByHMS(മണിക്കൂർ, മിനിറ്റ്, സെക്കന്റ്); //ടൈം മൊഡ്യൂളിലേക്ക് എഴുതാൻ തയ്യാറെടുക്കുന്നു. clock.setTime(); //രേഖപ്പെടുത്തൽ പുരോഗമിക്കുന്ന വിവരം ലഭിച്ചിട്ടുണ്ട് ആന്തരിക മെമ്മറി, സമയം വായനയുടെ തുടക്കം. ) void loop() ( int8_t timeDisp; //ഓരോ അക്കങ്ങളിലും പ്രദർശിപ്പിക്കുക. clock.getTime(); //സമയം അറിയാനുള്ള അന്വേഷണം. timeDisp = clock.hour / 10; timeDisp = clock.hour % 10; timeDisp = ക്ലോക്ക് .മിനിറ്റ് / 10; timeDisp = clock.minute% 10; // വിവിധ പ്രവർത്തനങ്ങൾപതിനായിരക്കണക്കിന്, മണിക്കൂറുകളുടെ യൂണിറ്റുകൾ, മിനിറ്റുകൾ തുടങ്ങിയവ. display.display(timeDisp); //ഇൻഡിക്കേറ്റർ ഡിസ്പ്ലേയിൽ സമയം പ്രദർശിപ്പിക്കുന്നു. പോയിന്റ്(ക്ലോക്ക്.സെക്കൻഡ് % 2 ? POINT_ON: POINT_OFF);//ഒരു സെക്കന്റിന് ശേഷം കോളൻ ഓണും ഓഫും ചെയ്യുന്നു. ) char getInt(const char* string, int startIndex) ( റിട്ടേൺ int(string - "0") * 10 + int(string) - "0"; //രണ്ടക്ക പൂർണ്ണസംഖ്യയിൽ സമയം ശരിയായി എഴുതാനുള്ള പ്രവർത്തനങ്ങൾ. അല്ലെങ്കിൽ, സ്ക്രീനിൽ രണ്ട് പ്രതീകങ്ങൾ പ്രദർശിപ്പിക്കും.)

ഇതിനുശേഷം, സ്കെച്ച് ലോഡ് ചെയ്യേണ്ടതുണ്ട്, സമയം മോണിറ്ററിൽ കാണിക്കും.

പ്രോഗ്രാം ചെറുതായി നവീകരിക്കാം. പവർ ഓഫാക്കുമ്പോൾ, മുകളിൽ എഴുതിയിരിക്കുന്ന സ്കെച്ച്, അത് ഓണാക്കിയ ശേഷം സമാഹരിക്കുന്ന സമയത്ത് സജ്ജമാക്കിയ സമയം കാണിക്കാൻ ഡിസ്പ്ലേ കാരണമാകും. സെറ്റപ്പ് ഫംഗ്‌ഷനിൽ, ഓരോ തവണയും 00:00:00 മുതൽ സമാഹരണത്തിന്റെ ആരംഭം വരെയുള്ള സമയം കണക്കാക്കും. ഈ ഹാഷിനെ EEPROM-ൽ സംഭരിച്ചിരിക്കുന്നതുമായി താരതമ്യപ്പെടുത്തും, അത് പവർ നീക്കം ചെയ്യുമ്പോൾ നിലനിർത്തും.

അസ്ഥിരമല്ലാത്ത മെമ്മറിയിലേക്കോ അതിൽ നിന്നോ സമയം എഴുതാനും വായിക്കാനും, നിങ്ങൾ EEPROMWriteInt, EEPROMReadInt ഫംഗ്‌ഷനുകൾ ചേർക്കേണ്ടതുണ്ട്. EEPROM-ൽ രേഖപ്പെടുത്തിയിരിക്കുന്ന ഹാഷുമായി ഹാഷ് പൊരുത്തപ്പെടുന്നുണ്ടോ/പൊരുത്തപ്പെടുന്നില്ലേ എന്ന് പരിശോധിക്കാൻ അവ ആവശ്യമാണ്.

പദ്ധതി മെച്ചപ്പെടുത്താൻ കഴിയും. നിങ്ങൾ ഒരു LCD മോണിറ്റർ ഉപയോഗിക്കുകയാണെങ്കിൽ, സ്ക്രീനിൽ തീയതിയും സമയവും പ്രദർശിപ്പിക്കുന്ന ഒരു പ്രോജക്റ്റ് നിങ്ങൾക്ക് നിർമ്മിക്കാൻ കഴിയും. എല്ലാ ഘടകങ്ങളുടെയും കണക്ഷൻ ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നു.

തൽഫലമായി, നിങ്ങൾ കോഡിൽ ഒരു പുതിയ ലൈബ്രറി വ്യക്തമാക്കേണ്ടതുണ്ട് (ലിക്വിഡ് ക്രിസ്റ്റൽ സ്ക്രീനുകൾക്ക് ഇത് ലിക്വിഡ് ക്രിസ്റ്റൽ ആണ്), കൂടാതെ ഇത് ചേർക്കുക ലൂപ്പ് ഫംഗ്ഷൻ() തീയതി ലഭിക്കുന്നതിനുള്ള സ്ട്രിംഗുകൾ.

പ്രവർത്തന അൽഗോരിതം ഇപ്രകാരമാണ്:

  • എല്ലാ ഘടകങ്ങളും ബന്ധിപ്പിക്കുന്നു;
  • പരിശോധിക്കുക - മോണിറ്റർ സ്ക്രീനിലെ സമയവും തീയതിയും ഓരോ സെക്കൻഡിലും മാറണം. സ്ക്രീനിൽ പറഞ്ഞാൽ തെറ്റായ സമയം, നിങ്ങൾ സ്കെച്ചിലേക്ക് RTC.write (tmElements_t tm) ഫംഗ്‌ഷൻ ചേർക്കേണ്ടതുണ്ട്. തെറ്റ് കൊണ്ട് കുഴപ്പം നിർദ്ദിഷ്ട സമയംക്ലോക്ക് മൊഡ്യൂൾ ഓഫ് ചെയ്യുമ്പോൾ തീയതിയും സമയവും 00:00:00 01/01/2000 എന്നതിലേക്ക് പുനഃസജ്ജമാക്കുന്നു എന്നതാണ് ഇതിന് കാരണം.
  • കമ്പ്യൂട്ടറിൽ നിന്ന് തീയതിയും സമയവും ലഭിക്കാൻ റൈറ്റ് ഫംഗ്ഷൻ നിങ്ങളെ അനുവദിക്കുന്നു, അതിനുശേഷം ശരിയായ പാരാമീറ്ററുകൾ സ്ക്രീനിൽ സൂചിപ്പിക്കും.

ഉപസംഹാരം

പല പദ്ധതികളിലും ക്ലോക്ക് മൊഡ്യൂളുകൾ ഉപയോഗിക്കുന്നു. ഒരു നിശ്ചിത ഷെഡ്യൂൾ അനുസരിച്ച് പ്രവർത്തിക്കുന്ന ടൈമറുകളും നിയന്ത്രണ ഉപകരണങ്ങളും സൃഷ്ടിക്കുമ്പോൾ, ഡാറ്റ റെക്കോർഡിംഗ് സിസ്റ്റങ്ങൾക്ക് അവ ആവശ്യമാണ് ഗാർഹിക വീട്ടുപകരണങ്ങൾ. വ്യാപകമായി ലഭ്യവും വിലകുറഞ്ഞതുമായ മൊഡ്യൂളുകൾ ഉപയോഗിച്ച്, നിങ്ങൾക്ക് ഒരു അലാറം ക്ലോക്ക് അല്ലെങ്കിൽ സെൻസർ ഡാറ്റ ലോഗർ, ഒരു SD കാർഡിലേക്ക് വിവരങ്ങൾ റെക്കോർഡുചെയ്യൽ അല്ലെങ്കിൽ ഒരു ഡിസ്പ്ലേ സ്ക്രീനിൽ സമയം കാണിക്കൽ തുടങ്ങിയ പ്രോജക്റ്റുകൾ സൃഷ്ടിക്കാൻ കഴിയും. ഈ ലേഖനത്തിൽ, ഏറ്റവും ജനപ്രിയമായ മൊഡ്യൂളുകൾക്കായുള്ള സാധാരണ ഉപയോഗ സാഹചര്യങ്ങളും കണക്ഷൻ ഓപ്ഷനുകളും ഞങ്ങൾ പരിശോധിച്ചു.