- Darba skaidrojums:
- IR tālvadības signālu dekodēšana, izmantojot Arduino:
- Ķēdes apraksts:
- Koda apraksts:
Iepriekš mēs esam aptvēruši daudzus mājas automatizācijas veidus, izmantojot dažādas tehnoloģijas, piemēram, uz DTMF balstītu mājas automatizāciju, datoru kontrolētu mājas automatizāciju, izmantojot Arduino, Bluetooth kontrolētu mājas automatizāciju. Šajā projektā mēs izmantojam IR balstītu bezvadu sakarus, lai kontrolētu mājas tehniku. Šajā projektā Arduino tiek izmantots visa procesa kontrolei. Mēs nosūtām dažas komandas vadības sistēmai, izmantojot IR TV / DVD / MP3 tālvadības pulti, lai kontrolētu maiņstrāvas sadzīves tehniku. Pēc signāla saņemšanas no IR tālvadības pults Arduino nosūta saistīto signālu relejiem, kuri ir atbildīgi par sadzīves tehnikas ieslēgšanu vai izslēgšanu, izmantojot releja draiveri.
Darba skaidrojums:
Šī projekta darbība ir viegli saprotama. Kad mēs nospiežam jebkuru IR Remote pogu, tālvadība nosūta kodu kodētu impulsu vilciena veidā, izmantojot 38Khz modulējošu frekvenci. Šos impulsus uztver TSOP1738 sensors, tos nolasa Arduino, un pēc tam Arduino atšifrē saņemto impulsu virzienu hex vērtībā un salīdzina šo dekodēto vērtību ar iepriekš nospiestās pogas hex vērtību. Ja notiek kāda sakritība, Arduino veic relatīvu darbību, un attiecīgais rezultāts tiek parādīts arī 16x2 LCD, izmantojot atbilstošas komandas. Šajā projektā demonstrēšanai izmantojām 3 dažādu krāsu spuldzes, kas norāda ventilatoru, gaismu un televizoru.
Dažādām ierīcēm ir pieejami daudz dažādu veidu IR tālvadības pults, taču lielākā daļa no tiem strādā pie 38 kHz frekvences signāla. Šajā projektā mēs kontrolējam sadzīves tehniku, izmantojot IR TV tālvadības pulti. IR attālā signāla noteikšanai mēs izmantojam TSOP1738 IR uztvērēju. Šis TSOP1738 sensors var uztvert 38Khz frekvences signālu. IR pults un TSOP1738 darbību var detalizēti aplūkot šajā rakstā: IR raidītājs un uztvērējs
Komponenti:
- Arduino UNO
- TSOP1738
- IR TV / DVD tālvadības pults
- ULN2003
- Releji 5 volti
- Spuldze ar turētāju
- Savienojošie vadi
- Maizes dēlis
- 16x2 LCD
- Enerģijas padeve
- PVT
- IC 7805
Šajā projektā mēs esam izmantojuši 7, 8 un 9 infrasarkano staru tālvadības pogu, lai attiecīgi kontrolētu ventilatoru, gaismu un televizoru, un ON / OFF poga (barošanas poga) tiek izmantota visu ierīču vienlaicīgai ieslēgšanai un izslēgšanai.
Šeit mēs esam izmantojuši pārslēgšanas metodi vienas mājas ierīces ieslēgšanai un izslēgšanai. Pārslēgšanas metode nav nekas cits kā iegūt to neatkarīgi no tā, vai poga tiek nospiesta pat reizes vai nepāra reizes. To var atrast, saņemot atgādinājumu pēc tā dalīšanas ar 2 (i% 2), ja ir kāds atgādinājums, ierīce tiks ieslēgta un, ja atgādinājums ir 0, tas tiks izslēgts. Pieņemsim, ka tālvadības pults tiek nospiesta taustiņš 7, pēc tam tālvadības pults ar TSOP IR uztvērēju nosūta signālu Arduino. Tad Arduino to atšifrē un uzglabā dekodēto vērtību rezultātu mainīgajā. Tagad rezultātu mainīgajam ir sešstūra vērtība 0x1FE00FF, pēc tam, kad tas ir saskaņots ar 7. atslēgas iepriekš definēto sešstūra vērtību (skatīt iepriekšējo attēlu), Arduino ieslēdz ventilatoru. Tagad, kad mēs vēlreiz nospiežam to pašu taustiņu (7. taustiņš), tad IR nosūta to pašu kodu. Arduino iegūst to pašu kodu un saskaņo to pašu kodu tāpat kā iepriekš, bet šoreiz ventilators tika izslēgts, jo pārslēdza bitu (i% 2).
IR tālvadības signālu dekodēšana, izmantojot Arduino:
Šeit ir saraksts ar DVD NEC tipa attāli dekodētiem izvades kodiem:
Ja nezināt infrasarkanā tālvadības dekodēto izvadi, to var viegli atrast, vienkārši rīkojieties šādi:
- Lejupielādējiet IR attālo bibliotēku šeit:
- Izpakojiet to un ievietojiet to mapē Arduino 'Libraries'. Pēc tam pārdēvējiet izvilkto mapi uz IRremote.
- Palaidiet zemāk esošo programmu no sava Arduino un atveriet Serial Monitor logu Arduino IDE. Tagad nospiediet jebkuru IR Remote pogu un skatiet atbilstošo dekodēto sešstūra izvadi Serial Monitor logā.
* IRremote: IRrecvDemo - demonstrē IR kodu saņemšanu ar IRrecv * Ieejai RECV_PIN jābūt pieslēgtam IR detektoram / demodulatoram. * Versija 0.1 2009. gada jūlijs * Autortiesības 2009 Ken Shirriff * http://arcfn.com * / #include
Iepriekš minētā programma ir ņemta no IRremote bibliotēkas mapes “piemēri”. Jūs varat apskatīt citus piemērus, lai uzzinātu vairāk par IR tālvadības pulti. Tātad tā mēs atšifrējām IR tālvadības izvadi.
Ķēdes apraksts:
Šīs ķēdes savienojumi ir ļoti vienkārši, jo mājsaimniecības ierīču statusa parādīšanai tiek izmantots šķidro kristālu displejs, kas ir tieši savienots arduino 4 bitu režīmā. LCD datu spraudņi, proti, RS, EN, D4, D5, D6, D7, ir savienoti ar arinoino digitālo tapu numuriem 6, 7, 8, 9, 10, 11. Un TSOP1738 izejas tapa ir tieši savienota ar digitālo tapu 14 (A) no Arduino. Un Vcc tapa ir pievienota +5 voltu un GND tapai, kas savienota ķēdes zemes spailē. Releju vadīšanai tiek izmantots arī releja draiveris, proti, ULN2003. 5 voltu SPDT 3 releji tiek izmantoti LIGHT, FAN un TV vadīšanai. Releji ir pievienoti arduino tapām 3, 4 un 5, izmantojot releja draiveri ULN2003, lai kontrolētu attiecīgi LIGHT, FAN un TV.
Koda apraksts:
Šī projekta plānošanā Pirmkārt, programmēšanā mēs iekļaujam bibliotēku IR tālvadībai, kas ir viegli pieejama Google. Un definēt pin un deklarēt mainīgos.
# iekļaut
Tad pievienojiet šķidro kristālu displeja galveni, un pēc tam mēs definējam LCD un sadzīves tehnikas datus un vadības tapas.
# iekļaut
Pēc tam mums ir jāinicializē LCD un jādod tapas virziens, ko izmanto ventilatoram, gaismai un televizoram.
void setup () {Sērijas.sākt (9600); lcd.begin (16,2); pinMode (ventilators, OUTPUT); pinMode (Gaisma, OUTPUT); pinMode (TV, OUTPUT);
Kā jau paskaidrots, zemāk esošā koda daļa tiek izmantota, lai salīdzinātu saņemto sešstūra vērtību ar jau definēto šīs pogas sešstūra kodu. Ja tas sakrīt, relatīvā darbība tiek veikta, izmantojot atbilstošas funkcijas, kas norādītas kodā.
void loop () {if (irrecv.decode (& rezultāti)) {Serial.println (results.value, HEX); kavēšanās (100); lcd.setCursor (0,0); lcd.print ("Fan Light TV"); ja (rezultāti.vērtība == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (Fan, x);