åã€ã¿ãªã¢ãšç±åž¯éã®å
±éç¹ã¯äœã§ããïŒ ãããã誰ãäœãç¥ã£ãŠããŸããïŒïŒ -èªè
ã¯èšãã§ãããã ãããŠåœŒã¯æ£ããã§ãããã ãããã£ãŠãæ確ã«ããŸããArduinoã«ã€ããŠãããæ£ç¢ºã«ã¯æ°Žæ§œã®ã¡ã³ããã³ã¹ã®èªååã«ã€ããŠã話ããŸãã
ããã¯ãã¹ãŠã容赊ãªãè¿ã¥ãäŒæããå§ãŸããŸããã äŒæäžã¯ãååãšããŠç¶æ³ãå€ãããã§ãã ããããæ°Žæ通ã®éã¯ãããç解ããŠããªããããããŸããã ããã ãã§ãªãã圌ãã¯èš±ããªããããããŸããã ãããŠãæ°ãããã£ã«ã¿ãŒãèªåãã£ãŒããŒã家é»è£œåçšã®ã¿ã€ããŒã泚æããŸããã ããããã¿ã€ããŒã¯å©çšã§ããŸããã§ããã ãããã£ãŠãç§ã¯ã»ãšãã©å¯äžã®åºèã®å ŽæãããŸããããšã決å®ããŸããïŒãããŠãããã¯éœåžã§åäžé·è
ãšèŠãªãããŸãïŒïŒ154 UAHã§Arduino Unoã«åºäŒããŸããã ïŒã20ãã«ïŒã ããã€ã¹ã«ã€ããŠäœåºŠãèªã¿ãŸãããã圌ããèšãããã«ãç§ã¯ãããæã«æã£ãŠããŸããã§ããã è²·ã£ãã ãããŠãã®ç¬éãããè©Šè¡é¯èª€ãšåå©ã®ç©èªãå§ãŸããŸãã
Arduinoã«åºäŒã£ãŠããªã人ã®ããã«-ç§ã¯èª¬æããŸããããã¯ããŒããŠã§ã¢ããã³ãœãããŠã§ã¢ãã©ãããã©ãŒã ã§ãã ããŒããŠã§ã¢ã¯Atmel ATmegaãã€ã¯ãã³ã³ãããŒã©ãŒã«åºã¥ããŠãããå€ãã®I / OããŒããåããŠããŸãã ãœãããŠã§ã¢éšåã¯ãéçºç°å¢ãšäžé£ã®ã©ã€ãã©ãªã§ãã ãã¡ãããéã«ã¯ãããããéããããïŒå®éãäŸ¡æ Œã¯ãã€ã¿ãªã¢ã®ãªãªãžãã«ã§ãæé ãªäŸ¡æ Œã§ãïŒããœãããŠã§ã¢ã¯ç¡æã§ãã å
¬åŒãµã€ãããããŠã³ããŒãããŠãã ããã ãœãããŠã§ã¢ã䜿çšããŠãI / OããŒãã管çã§ããŸãã PWMãåããããŒãããããŸãã
å€ãã®ã©ã€ãã©ãªããããããArduinoã§ã®äœæ¥ã¯éåžžã«ç°¡åã§ãã ããšãã°ã枩床ã»ã³ãµãŒãããžã¿ã«ããã³ã°ã©ãã£ãã¯ïŒã¯ãïŒïŒãã£ã¹ãã¬ã€ãããŸããŸãªãããã³ã«ãªã©ãæäœããããã®ã©ã€ãã©ãªããããŸãã äžè¬çãªã±ãŒã¹ã§ã¯ãå¶åŸ¡ãããïŒãŸãã¯ããŒã¿ãåä¿¡ããå¿
èŠãããïŒé»ååè·¯ã1ã€ãŸãã¯è€æ°ã®ArduinoããŒãã«æ¥ç¶ããé©åãªã©ã€ãã©ãªïŒæšæºããã±ãŒãžã«ãªãå ŽåïŒãããŠã³ããŒãããArduinoèšèªïŒWiringèšèªã«åºã¥ããŠïŒã䜿çšããŠããã°ã©ã ãäœæããå¿
èŠããããŸãArduinoéçºç°å¢ïŒåŠçç°å¢ã«åºã¥ãïŒã ã³ã³ãã€ã«ãããããã°ã©ã ãUSBçµç±ã§Arduinoã®é補ã¡ã¢ãªã«å
¥ããŠãã ããã -ç®çã®çµæãåŸãããŸãïŒãã¹ãŠãæ£ããè¡ãããå ŽåïŒã ãããŠãã¯ããããã°ã©ã ã¯é»æºãåã£ãŠãéçã®èšæ¶ã«æ®ããŸãã
Arduinoã«ä»»ãããäž»ãªã¿ã¹ã¯ã¯ãã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠç
§æã管çããããšã§ããã ã¯ããã¹ãºã¡ã®å€§ç ²ããã§ãããã€ã¿ãªã¢ããã®ã²ã¹ãïŒå®éã«ã¯äžåœããã§ãããããã¯ãã€ã³ãã§ã¯ãããŸããïŒã«ã¯ãããã€ãã®å€§ããªèšç»ããããŸãã
ãããŸã§ã氎槜ã®ç
§æã¯çãšãé»çã䜿çšããŠè¡ãããŠããŸããããæåã§ãªã³/ãªãããå¿
èŠããããŸããã ç¹ã«é±æ«ã«ã¯ãå³å¯ãªæé管çãç¶æãããªãã£ãããšã¯æããã§ãã çŸåšãäœæ¥ãç°¡çŽ åããç
§æã®èä¹
æ§ãé«ããããã«ã12V LEDã«åãæ¿ããããšã決å®ãããŸããã ç§ã¯ã¡ãŒã¿ãŒã®é²æ°ŽLEDã¹ããªãããè²·ããŸããã çµã¿ç«ãŠãããshemkuïŒ

