Internet of Things - Arduino

Višebojne svjetleće diode

Upravljanje bojama tipkalima

Što ćemo naučiti:

Kako koristiti ugnježdene if uvjete

Kako koristiti varijable za postavljanje stanja izvoda

Zadatak

Nadogradite primjer „VIŠEBOJNE SVJETLEĆE DIODE – PRIMJER 1 – PROMJENA BOJA“ tako da na Arduino spojite 3 tipkala kojima ćete moći uključivati i isključivati svaki segment RGB diode. Svako tipkalo upravlja jednim segmentom. Pritiskom na tipkalo pojedini segment se uključuje ako je bio isključen i obratno.

 

Prikaz spajanja

Arduino kod

int LedCrvena = 6;
int LedZelena = 7;
int LedPlava = 8;                
int TipkaloCrvena = 10;
int TipkaloZelena = 11;
int TipkaloPlava = 12;

int StanjeCrvena = LOW;
int StanjeZelena = LOW;
int StanjePlava = LOW;


void setup() {
  pinMode(LedCrvena, OUTPUT);             //postavi izvod LedCrvena (6) kao izlazni
  pinMode(LedZelena, OUTPUT);             //postavi izvod LedZelena (7) kao izlazni
  pinMode(LedPlava, OUTPUT);              //postavi izvod LedPlava (8) kao izlazni
  pinMode(TipkaloCrvena, INPUT_PULLUP);   //postavi izvod TipkaloCrvena (10) kao ulazni i aktiviraj pull-up
  pinMode(TipkaloZelena, INPUT_PULLUP);   //postavi izvod TipkaloZelena (11) kao ulazni i aktiviraj pull-up
  pinMode(TipkaloPlava, INPUT_PULLUP);    //postavi izvod TipkaloPlava (12) kao ulazni i aktiviraj pull-up
}

void loop() {
    //promjena stanja za crveni segment
    if (digitalRead(TipkaloCrvena)==LOW){ //ukoliko je pritisnuto TipkaloCrvena
      if (StanjeCrvena==LOW){             //ukoliko je prethodno crveni segment bio isključen
        StanjeCrvena=HIGH;                //uključi crveni segment
      } else {                            //inače
        StanjeCrvena=LOW;                 //isključi crveni segment
      }
    }
    
    //promjena stanja za zeleni segment
    if (digitalRead(TipkaloZelena)==LOW){ //ukoliko je pritisnuto TipkaloZelena
      if (StanjeZelena==LOW){             //ukoliko je prethodno zeleni segment bio isključen
        StanjeZelena=HIGH;                //uključi zeleni segment
      } else {                            //inače
        StanjeZelena=LOW;                 //isključi zeleni segment
      }
    }
    
    //promjena stanja za plavi segment
    if (digitalRead(TipkaloPlava)==LOW){  //ukoliko je pritisnuto TipkaloPlava
      if (StanjePlava==LOW){              //ukoliko je prethodno plavi segment bio isključen
        StanjePlava=HIGH;                 //uključi plavi segment
      } else {                            //inače
        StanjePlava=LOW;                  //isključi plavi segment
      }
    }

    //postavljanje stanja na segmente
    digitalWrite(LedCrvena, StanjeCrvena);  //postavi crveni segment u stanje LedCrvena
    digitalWrite(LedZelena, StanjeZelena);  //postavi zeleni segment u stanje LedZelena
    digitalWrite(LedPlava, StanjePlava);    //postavi plavi segment u stanje LedPlava
}

verzija 1

Pogledajte ostale materijale za višebojne svjetleće diode