Stap 3: De Code van de Arduino
#include < IRremote.h >
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
Initialiseer 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 verwijzing
}
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);
}
}