åäœããŠããªãã³ã³ãã¥ãŒã¿ãŒPSUããé»çå¹æãã©ã³ãžã¹ã¿ãŒããããããããŸããã äžè¬çã«ãæå
ã«ãããã®ãå¯èœãªéã䜿çšããããšããŸããã ãã ããIRFBC30ãªã©ãã»ãšãã©èª°ã§ã䜿çšã§ããŸãã æµæåšã¯åè·¯ã®ä¿¡é Œæ§ã確ä¿ããããã«å¿
èŠã§ããè¶
äœé»æµã¯ãã°ã©ã³ãã«æµã蟌ã¿ããé»çå¹æãã©ã³ãžã¹ã¿ã¯Arduinoãã³ã®ãã€ãšããŒã®ç¶æ
ã§ã®ã¿ééããŸãã ãŸããã²ãŒããšããŒãã®åºåãšã®éã«100ãªãŒã ãšãªãŒã ã®éã«å¶éæµæãé
眮ããããšããå§ãããŸããããã®åè·¯ã§ã¯ç¡èŠã§ããŸãã
æŽæ°ïŒ ã³ã¡ã³ãã§ã¯ã圌ãã¯ãŸã å¶éæµæåšã䞻匵ããŠããã ããŠãèããŠãã ããã Arduinoãã³ãšã²ãŒãã®éã«100ãªãŒã ã®æµæãé
眮ããŸãã次ã«ãã€ã³ã¿ãŒãããäžã§ã€ã³ã¿ãŒãããããã°ã©ã ãèŠã€ããŸããïŒãã®äŸã¯ãæã®ããã°ã©ã ã®æ§é ã説æããããã«ã®ã¿æ¿å
¥ããŸããïŒã
åå¿è
ããã°ã©ã int ledPin = 5; // 5 void setup() { pinMode(ledPin, OUTPUT); // () } void loop() { digitalWrite(ledPin, HIGH); // delay(1000); // 1 digitalWrite(ledPin, LOW); // delay(5000); // 5 }
皌ãã ïŒ LEDã¯å®æçã«ç¹æ»
ããŸãã
ããã°ã©ã ã®ç°¡åãªèª¬æã
void setup()
-ãã®æ©èœã¯ãéã®èµ·åããšã«èµ·åãããŸãã
void loop()
-ãµã€ã¯ã«ã§å®çŸããŸãã
æ®ãã¯ã³ã¡ã³ãããæããã§ãã
ãã®åŸãæéã®åæã«ã€ããŠã®è³ªåãçºçããŸããã çµå±ã®ãšãããé»æºããªãã«ããŠåã³ãªã³ã«ãããšãããã°ã©ã ã¯æåããéå§ãããŸãã ç§ã¯3ã€ã®ãªãã·ã§ã³ãæ€èšããŸãããèªå®¶è£œã®UPSã䜿çšããŸãïŒããã»ã©å®ããªããå®è£
ãç°¡åã§ã¯ãããŸããïŒã ã€ã³ã¿ãŒããããšåæããŸãïŒå¯Ÿå¿ããããŒãã¯ç§ã®Arduinoãããé«äŸ¡ã§ãïŒã æèšãšåæããŸãã ããã«ãWorld Wide Webã®æ¡åŒµçã§ãArduinoãšäºææ§ã®ããRTCã¹ããŒã ïŒãªã¢ã«ã¿ã€ã ã¯ããã¯ãã¯ãããã·ã¢èªã§ã¯å¥åŠã«èãããŸãïŒãèŠã€ããŸããã

