Internet of Things - Arduino
Višebojne svjetleće diodeUpravljanje bojama tipkalima
Što ćemo naučiti:
– Kako koristiti ugnježdene if uvjete
– Kako koristiti varijable za postavljanje stanja izvoda
Zadatak
Nadogradite primjer „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 2