Arduino: sestavení budíku - jak to funguje
V tomto praktickém tipu se naučíte, jak budovat budík s Arduino. Se správným kódem je to snadné.
Arduino: sestavení budíku - jak to funguje
Pro budík Arduino potřebujete napájení, IR přijímač s dálkovým ovládáním, bzučák, modul real-time DS3231, termistor, LCD a samozřejmě prkénko a Arduino s odpovídajícími propojovacími kabely.
- Nejprve připojte napájecí zdroj správným způsobem na prkénko a ujistěte se, že je nastaven na 5 voltů na obou stranách.
- Připojte infračervený přijímač k plusovým a mínusovým sloupcům a ke kolíku 3.
- Připojte aktivní bzučák na pin 13 a na zem (mínus bar).
- Modul DS3231 je také připojen k plusovým a mínusovým sloupcům. Připojte také SDA k SDA a SCL k SCL na Arduino.
- Nyní potřebujete termistor, který je také připojen k 5 V a analogu 0 přes odpor 10 kOhm.
- Nakonec musíte připojit LCD. K je připojen k - a A k +. Kolíky D4 až D7 se připojují k pinům 9 až 12 na Arduino. Nyní musíte připojit E k pin 8, RW k minus baru a RS k pin 7. Připojte pin V0 k 10k potenciometru, který je připojen k 5V a kostře. Nakonec připojte VDD k 5V a VSS k zemi.
Naprogramujte budík Arduino
Pokud jste vše nastavili správně, můžete naprogramovat budík Arduino. Za tímto účelem jsme napsali malý ukázkový kód:
- #include #include #include #include "IRremote.h" int tempPin = 0; Hodiny DS3231; RTCDateTime dt; LiquidCrystal lcd (7, 8, 9, 10, 11, 12); int přijímač = 3; IRrecv irrecv (přijímač); výsledky dekódování_výsledků; int alarm; boolean alarm_state = false; Řetězcová hodina; String destination_time; String minute; String current_time; int bzučák = 13; void translateIR () {switch (results.value) {case 0xFFA25D: alarm_state =! alarm_state; break; // POWER case 0xFFE21D: break; // Pouzdro FUNC / STOP 0xFF629D: break; // VOL + případ 0xFF22DD: break; // FAST BACK case 0xFF02FD: break; // Případ PAUSE 0xFFC23D: break; // Případ FAST FORWARD 0xFFE01F: break; // DOWN případ 0xFFA857: break; // VOL- případ 0xFF906F: break; // UP případ 0xFF9867: break; // EQ case 0xFFB04F: break; // Případ ST / REPT 0xFF6897: alarm = 0; ni (); break; // 0 případ 0xFF30CF: alarm = 1; ni (); break; // 1 případ 0xFF18E7: alarm = 2; ni (); break; // 2 případ 0xFF7A85: alarm = 3; ni (); break; // 3 případ 0xFF10EF: alarm = 4; ni (); break; // 4 případ 0xFF38C7: alarm = 5; ni (); break; // 5 případu 0xFF5AA5: alarm = 6; ni (); break; // 6 případu 0xFF42BD: alarm = 7; ni (); break; // 7 případu 0xFF4AB5: alarm = 8; ni (); break; // 8 případu 0xFF52AD: alarm = 9; ni (); break; // 9 případ 0xFFFFFFFF: break; default: break; } zpoždění (500); } void add () {destination_time + = String (alarm); } void setup () {pinMode (bzučák, OUTPUT); lcd.begin (16, 2); clock.begin (); clock.setDateTime (__ DATE__, __TIME__); irrecv.enableIRIn (); } void loop () {int tempReading = analogRead (tempPin); double tempK = log (10 000, 0 * ((1024, 0 / tempReading - 1)))); tempK = 1 / (0, 001129148 + (0, 000234125 + (0, 0000000876741 * tempK * tempK)) * tempK); float tempC = tempK - 273, 15; float tempF = (tempC * 9, 0) / 5, 0 + 32, 0; dt = clock.getDateTime (); lcd.setCursor (0, 0); lcd.print (formát clock.date ("dmY H: i: s", dt)); lcd.setCursor (0, 1); lcd.print (String (tempC) + "" + String ((char) 223) + "C"); if (irrecv.decode (& results)) {translateIR (); irrecv.resume (); } hour = clock.dateFormat ("H", dt); minute = clock.dateFormat ("i", dt); current_time = hour + minute; if (current_time == destination_time && alarm_state == true) {pinMode (bzučák, VYSOKÝ); } else {pinMode (bzučák, LOW); } if (alarm_state == true) {lcd.setCursor (10, 1); lcd.print ( "!"); } else {lcd.setCursor (10, 1); lcd.print (""); } if (destination_time.length () == 4) {lcd.setCursor (11, 1); lcd.print (destination_time); } else if (destination_time.length () <4) {lcd.setCursor (11, 1); lcd.print ( "typ"); } else {lcd.setCursor (11, 1); lcd.print ( "typ"); destination_time = ""; } zpoždění (1000); }
- Tip: Zkopírujte tento kód do svého IDE a podle potřeby jej upravte. Podrobné vysvětlení kódových řádků najdete v naší fotogalerii.
V dalším článku si vysvětlíme, jak můžete ovládat modul GSM pomocí Arduino.