éåžžã«ã·ã³ãã«ãªã¹ããŒã ã æµæã¯4.7ã10 kOhmã«èšå®ã§ããŸãã ãŸããDS1307ã¯ããã¯ããããš32768 Hzã¯ãªãŒãæèšãããããªãŒãå¿
èŠã§ãã ããããªãŒïŒCR 2032ïŒã®ãã«ããŒã¯ãã³ã³ãã¥ãŒã¿ãŒã®ãã¶ãŒããŒãã®å®¹åšã«å
¥ããããŸããã æŽå²çã«LEDå¶åŸ¡åè·¯çšã®ãã©ã³ãžã¹ã¿ã¯ãã§ã«ããŒãã«ã¯ãã ä»ããããŠããã®ã§ããã®é£ã«ã¯ããã¯ãé
眮ããŸããã
æ¥ã«æèšãçµã¿ç«ãŠãåŸãæèšã«æå»ãèšå®ã§ããªãå ŽåããŸãã¯ãç«ã£ãŠãããå Žåã¯ãæ¥ç¶ã®æ£ç¢ºæ§ãšå質ã確èªããŠãã ããã 1ã€ã®é
ç·ããã€ã¯ãåè·¯ããé¢ãããšãã¯ããã¯ã®åäœãæªããªããŸãã ãããŠãã¯ããDS1307ãDIPãœã±ããã«é
眮ããŸãã
ã¯ããã¯ãåæåããå¿
èŠããããŸãã æ£ããæ¥ä»ãšæå»ãèšå®ããŠãã ããã ããã¯æ¬¡ã®ããã«å®è¡ã§ããŸãã
ã¯ããã¯åæåããã°ã©ã #include <Wire.h> #include <DS1307.h> void setup() { Serial. begin(9600); RTC.stop(); // RTC.set(DS1307_SEC, 0); // RTC.set(DS1307_MIN, 36); // RTC.set(DS1307_HR, 15); // RTC.set(DS1307_DOW, 2); // RTC.set(DS1307_DATE, 4); / RTC.set(DS1307_MTH, 1); // RTC.set(DS1307_YR, 14); // RTC.start(); // } void loop() { Serial.print(RTC.get(DS1307_HR, true)); // Serial.print(":"); Serial.print(RTC.get(DS1307_MIN, false)); // Serial.print(":"); Serial.print(RTC.get(DS1307_SEC, false)); // Serial.println(" "); delay(1000); }
DS1307ã©ã€ãã©ãªã¯
ããããããŠã³ããŒãã§ã
ãŸã ã
ããã°ã©ã ãã³ã³ãããŒã©ãŒã«ããŒããããåŸãã³ã³ãœãŒã«ã§æéã®çµéã確èªã§ããŸãïŒã·ãªã¢ã«ã¢ãã¿ãŒãCtrl + Shift + MïŒã
ããããç§ãã¡ã®ã¹ããŒã ãšè©³çŽ°ã«æ»ããŸãã
ããããã1-Wireã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠããŒã¿ãéä¿¡ããããžã¿ã«æž©åºŠèšDS18B20ã®æ¥ç¶å³ãèŠãŸããã ãã®æž©åºŠèšã«ã¯ãArduinoã®äžã«ç¹å¥ãªã©ã€ãã©ãªãããã綱枡ããç°¡åã§ãã€ãšã«ã³ã®ã¹ãã©ã€ã«ãŒã®ã¹ããŒãã§ãèªã¿ããã圢åŒã§æž©åºŠããŒã¿ãç°¡åã«ååŸã§ããŸãã æ¥ç¶ãåçãåç--127â°ã瀺ããŸãã æ¥ç¶å³ãééã£ãŠããããšãããããŸããïŒãããŠãæå¹é»åã®åè·¯ãéžæããŸããïŒã 枩床èšã®ããã¥ã¡ã³ãã圹ç«ã¡ãŸããã é埳ïŒãµã€ãäžã®ã¬ã€ã¢ãŠãã¯è¯å¥œã§ãããå
¬åŒææžã¯åªããŠããŸãã
以äžã¯æ£ããå³ã§ãã è€æ°ã®æž©åºŠèšãåã1-Wireã©ã€ã³ã«æ¥ç¶ã§ããŸãã å軞ã±ãŒãã«ã䜿çšããããšããå§ãããŸãã

