Stap 3: De programmering
Voordat u dit doet, moet u de IRremote bibliotheek installeren. Dan, voordat u dit kopieert, ga naar de schets, omvatten de bibliotheek, en vervolgens de IRremote bibliotheek.
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results resultaten;
unsigned long CurrentValue = 0;
unsigned long StoredCode = 0;
Const int buttonPin = 6; het nummer van de drukknop pin
Const int ledPin = 4; het nummer van de LED-pin
Const int outputPin = 3; het nummer van de uitgang LED pins
Const int relayPin = 2; het nummer van de Relais-pin
int buttonState = 0; variabele voor het lezen van de drukknop status
int RecordState = 0; de ontvanger is in de opname mode
int outputState = 1; de uitvoer is in- of uitschakelen
VOID Setup
{
Serial.begin(9600);
irrecv.enableIRIn(); Start de ontvanger
initialiseren van de LED-pin als uitgang: pinMode (ledPin, OUTPUT);
Initialiseer de drukknop pin als input:
pinMode (outputPin, OUTPUT);
initialiseren van de drukknop pin als input: pinMode (buttonPin, INPUT);
pinMode (relayPin, OUTPUT);
initialiseren van de drukknop pin als input: pinMode (buttonPin, INPUT);
}
void loop {}
Lees de stand van de drukknop waarde:
buttonState = digitalRead(buttonPin);
Als een signaal is gevonden, slaat de waarde
Als (irrecv.decode (& resultaten)) {}
CurrentValue = (results.value);
Als de ontvangen waarde is gelijk aan de geprogrammeerde waarde, dan schakelt de uitgang staat
if(CurrentValue == StoredCode) {}
outputState =! outputState; }
Als de opname mode wordt geactiveerd als de geprogrammeerde waarde de huidige waarde opgeslagen
Als (RecordState == 1) {}
StoredCode = CurrentValue;
RecordState = 0;
digitalWrite (ledPin, laag);
Serial.println(StoredCode); displays opgeslagen code voor referentie}
De volgende waarde ontvangen
irrecv.resume();
}
anders //if die geen signaal wordt gevonden, dan de huidige waarde is 0
{
CurrentValue = 0;
}
Controleer als de record-knop wordt ingedrukt.
Als het is, is de buttonState hoog:
Als (buttonState == HIGH) {}
wachten op de knop moet worden vrijgegeven
terwijl (buttonState == HIGH) {}
buttonState = digitalRead(buttonPin); }
de LED om aan te geven dat record mode is ingeschakeld inschakelen
digitalWrite (ledPin, hoge);
RecordState = 1; }
de juiste output status instellen
if(outputState == 1) {}
digitalWrite (outputPin, hoge);
digitalWrite (relayPin, hoge); }
else {}
digitalWrite (outputPin, laag);
digitalWrite (relayPin, laag); }
}