V tomto článku sa naučíme, ako vytvoriť jednoduchý 2-krokový programovateľný obvod časovača Arduino, ktorým je možné zapnúť / vypnúť elektrickú záťaž s nezávisle nastaviteľným časovaním ZAPNUTIA a VYPNUTIA.
Napríklad ak chcete, aby svetlo zostalo zapnuté 24 hodín a vypnuté 2 hodiny, môžete to jednoducho urobiť rýchlou úpravou v programovom kóde. Rovnakým spôsobom môžete prispôsobiť výstupné časovanie akejkoľvek inej požadovanej množine časových intervalov príslušnou zmenou kódu.
Len musíš zostaviť a nahrať nasledujúci kód na vašu dosku Arduino a spustite funkciu časovača podľa vašich konkrétnych potrieb aplikácie.
Programový kód
void setup(){ pinMode(13, OUTPUT) } void loop(){ digitalWrite(13, HIGH) delay(86400000) digitalWrite(13, LOW) delay(3600000) }
Vo vyššie uvedenom príklade kódujte riadky oneskorenie (86400000) a oneskorenie (3600000) určiť časové intervaly oneskorenia výstupu ON a OFF v milisekundách. Tu, obrázok 86400000 milisekúnd zodpovedá 24 hodinám, zatiaľ čo 3 600 000 vykazuje meškanie 1 hodinu.
Tieto dve hodnoty môžete prispôsobiť podľa svojich osobných preferencií, aby ste dosiahli požadované oneskorenia výstupu.
Po nastavení a napájaní bude Arduino pokračovať v prepínaní medzi dvojkrokovou časovacou sekvenciou ON / OFF. pokiaľ zostáva napájanie systému.
Schéma zapojenia
Kompletnú schému zapojenia spolu s pripojeniami Arduino môžete vidieť na nasledujúcej schéme:
Okruh jednorazového časovača Arduino
Ak nechcete, aby časovač prechádzal cez dvojstupňový časovač, namiesto toho chcete, aby bol časovač jednorazový, ktorý sa po nastavenom oneskorení natrvalo vypne, môžete použiť nasledujúci kód:
int led = 13 // Pin 13 has an LED connected on most Arduino boards. unsigned long DELAY_TIME = 10000 // 10 sec unsigned long delayStart = 0 // the time the delay started bool delayRunning = false // true if still waiting for delay to finish void setup() { pinMode(led, OUTPUT) // initialize the digital pin as an output. digitalWrite(led, HIGH) // turn led on // start delay delayStart = millis() delayRunning = true } void loop() { // check if delay has timed out if (delayRunning && ((millis() - delayStart) >= DELAY_TIME)) { delayRunning = false // finished delay -- single shot, once only digitalWrite(led, LOW) // turn led off } }
Ak chcete diskrétne navrhnutú verziu identického programovateľného obvodu časovača, môžete rozhodnúť sa pre tento okruh
Súčasti potrebné pre obvod programovateľného časovača Arduino
- Arduino UNO doska = 1
- IC 7809 = 1
- BC547 = 1
- Dióda 1N4007 = 1
- 10k 1/4 w rezistor = 1
- Relé 12V / 400 ohm / SPDT / 5 amp = 1
- Adaptér 12V AC na DC = 1
Dvojica: Jednoduchý digitálny časovač s dvojciferným displejom Ďalej: Obvod digitálneho teplomeru - na napájanie využíva solárny článok