å°ãåæ
çãªäœè«ã
ç§ã¯ãã®ãããžã§ã¯ãã§ãã¹ãŠãæ£ããè¡ããŸããã§ããïŒã¢ã€ãã¢ãåŸããããã¿ã€ãã³ã°ã¹ããŒã ãã¯ãã ä»ãããã±ãŒã¹ã®æ¥ç¶ã調æŽããŸãããã±ãŒã¹ãæã«æ¥ãéšåãåããæ©èœãè¿œå ããäœå°ãå®è³ªçã«æ®ããŸããã§ãã-ãã€ã§ããã¹ãŠãè¡ãå¿
èŠããããŸãããã§ãããªããã°ãªããŸããã§ããïŒïŒã ãããã£ãŠãå察ã®ããšãè¡ãããšããå§ãããŸãã
1ïŒæ©èœã決å®ããŸãã
2ïŒè©³çŽ°ã決å®ããŸãã
3ïŒæåã®2ã€ã®ãã€ã³ãã«åºã¥ããŠã±ãŒã¹ãéžæããŸãã
4ïŒæåã®3ã€ã®ãã€ã³ãã«åºã¥ããŠæéãåŒãåºããŸãã
ãããã£ãŠãã»ãšãã©ãã¹ãŠã®é»åãããžã§ã¯ãã§è¡ãå¿
èŠããããŸãã
ãããŸãã¯ãã®ã¢ã€ãã¢ããã¹ãããå¿
èŠãããå Žå-ç¹å¥ãªãã¬ããããŒããšäžé£ã®æ¥ç¶ã䜿çšããŸãã ã¯ããç§ã¯ç¥ã£ãŠããŸãã圌ãã®äŸ¡æ Œã¯åã¿ã€ããŸãã ããããç§ãä¿¡ããŠãå€ãã®æéãšç¥çµãç¯çŽããŠãã ããã
ãããããã£ã¹ãã¬ã€ã®å転ã§ããïŒãŸããåã枩床ã衚瀺ããã«ã©ãããã°ããã§ããïŒïŒã 16æåã®æšæºããã¹ãã2è¡åããŸããã æ¥ç¶æžã¿ã 皌ãã ã 圌ã¯äœæž©èšãšæèšã衚瀺ããŸããã ç§ã¯ãã®æéãç¡é§ã«è²»ããããŠããªãããšã«æ°ä»ããŸããã ããã¯ã©ã€ãããã£ã¹ãã¬ã€ã倧å¹
ã«å ç±ããããããªãã«ãªããŸããã

æ¥ç¶å³ã衚瀺ããŸãã
ãã£ã¹ãã¬ã€ã®ã³ã³ãã©ã¹ããèšå®ããã«ã¯ã調æŽæµæãå¿
èŠã§ãã ãã¿ã³K1ã¯ããã¯ã©ã€ãã«é»åãäŸçµŠããŸãã
ãã£ã¹ãã¬ã€ã®4çªç®ã®æ¥ç¹ã¯ãã¢ãã¬ã¹ä¿¡å·ã®è¡ã§ãã A0ãŸãã¯RSãšããŠç¥ãããŠããŸãã 0ãŸãã¯1ã®ã©ã¡ãã§ãããã«å¿ããŠããã£ã¹ãã¬ã€ã¯ãã«ãŒãœã«ã移åããããªã©ã®ããŒã¿è¡ã«ã³ãã³ãããããã衚瀺ããæåã³ãŒããããããèªèããŸãã
6çªç®ã®è¡šç€ºãã³ã¯ãããŒã¿ã¢ã¯ã»ã¹ã€ããŒãã«ã©ã€ã³ã§ãã EãŸãã¯æå¹åãšããŠç¥ãããŠããŸãã ãã®è¡ã1è¡ã«ãªããšããã£ã¹ãã¬ã€ã¯ã³ãã³ããå®è¡ããããããŒã¿è¡ã®æåã衚瀺ããŸãã
ãã£ã¹ãã¬ã€ã®11çªç®ã12çªç®ã13çªç®ã14çªç®ã®æ¥ç¹ã¯ããŒã¿ç·ã§ãã DB4ãDB5ãDB6ãDB7ãšããŠç¥ãããŠããŸãã
ãããŒããŠã§ã¢ã§ãã¯ããã¯ãšãã£ã¹ãã¬ã€ã

