Étape 3: Le Code de l’Arduino
#include < IRremote.h >
int RECV_PIN = 11 ;
IRrecv irrecv(RECV_PIN) ;
résultats de la decode_results ;
unsigned long CurrentValue = 0 ;
unsigned long StoredCode = 0 ;
const int buttonPin = 6 ; le nombre de la tige poussoir
const int ledPin = 4 ; le nombre de l’axe de la LED
const int outputPin = 3 ; le nombre de la broche de sortie LED
const int relayPin = 2 ; le nombre de l’axe de relais
buttonState int = 0 ; variable pour la lecture de l’état de bouton poussoir
int RecordState = 0 ; est le récepteur en mode record
int outputState = 1 ; soit la sortie allumée ou éteinte
void setup()
{
Serial.Begin(9600) ;
irrecv.enableIRIn() ; Démarrer le récepteur
initialiser les broches de la LED en tant que sortie :
pinMode (ledPin, sortie) ;
initialiser la tige poussoir comme entrée :
pinMode (outputPin, sortie) ;
initialiser la tige poussoir comme intrant : pinMode (buttonPin, entrée) ;
pinMode (relayPin, sortie) ;
initialiser la tige poussoir comme intrant : pinMode (buttonPin, entrée) ;
}
void loop() {}
lire l’état de la valeur du bouton poussoir :
buttonState = digitalRead(buttonPin) ;
Si un signal est détecté, stocker la valeur
Si (irrecv.decode (et résultats)) {}
CurrentValue = (results.value) ;
Si la valeur reçue égale la valeur programmée, puis basculer l’état de la sortie
if(CurrentValue == StoredCode) {}
outputState =! outputState ;
}
Si le mode d’enregistrement est activé stocker la valeur actuelle la valeur programmée
Si (RecordState == 1) {}
StoredCode = CurrentValue ;
RecordState = 0 ;
digitalWrite (ledPin, basse) ;
Serial.println(StoredCode) ; affiche stocké le code pour référence
}
Recevoir la valeur suivante
irrecv.Resume() ;
}
d’autre //if qu'aucun signal n’est détecté, alors la valeur actuelle est 0
{
CurrentValue = 0 ;
}
Vérifiez si la touche record.
Si c’est le cas, le buttonState est haute :
Si (buttonState == HIGH) {}
Attendez que le bouton être libéré
tandis que (buttonState == HIGH) {}
buttonState = digitalRead(buttonPin) ;
}
allumer la LED pour indiquer que le mode record est sur
digitalWrite (ledPin, HIGH) ;
RecordState = 1 ;
}
définir l’état de sortie appropriée
if(outputState == 1) {}
digitalWrite (outputPin, HIGH) ;
digitalWrite (relayPin, HIGH) ;
}
else {}
digitalWrite (outputPin, faible) ;
digitalWrite (relayPin, basse) ;
}
}