Projet

Général

Profil

scenario enseignant #15093 » slave.ino

Maxime Crublé, 13/12/2024 14:44

 
#define ledPin 8
#define slaveSwitchPin 7
int dataFromMaster = 0;

void setup() {
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
pinMode(slaveSwitchPin, INPUT);
digitalWrite(slaveSwitchPin,LOW);
Serial.begin(38400); // Taux de transmission par défaut du module Bluetooth
}

void loop() {
// Vérifie si des données arrivent du maître
if (Serial.available() > 0) {
dataFromMaster = Serial.read(); // Lit les données du maître
}

// Contrôle de la LED sur l'esclave en fonction des données reçues
if (dataFromMaster == '1') {
digitalWrite(ledPin, HIGH); // Allume la LED sur l'esclave
} else if (dataFromMaster == '0') {
digitalWrite(ledPin, LOW); // Éteint la LED sur l'esclave
}

// Lecture de l'état du bouton de l'esclave
int slaveSwitchValue = digitalRead(slaveSwitchPin);

// Envoie de l'état du bouton de l'esclave au maître
if (slaveSwitchValue == HIGH) {
Serial.write('1'); // Envoie '1' pour allumer la LED sur le maître aussi
digitalWrite(ledPin, HIGH); // Allume la LED sur l'esclave
} else if (dataFromMaster != '1') { // Si le bouton de l'esclave est relâché et que le maître n'a pas demandé l'allumage
Serial.write('0'); // Envoie '0' pour éteindre la LED sur le maître
digitalWrite(ledPin, LOW); // Éteint la LED sur l'esclave
}

delay(10); // Petit délai pour éviter les rebonds
}
(2-2/3)