é»æºã®å転ãæ¥ãŸããããã®åã«ããã£ã¹ãã¬ã€ãšã¯ããã¯ã«5VãArduinoãšLEDã«9Vã®2ã€ã®ç°ãªãé»æºã䜿çšããããã§ãã ç¹°ãè¿ãã«ãªããŸããã24Vã1.7Aã®PSUãæå
ã«ãããŸããããArduino LEDã«ã¯ããã ãã§ã¯äžååã ãšããã«èšããªããã°ãªããŸããã 3Aã§PSUã䜿çšããPWMã䜿çšããŠèŒåºŠãå¶åŸ¡ããããšããå§ãããŸãã 5Vãš10VãåŸãã«ã¯ãLM317Tã§åè·¯å³ãçµã¿ç«ãŠãå¿
èŠããããŸããã ãªã10Vãªã®ãïŒ Arduinoã®è³æã«ãããšã12Vãè¶
ããé»å§ãäŸçµŠããªãæ¹ãè¯ãã§ããäœé»å§ã®LEDãé·æã¡ããã¯ãã§ãã ãããã£ãŠã10VãååŸããããšã«ããŸããã å®éã10.4VãåºãŠããŸããã ç¹°ãè¿ããŸãããè³¢æã«ãªãããæå°éã®è©³çŽ°ã§åéãããŸããã ã¹ããŒã ã

ããããæéã欲æ±ãæ©äŒãããå Žåã¯ã10-11Vãã2-2.5Aã§åºåããæ¬æ Œçãªãã«ã¹é»æºãçµã¿ç«ãŠãããšããå§ãããŸãã
LM317ã¯éåžžã«ç±ããªã£ãŠãããããPIIã®ã©ãžãšãŒã¿ãŒã«åãä»ããŸããïŒIntelã®ã¹ãããCPUããã£ãããšãæãåºããŠãã ããïŒãæµæåšãåãä»ããããŸããã å
šäœããšããã·ã§æºãããã 泚æïŒLM317ã±ãŒã¹ã¯åºåã¬ãã°ã«æ¥ç¶ãããŠããããã1ã€ã®ã©ãžãšãŒã¿ãŒã«ç°ãªãé»å§ã®LM317ãåãä»ããå Žåãå°ãªããšãN-1åã®ãã€ã¯ãåè·¯ãã©ãžãšãŒã¿ãŒãã絶çžããå¿
èŠããããŸãã ãããŠãããããè¯ãã ç¡ç·ã³ã³ããŒãã³ãã®éšåã§ã¯ãã©ãžãšãŒã¿ãŒããã©ã¹ããã¯ã«ããŒã§éãããªããã裞ãã®ãŸãŸã«ããŸããã ç®ãåŒãã9ãã³RS232ã¯ãã¹ã¿ãã©ã€ã¶ãŒã®åºåããã®é»æºã³ãã¯ã¿ãŒãšããŠæ©èœããŸããã
ãã¹ãŠããŸãšããæéã§ãã ãããŠãå°é£ã蚪ããŸããã ããã§ã¯ãªããã äžæçãªæ¥ç¶ç·ãæ°žä¹
çãªãã®ã«å€æŽãå§ãããšãã«åé¡ãçºçããŸããã åãæ®ããããããã¯ãæå
ã«æ¥ã4ç·åŒé»è©±ã±ãŒãã«ããåããŸããã
ãµã€ãºã«äœè£ãããåºã
ãšããã±ãŒã¹ã¯ãç§ã«ãšã£ãŠã¯ãšãŠã€ããªãé«äŸ¡ã§ã-10ãã«ä»¥äžã ã±ãŒã¹ã®ããã«ããŒããåé¢ããå Žåãåé¡ã¯ãããŸããããå³èã§äœããªããã°ãªããŸããã§ããã ã±ãŒã¹Maszczyk KM51ãåããŸããã åè·¯åºæ¿ã¯ãã«ããŒã«åãä»ããããArduinoã®2ã€ã®éšåã«åå²ããå¿
èŠããããŸããã ãããŠãã¹ãŠã¯ãããçŽãã®ãé¢åã ã£ããšããäºå®ã®ããã§ãã
ãããèµ·ãã£ãããšã§ãã

