Stap 4: Upload de Arduino-Code
/*
* IRremote-bibliotheek - Copyright 2009 Ken Shirriff
* gemaakt door Rui Santos, http://randomnerdtutorials.wordpress.com
* Controle LED's met een afstandsbediening
* 2013
*/
#include < IRremote.h >
int IR_Recv = 3; IR ontvanger Pin 3
int g_ledPin = 5; groene LED pin 5
int y_ledPin = 6; gele LED pin 6
int r_ledPin = 9; rode LED pin 9
int b_ledPin = 10; blauwe LED pin 10
int ledPins [] {5, 6, 9, 10} =; matrix met alle pennen van de LED's
int ledStates [] = {0, 0, 0, 0}; Dit betekent dat de LED's Staten aanvankelijk is 0 = laag
int i = 0; LED-index voor de arrays
IRrecv irrecv(IR_Recv);
decode_results resultaten;
variabelen te maken van de LED knipperen wanneer geselecteerd
int ledState = laag; ledState de LED op of uit te schakelen
lange previousMillis = 0; laatste keer LED werd bijgewerkt worden opgeslagen
lange interval = 1000; interval waartegen knipperen (milliseconden)
VOID Setup {}
Serial.begin(9600); seriële communicatie begint
irrecv.enableIRIn(); Begint de ontvanger
pinMode (g_ledPin, OUTPUT); Hiermee stelt u de digitale pen als uitvoer
pinMode (y_ledPin, OUTPUT); Hiermee stelt u de digitale pen als uitvoer
pinMode (r_ledPin, OUTPUT); Hiermee stelt u de digitale pen als uitvoer
pinMode (b_ledPin, OUTPUT); Hiermee stelt u de digitale pen als uitvoer
}
void loop {}
decodeert de infrarood input
Als (irrecv.decode (& resultaten)) {}
lange int decCode = results.value;
Serial.println(decCode);
schakelaar geval gebruik van de knop geselecteerde afstandsbediening
schakelaar (results.value) {}
kast 57936: //when u druk op de knop doorsturen
if/else statement hierdoor weet u zeker dat LED brandt of uitschakelen voordat naar de volgende LED
if(ledStates[i]==0)
digitalWrite (ledPins [i], laag);
anders
digitalWrite (ledPins [i], hoge);
Serial.println ("vervolgens bracht");
zorgt ervoor dat wanneer we de laatste LED bereiken gaat het om de eerste LED weer
Als (ik > = 3)
Ik =-1;
Ik += 1;
breken;
kast 57928: //when u druk op de terug knop
if/else statement hierdoor weet u zeker dat de LED brandt of uitschakelen voordat verplaatsen naar de vorige LED
if(ledStates[i]==0)
digitalWrite (ledPins [i], laag);
anders
digitalWrite (ledPins [i], hoge);
Serial.println ("vorige LED");
zorgt ervoor dat wanneer we de eerste LED bereiken het naar de laatste LED gaat
Als (ik < = 0)
Ik = 4;
Ik-= 1;
breken;
kast 57932: //when u druk op de knop Dempen
if(ledStates[i]==0) {//if de LED is uitgeschakeld, zal het weer op
Serial.println ("Turns ON de LED geselecteerd");
digitalWrite (ledPins [i], hoge); Hiermee stelt u de LED op
ledStates [i] = 1; updates van de status LED
}
else {}
Serial.println ("schakelt de LED geselecteerd"); anders: de LED brandt, zal uitzetten
digitalWrite (ledPins [i], laag); de LED vertrekt
ledStates [i] = 0; updates van de status LED
}
breken;
kast 57920: //when u druk op de Power-knop
Serial.println ("Turns OFF alle de LED's");
digitalWrite (g_ledPin, laag); de groene LED vertrekt
ledStates [0] = 0; updates van de status LED
digitalWrite (y_ledPin, laag); de gele LED vertrekt
ledStates [1] = 0; updates van de status LED
digitalWrite (r_ledPin, laag); de rode LED vertrekt
ledStates [2] = 0; updates van de status LED
digitalWrite (b_ledPin, laag); de blauwe LED vertrekt
ledStates [3] = 0; updates van de status LED
breken;
standaard:
Serial.println("Waiting");
}
irrecv.resume(); De volgende waarde ontvangt van de knop die u
}
dit als verklaring het LED knipperen maakt als deze ingeschakeld en uitschakelen
if(ledStates[i]==0) {}
unsigned long currentMillis = millis();
Als (currentMillis - previousMillis > interval) {}
de laatste tijd u de LED knipperde besparen
previousMillis = currentMillis;
Als de LED is uit te schakelen het op en vice-versa:
Als (ledState == laag)
ledState = hoog;
anders
ledState = laag;
de LED met de ledState van de variabele instellen
digitalWrite (ledPins [i], ledState)
}
}
}