|
#define greenLedPin 8
|
|
#define masterSwitchPin 7
|
|
int dataFromSlave = 0;
|
|
|
|
void setup() {
|
|
pinMode(greenLedPin, OUTPUT);
|
|
digitalWrite(greenLedPin, LOW);
|
|
pinMode(masterSwitchPin, INPUT);
|
|
digitalWrite(masterSwitchPin,LOW);
|
|
Serial.begin(38400); // Taux de transmission par défaut du module Bluetooth
|
|
}
|
|
|
|
void loop() {
|
|
// Vérifie si des données arrivent de l'esclave
|
|
if (Serial.available() > 0) {
|
|
dataFromSlave = Serial.read(); // Lit les données de l'esclave
|
|
}
|
|
|
|
// Contrôle de la LED sur le maître en fonction des données reçues
|
|
if (dataFromSlave == '1') {
|
|
digitalWrite(greenLedPin, HIGH); // Allume la LED sur le maître
|
|
} else if (dataFromSlave == '0') {
|
|
digitalWrite(greenLedPin, LOW); // Éteint la LED sur le maître
|
|
}
|
|
|
|
// Lecture de l'état du bouton du maître
|
|
int masterSwitchValue = digitalRead(masterSwitchPin);
|
|
|
|
// Envoie de l'état du bouton du maître à l'esclave
|
|
if (masterSwitchValue == HIGH) {
|
|
Serial.write('1'); // Envoie '1' pour allumer la LED sur l'esclave aussi
|
|
digitalWrite(greenLedPin, HIGH); // Allume la LED sur le maître
|
|
} else if (dataFromSlave != '1') { // Si le bouton du maître est relâché et que l'esclave n'a pas demandé l'allumage
|
|
Serial.write('0'); // Envoie '0' pour éteindre la LED sur l'esclave
|
|
digitalWrite(greenLedPin, LOW); // Éteint la LED sur le maître
|
|
}
|
|
|
|
delay(10); // Petit délai pour éviter les rebonds
|
|
}
|