ã¯ããç±ãã¯ãããŸããããç©ããã«çœ®ããšèŠããŸãã ãããŠãå¿
èŠãªããšã¯ãã±ãŒã¹ã®å¯žæ³ãšéå£éšã«åãããŠããŒãã調æŽãããã³ãã¯ãã ä»ãããArduinoããã®äžã«çœ®ãããšã ãã§ããã ããã¯çŽ æŽããããä¿¡é Œã§ããã§ãããã äžè¬çã«-äžèšã®åçã®ããã«
ããªãã§ãã ãã ã
ãã®ããŒãžã§ã³ã§ã¯ãããã¯ãã¹ãŠé·ãæ©èœããŸããã§ãã-ã¯ã©ããã¯äžé±éã®äŒæãçã延ã³ãŸããã§ããã ãã®ãããããçŽãå¿
èŠããããŸããã
ä»åã¯ãArduinoãæ¥ç¶ããããã«é©åãªãµã€ãºã®ããŒããçšæãããã®äžã«ãã³ãé
眮ããŸããã ããããã³ã³ãããŒã©ãŒããŒãã®äž¡åŽã«2ã€ã®ã³ãã¯ã¿ãŒãããããã³ã®åå
šäœã§2.54 mmã®è·é¢ãç¶æãããªãããã2ã€ã®ããŒãã§ãã èŠãç®ã¯ããŸãè¯ããããŸããã§ããããããŸããããŸããã

é
眮ãããã¢ã€ãã ã


