Arduino

Arduino je mikro krmilnik na matični plošči, ki je zasnovan tako, da bi bil postopek z uporabo elektronike bolj dostopen. Strojna oprema je sestavljena na odprtokodni bazi, z 8-bitnim mikro kontrolerjem Atmel AVR ali 32-bitni Atmel ARM. Prva stvar, ki si jo moramo naložiti, za delo z Arduino, so seveda gonilniki. Ko imamo to nameščeno, je dobro še poskrbeti za daljinski upravljalnik.

Arduino

IR daljinski upravljalnik

Če boste kdaj hoteli uporabljati daljinski upravljalnik (jaz ga potrebujem za vsak projekt) je tukaj vodič, skozi postopek. Prva stvar, ki jo storite je, da greste na IR remote spletno stran, in si naložite gonilnike.

IR remote datoteko si naložite v knjižnico, privzeto C:/Programske datoteke (x86)/Arduino/libraries). Če v tej mapi najdemo kakršnokoli IR remote mapo jo izbrišemo, ker je dodana za funkcijo Robota. Prva možnost je da IR remote mapo (seveda razpakirano) skopiramo tja. Druga možnost pa je, da se odpravimo v sketch in gremo na Skica in Include Library. Ko se bomo z miško pomaknili tja, se nam odpre zavihek, kjer izberemo Add ZIP Library. Izberemo komplet zapakirano datoteko, ki smo si jo prenesli, in avtomatsko bo dodana v knjižnico.

Arduino

Projekt s senzorjem

Sedaj si bomo ogledali naš prvi projekt, ki je namenjen zgolj za testiranje našega daljinskega upravljalnika. Baje, da je dober prav vsak, ki se nahaja v našem stanovanju. Ker obstaja več vrst senzorjev, vam svetujem, če ga že imate, da si pogledate vezavo. Potrebujete GND, VCC (+5V iz arduina) in S (signal). Moj senzor izgleda takole. Vezavo, ki jo moramo narediti, je kot prikazuje slika.



Projekt s senzorjem 1
Projekt s senzorjem 1
Projekt s senzorjem 2
Projekt s senzorjem 2
Projekt s senzorjem 3
Projekt s senzorjem 3

V primeru, da vstavimo kontakt na plošči za signal (S) v drugi pin na ploščici, moramo to spremeniti v programu. Ko program vpišemo v sketch, v prvi vrstici const int RECV_PIN = 7; zamenjamo številko 7 z našo številko pina. Drugače pustimo pri miru, in samo vpišemo naslednji program.

#include <IRremote.h>

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup(){
  Serial.begin(9600);
  irrecv.enableIRIn();
  irrecv.blink13(true);
}

void loop(){
  if (irrecv.decode(&results)){
        Serial.println(results.value, HEX);
        irrecv.resume();
  }
}
    

Ko smo vpisali zgornji program v sketch, in naložili v Arduino, se odpravimo na Orodja in izberemo Serijski Vmesnik (Serial Monitor). Ker je program vpisan, nam bo Serijski Vmesnik zaznal vsak pritisk na daljinskem upravljalniku. Izpis je v HEX (hexadecimal) formatu in izgleda FF1111, če tega ne dobimo preverimo vezavo in IR senzor, ali baterijo na daljinskem upravljalniku.

Preizkus

Prižiganje luči z uporabo releja in daljinskega upravljalnika

Izdelali bomo prvi projekt, in sicer ker sem zgoraj opisal kako uporabljati daljinski upravljalnik, bo to projekt z uporabo le tega. Pri tem projektu bomo rabili dve tipki na daljinskem upravljalniku, on in off. V serijskem vmesniku jih nastavimo, če uporabljate istega kot jaz, potem moje kode znajo biti enake, in lahko samo skopirate.

Prižiganje luči z uporabo releja in daljinskega upravljalnika

Hm, kako gre sedaj vezava. Na relejih (lahko si kupite samo en rele, ni potrebno štirih) vidite kontakte VCC, GND in IN. To gre na Arduino, na strani 220V imate kontakte NC, COM in NO. Na IR senzorju so kontakti S, GND in VCC.

VCC na obeh relejih in senzorju vežete na skupno točko testne plošče, kontakti v vrsti + in - so povezani. Kar boste vstavili v polje - je povezano, isto velja za +, postane lažje, ker vse kontakte ne morete vezati z Arduino, ker ima samo en pol. Torej plus (VCC) vežete na Arduino +5V, maso (GND) vežete na GND pin senzorja. Signal pa po lastnih željah, samo potem morate to spremeniti v programu. Lučko vežete med 220V kontakt in rele PIN NO, kabel 220V gre na lučko, drugi del pa na PIN COM.

#include <IRremote.h>

#define gumb1 0xFF6897
#define gumb2 0xFF9867

                                        
int senzor = 12; //pin12 je vezan na senzor
int rele = 7; //pin7 je vezan na rele
                                     
IRrecv irrecv(senzor); //sprejem senzorja

decode_results koda; //rezultati kod
                                        
void setup()
{
  Serial.begin(9600); //aktiviramo arduino
  Serial.println("rele se prižge");
  irrecv.enableIRIn(); //sprejemnik se aktivira
  Serial.println("rele se izključi");


  pinMode (rele, OUTPUT); //rele ali pin7 razglasimo za izhod
}

void loop() {
  if (irrecv.decode(&koda)) { //dešifrira kodo daljinskega upravljalnika
    Serial.println(koda.value, HEX); //kodo prikaže v šesnajstiški vrednosti arduinu

    if (koda.value == gumb2){ //preveri če koda ustreza gumbu
      digitalWrite(rele, HIGH);} //rele se sproži
      delay(50);                         
    if (koda.value == gumb1){ //preveri če koda ustreza gumbu
      digitalWrite(rele, LOW);} //rele se deaktivira
      delay(50);
    
    irrecv.resume(); // sprejme vrednost
  }
  delay(100);
}