V predchádzajúcej časti seriálu sme sa venovali snímaniu hodnôt analógových veličín prostredníctvom analógových vstupov, ich zobrazovaniu na dvojriadkovom LCD displeji. Predtým sme v časti venovanej vývojovému prostrediu pre Arduino ukázali, ako pomocou zmeny hodnoty výstupného portu blikať LED diódou. Stačí spojiť znalosti z týchto dvoch častí a vyrobiť jednoduchý obvod, ktorý bude reagovať na zmenu analógovej veličiny. V našom prípade pri poklese úrovne osvetlenia pod určitú hodnotu rozsvieti svetlo.
Realizáciu všetkých príkladov z tejto časti seriálu si môžete pozrieť v našom videu.
Najskôr otestujeme fungovanie aplikácie s LED diódou a následne ukážeme, ako sa dajú bezpečne spínať aj spotrebiče na sieťové napätie 230 V. Pri ladení aplikácie nám veľmi pomôže displej, na ktorom budeme priebežne zobrazovať aktuálne namerané hodnoty.
#include #include //vytvorí objekt LCD LiquidCrystal_I2C lcd(0x3F,16,2); void setup() { pinMode(12, OUTPUT); lcd.init();// inicializuje displej lcd.backlight(); // zapne podsvietenie lcd.setCursor(0,0); // Kurzor na riadok 1 lcd.print("Intenzita svetla"); //Text do prvého riadku. } void loop() { int nSvetlo = analogRead(A0); lcd.setCursor(0,1); // Kurzor na riadok 2 lcd.print(" "); //vyčisti riadok lcd.setCursor(0,1); // Kurzor na riadok 2 lcd.print(nSvetlo); //Text do druhého riadku if(nSvetlo < 800) digitalWrite(12, LOW); else digitalWrite(12,HIGH); delay(500); }
V tomto kóde je v porovnaní s príkladom z predchádzajúcej časti, venovanej zobrazovaniu hodnoty na displeji, nový len predposledný riadok.
if(nSvetlo < 800) digitalWrite(12, LOW); else digitalWrite(12,HIGH);
Ak nameraná hodnota na analógovom vstupe poklesne pod určitú hodnotu, nastavíme na pine D12, ktorý máme inicializovaný ako výstupný, hodnotu HIGH, čím v prvej fáze príkladu rozsvietime LED diódu. Samozrejme, hodnotu, pri ktorej treba zapnúť osvetlenie, si nastavíte podľa použitého fotočlenu a odporu. Schému nájdete v predchádzajúcej časti seriálu.
Vo finálnej odladenej aplikácii, keby ste nepotrebovali zobrazovať hodnotu meranej veličiny, kód odľahčený o obsluhu displeja bude mať len niekoľko riadkov. Predĺžil som zároveň hodnotu oneskorenia určujúcu interval merania na 5 sekúnd.
void setup() { pinMode(12, OUTPUT); } void loop() { int nSvetlo = analogRead(A0); if(nSvetlo < 800) digitalWrite(12, LOW); else digitalWrite(12,HIGH); delay(5000); }
Aby ste mohli spínať aj spotrebiče s vyšším prúdovým odberom, prípadne spotrebiče na vyššie napätie, potrebujete vhodný spínací prvok. Najjednoduchšie je použiť niektorý z modulov, obsahujúci jedno alebo viac relé, ktoré môžu spínať aj sieťové napätie. Takto môžete spínať menej výkonné zariadenia, ako sú LED žiarovky, žalúzie, systémy akvária a podobne.
Na relé je síce uvedený prúd 10 A, čo je pri napätí 230 V príkon 2,3 KW, ale pri spínaní väčších prúdov môže vzniknúť elektrický oblúk, ktorý poškodí kontakty relé a niekedy aj riadiaci systém. Z ponuky modulov si preto vyberte také, ktoré majú relé oddelené od ostatných obvodov pomocou optočlenov. Modul relé prepojte s doskou Arduino tak, že na vstupy modulu pripojte vhodné piny dosky, najvhodnejšie na tento účel sú digiálne výstupné piny D2 až D12. Piny D0 a D1 sa často využívajú na sériovú komunikáciu, preto sa vo väčšine zapojení používajú piny D2 až D12. Na výstupe D13 je pripojená LED dióda umiestnená priamo na doske.
Modul s ôsmimi relé, kde každé je oddelené optočlenom, je ideálny na scenáre domácej automatizácie. Cena modulu je 10 eur.
Úmyselne neukazujeme, ako zapojiť zásuvku, ktorá bude spínaná pomocou relé, ani zapojenie spínacích obvodov so stýkačom. Treba si uvedomiť, že pracujete so sieťovým napätím. Osoba, ktorá má príslušnú kvalifikáciu, si takýto obvod hravo zapojí. Ostatní by zapojenie časti, v ktorej je sieťové napätie, mali zveriť niekomu, kto má na to kvalifikáciu
Vzhľadom na možnosti miniatúrnych relé neodporúčame priamo spínať ani spotrebiče nad 100 W a ani klasické žiarovky, hoci aj nižšieho príkonu. Určite ste si všimli, že pri prepálení žiarovky často vznikne elektrický oblúk, ktorý aktivuje istič. Preto v takýchto prípadoch radšej použite stýkače a dobre istené obvody.
Na pokusy so spínaním spotrebičov používame takýto prípravok s dvoma stýkačmi a ističom.
Stýkač je elektromagneticky ovládaný spínač na spínanie elektrických obvodov stredného a vysokého výkonu. Funguje na rovnakom princípe ako relé. Jeden alebo viac výkonových spínacích kontaktov sa spojí pritiahnutím magnetickým poľom cievky.
Do úvahy sa berú aj fyzikálne aspekty rozpájania výkonových elektrických obvodov, napríklad zhášanie prípadných oblúkových výbojov po rozpojení obvodu. Môžete použiť jednofázové alebo trojfázové stýkače a bezpečne spínať akýkoľvek výkon. Relé v riadiacej jednotke alebo spínací modul potom spínajú len malý prúd cievky stýkača.
Príklad zostavy na testovanie aplikácie spínajúcej spotrebič na sieťové napätie
Na záver tradičná upútavka na nasledujúcu časť seriálu. Bude venovaná vývoju aplikácie, ktorá reaguje na udalosti v obsluhe prerušenia. Ako námet použijeme automatizáciu zväčšováka na čiernobiele fotografie, keď riadiaci systém odmeria intenzitu jasu vo zvolenej časti premietnutého negatívu a podľa toho nastaví expozičný čas. Príklad so zväčšovákom sme vybrali nielen preto, lebo ho máme vybalený pod stolom, pretože jeho stojan používame na snímanie záberov zblízka pre tento seriál, ale aj pre iné vlastnosti. Napríklad v tmavej komore pri zväčšovaní fotografií nemôže byť iné svetlo ako červené, čo nás prinúti namiesto doteraz používaného dvojriadkového LCD displeja s bielym podsvietením použiť sedemsegmentový červeno svietiaci LED displej.
Stojan zo zväčšováka, ktorý používame na nakrúcanie záberov zblízka, nás inšpiroval na príklad, ktorý bude fungovať ako stavový automat a bude využívať prerušenia.
Převzato z webu Nextech se souhlasem autora.
Poznámka redakce:
K jednoduchému propojování Arduina s periferními zařízeními dobře poslouží konektorový shield, který byl popsán v samostatném článku.