çµã¿ç«ãŠãããŸããã ããŒãã«ã¯3ã€ã®ã³ãã¯ã¿ããããŸããïŒæž©åºŠã»ã³ãµãŒãLEDãé»æºïŒãã倧ããªã³ãã¯ã¿ãã¯ãã ä»ãããå Žåã«åããŠãå°æ¥ãçªç¶è€æ°ã®é»å§ãå°å ããå¿
èŠããããŸãïŒã ã±ãŒã¹ïŒUSBãArduinoé»æºïŒçŽæ¥äœ¿çšããªãïŒãåè·¯å
šäœïŒ+ 12VïŒãžã®é»æºã
ä»åãç§ã¯2ã€ã®é»å§ãæåŠãã1ã€ãæåºããŸãã-çµå±ã®ãšãããArduinoã¯ã³ãã¯ã¿ã®1ã€ã«5VãäžããŸãã True-çŸåšã®é»æµã¯ããªã匱ãã§ãããæèšãšãã£ã¹ãã¬ã€ã¯æèšãæ©èœããã®ã«ååã§ãã ãã€ã¯ããã¿ã³ïŒäžã®åçã«è¡šç€ºïŒãä»ããŠãããã¯ã©ã€ãã«é»åãäŸçµŠããŸããã ããã§ãç»é¢ãç°¡åã«åŒ·èª¿è¡šç€ºã§ããŸãã
å¥ã®æž©åºŠèšã賌å
¥ãã氎槜å
ãšéšå±å
ã®2ã€ã®æž©åºŠã®è¡šç€ºãèæ
®ããŠããã°ã©ã ãå€æŽããŸããã DS18B20ãæ¥ç¶ããã«ã¯ãã·ãŒã«ãããã€ãã¹ãä»ãã®ã±ãŒãã«ã䜿çšããæ¹ãè¯ãã§ãããæå
ã«ãããŸããã§ãã-åãé»è©±4ç·ã±ãŒãã«ã䜿çšããŸããã
æçµããã°ã©ã ã /* */ #include <Wire.h> // #include <OneWire.h> // 1-Wire #include <DS1307.h> // DS1307 #include <LiquidCrystal.h> // LCD #include <DallasTemperature.h> // 18B20 #define TempPin 2 // pin int ledPin = 3; // , pin 3 LiquidCrystal lcd(6, 7, 10, 11, 12, 13); // OneWire oneWire(TempPin); // , DallasTemperature tempSensor(&oneWire); // long tmIntv = 1000; // long tempIntv = 30000; // , long prvMlsTm = 0; // long prvMlsTemp = 0; // long prvMlsLght = 0; // long lghtIntv = 60000; // / , 1 int lghtStat = 0; // , 1 int upLghtTime = 8; // 8 int downLghtTime = 17; // 17 int isNight = 0; // , .. int prevSec = 0; // // Arduino void setup(){ pinMode(ledPin, OUTPUT); // () tempSensor.begin(); // lcd.begin(16, 2); //, 16 lcd.print("Time:"); // "Time" if (upLghtTime > downLghtTime) { // isNight = 1; } } void printTemp () { // float aTemp; // float rTemp; // tempSensor.requestTemperatures(); // rTemp = tempSensor.getTempCByIndex(0); // 0 aTemp = tempSensor.getTempCByIndex(1); // 1 lcd.setCursor(0, 1); // lcd.print("R: "); lcd.print(rTemp); // lcd.setCursor(7, 1); lcd.print(" A: "); lcd.print(aTemp); // lcd.setCursor(15, 1); lcd.print(" "); lcd.home(); // , 32 } void light () { /// int hr; int isLght = 0; hr = RTC.get(DS1307_HR, true); // if (isNight == 0) { // if (hr >= upLghtTime && hr < downLghtTime) { // isLght = 1; // } else { isLght = 0; } } else { // if(hr - upLghtTime >= 0) { // , isLght = 1; // } else { if(hr < downLghtTime) { // , isLght = 1; // } else { isLght = 0; } } } // : ? if((isLght == 1) && (lghtStat == 0)) { // lghtStat = 1; digitalWrite(ledPin, HIGH); //, } else { if(isLght == 0 && lghtStat == 1) { lghtStat = 0; digitalWrite(ledPin, LOW); //, } } } void printTime () { //- int hr; int minut; int sec; lcd.setCursor(7, 0); hr = RTC.get(DS1307_HR, true); // if( hr < 10) { lcd.print('0'); // 0 10 } lcd.print(hr); lcd.print(":"); minut = RTC.get(DS1307_MIN, false); // if( minut < 10) { lcd.print('0'); // 0 10 } lcd.print(minut); lcd.print(":"); sec = RTC.get(DS1307_SEC, false); // if( sec < 10) { lcd.print('0'); // 0 10 } // , , - if(prevSec == sec) { RTC.start(); } prevSec = sec; lcd.print(sec); } void loop() // { unsigned long currentMillis = millis(); // // , delay(), , // - // // , if(currentMillis - prvMlsTm > tmIntv) { prvMlsTm = currentMillis; printTime(); // - } // , if(currentMillis - prvMlsTemp > tempIntv) { prvMlsTemp = currentMillis; printTemp(); // } // / , if(currentMillis - prvMlsLght > lghtIntv) { prvMlsLght = currentMillis; light(); // - / } }
ã©ã€ãã©ãªã¯ã
ãã©ã¹ 枩床 ã
OneWireããããŠã³ããŒãã§ããŸãã
æ°Žæ通ã®ç
§æããªã³/ãªãã«ããå¿
èŠæ§ã¯ãæ¯åã枩床-30ç§ããšã«ãã§ãã¯ãããæéã¯æ¯ç§æŽæ°ãããŸãã
å€æãããããã€ã¹ã¯ãèŠæ
ãªãã§1é±éæ©èœããŸããã
ç¹°ãè¿ããŸãããè¯ãæ¹æ³ã§ãå°ãééã£ãããšãããŠãäžè¬çã«ã¯ã€ã€ãåãé€ãããšãå¿
èŠã§ããã ããããç§ã¯å°ãå°ããã®ãã£ã¹ãã¬ã€ã賌å
¥ããŠïŒã±ãŒã¹ãåºå®ããããã®ç©Žãå¡ãã ïŒããŒããç¹æ®ãããã®ãé¢åã§ããã ããããäŸãã°ãæ¥ç¶ãåé¢ããããã«äž¡é¢ãã¡ã€ããŒã°ã©ã¹ïŒã³ã³ãããŒã©ãŒãšãã£ã¹ãã¬ã€èªäœã®ã³ãã¯ã¿ãŒã®æ°ãèãããšãçåŽã管çããå¯èœæ§ã¯äœãïŒã䜿çšããå Žåã次ã®ãããªãã®ãåŸãããšãã§ããŸãïŒ
å€ãæ¥ãŠãç§ãã¡ã®åœã§ã¯æããªãå¯èœæ§ãããã®ã§ã枩床èšã«åºã¥ããŠæ°Žæ§œãå·åŽããããã«ãã¡ã³å¶åŸ¡ãå®è£
ããäºå®ã§ãã ç§ã¯2ã€ã®ãªãã·ã§ã³ãæ€èšããŠããŸãïŒããã¯ã©ã€ããšåãæ¹æ³ã§ã¹ã€ãããå
¥ãã12Vãã¡ã³ããŸãã¯230V ACãã¡ã³ã ãã®å ŽåãLEDã®ä»£ããã«ã+ 12Vã®å¶åŸ¡é»å§ãš230Vã®ã¹ã€ãããåãããªã¬ãŒãåè·¯ã«å«ãŸããŠããŸãã

