Marek-Vlaky.eu Ovládanie a automatizácia Diaľkové ovládanie pre arduino

Diaľkové ovládanie pre arduino

Diaľkové ovládanie pre arduino post thumbnail image

Pre ovládanie koľajiska a príslušenstva je možné použiť rôzne ovládacie prvky. Od tlačítok a potenciometrov, až po efektné, ľahko vyhotoviteľné a cenovo dostupné diaľkové ovládanie. Preto lacné, pretože také ovládanie nie je nutné kupovať, použijete kľudne akékoľvek staršie diaľkové ovládanie z televízora, videa alebo akejkoľvek pokazenej alebo nepoužívanej elektroniky.

Základ je jednoduchá schéma na pripojenie. Pri senzore diaľkového ovládača nie je písaný typ ani poradie zapojenia nožičiek, pretože výrobcov je viac a záleží iba na tom, aký prímač máte a použijete. Ja som použil prímač z pokazeného satelitného prímača a diaľkové ovládanie, ktoré som našiel na povale. Je totiž úplne jedno, že to nie je z toho istého kusu elektroniky, nakoľko kódy diaľkového budete aj tak zisťovať pomocou arduina.

Pre funkčnosť si potrebujete stiahnuť knižnicu pre použitie s adruinom – IRremote.h. Pre zistenie kódov môžete použiť jednoduchý program:

 

#include IRremote.h

int RECV_PIN = 51;
int powpin = 53;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(powpin, OUTPUT);
digitalWrite(powpin, HIGH);
}

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, DEC);
delay(100);
irrecv.resume(); // Receive the next value
}
}

Program vypíše na sériový port číselný kód stlačenej klávesy diaľkového ovládača v desiatkovej sústave. Tieto kódy si zapíšete, alebo uložíte a následne ich môžete použiť v programe cez podmienky. Jednoduché a efektné.

Nasledovná ukážka popisuje jednoduchý príklad použitia diaľkového ovládača na použitie s relátkom. Relátko je programom nastavené na zapnutie. Delay(200) slúži na pauzu v prípade stlačenia tlačidla, pretože bez pauzy aspoň 200ms nám program môže zaznamenať stlačenie tlačítka diaľkového ovládača aj viac krát, čo môže byť nežiadúce.

#include IRremote.h

int RECV_PIN = 51;
int powpin = 53;

int relay = 35;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
irrecv.enableIRIn();
pinMode(powpin, OUTPUT);
digitalWrite(powpin, HIGH);
}

void loop() {
if (irrecv.decode(&results)) {
irrecv.resume(); 
}

if (results.value == 3269642295) {
digitalWrite (relay, HIGH);
delay(200);
results.value = 0;
}

}

Tento program je len na ukážku, je dostatočne jednoduchý a rozšíriť ako aj nastaviť funkcie si ho môžete podľa svojej fantázie a potreby. Ja osobne mám celé koľajisko ovládané aj pomocou diaľkového ovládania. Je to pohodlné, v prípade dobrých batérií reaguje takmer odkiaľkoľvek. Teda nemusím zakaždým utekať k ovládaciemu pultu.

Marek Duda

Značky:,

Podobné články