åãæ¹åŒã«åŸã£ãŠããªã¬ãŒåè·¯ã®ããŒã¿ãŒããªã³ã«ããããšã«ãããå¬ã®æ°Žæ§œã®å ç±ãå¶åŸ¡ããããšãã§ããŸãã
æ¢ã«ãããã®ããä»ã«äœãæ¹åã§ããŸããïŒ ããšãã°ãPWMåºåã䜿çšããŠããã¯ã©ã€ããåŸã
ã«ãªã³ããã³ãªãã«ããŸãã ãã®å Žåãäžå®ã®ééã§ã次ãå®è¡ããå¿
èŠããããŸãã
analogWrite(pin, value);
ããã§ãpinã¯Arduinoã®ããŒãçªå·ã§ããªã³ã«ãããšå€ã0ãã255ã«å€åãã氎槜ã®ããã¯ã©ã€ãããªãã«ãããš255ãã0ã«å€åããŸãã
ç
§æãæåã§ãªã³ã«ããå¿
èŠãããå ŽåããããŸãã ããã«ã¯å¥ã®ã©ã³ãããããŸãããã©ã³ãããªãå Žåã¯ãArduinoã䜿çšããŠå®è£
ã§ããŸãã ãã®å Žåã®èãæ¹ã¯æ¬¡ã®ãšããã§ãã éã©ãããã¿ã³ãä»ããŠã+ 5VåºåããArduinoå
¥åã®1ã€ã«é»å§ãå°å ããŸãã 10kΩã®æµæãä»ããŠåãå
¥åã«ã°ã©ã³ããæ¥ç¶ããŸãã 次ã«ããã¿ã³ã®ã¯ãªãã¯ãç£èŠããŸãã
int isLight = 0; buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { if (isLight == 0) { // isLight == 1; } else { // isLight == 0; } }
buttonPinã¯ããã¿ã³ãæ¥ç¶ãããŠããããŒãçªå·ã§ãã isLight-çŸåšã®ç¶æ
ãèšæ¶ãããã¿ã³ãã¯ãªãã¯ãããšå転ããå€æ°ã ãã®ã³ãŒãã§ã¯ãã³ã¡ã³ãã®åŸã«LEDã®å¯Ÿå¿ããè¡ã®ãªã³/ãªããå«ããå¿
èŠããããŸãã åããŠãã¿ã³ãæŒããšãç
§æãç¹ç¯ããããäžåºŠæŒããšæ¶ç¯ããŸãã
åŒãç¶ãå¯èœã§ãããããããArduinoã«ãã絊é€ãèªååããå¿
èŠããããŸãã çµå±ã®ãšããã販売ãããŠãããã£ãŒããŒã¯é«äŸ¡ã§ããããå¿
èŠãªæ©èœãåããŠããªããããŸãã¯ãã®äž¡æ¹ã§ãã
ãããŠãã¡ãããè¯ãç¹ãšããŠãArduinoããã©ãã·ã¥ããã«ç
§æééã®ã€ã³ã¹ããŒã«ãå®è£
ããå¿
èŠããããŸãã ããšãã°ãããã«2ã€ãŸãã¯1ã€ã®ãã¿ã³ãå²ãåœãŠãŸãã
ãããŠããããArduinoã«å®è£
ã§ãããã¹ãŠã§ã¯ãããŸããã Arduino Unoã§ããã氎槜ãç¶æããéã«ããŒã¿ã®ç®¡çãšåä¿¡ã®äž¡æ¹ã®å¯èœæ§ããããŸãã ãããŠãããã«ã¯å€å€§ãªçŸéãšæéã®è²»çšãããããŸããã