// Raspberry Pi Pico + optocoupleur + pompe à eau
#include <AccelStepper.h>
// Pin de commande du moteur pas à pas (broche STEP)
const int stepPin = 0; // Connecté à la broche STEP du moteur
const int dirPin = 1; // Connecté à la broche STEP du moteur
// Pin du capteur d'eau connecté au Raspberry Pi Pico
const int capteurEauPin = 2;
// Crée une instance de la classe AccelStepper
AccelStepper stepper(1, stepPin,dirPin); // type de pilote = 1 (driver A4988, DRV8825, etc.)
void setup() {
// Initialise la communication série à une vitesse de 9600 bauds
Serial.begin(9600);
// Configure les pins comme entrée ou sortie
pinMode(capteurEauPin, INPUT);
// Configure le moteur pas à pas
stepper.setMaxSpeed(1000); // Vitesse maximale en steps par seconde
stepper.setSpeed(500); // Vitesse initiale en steps par seconde
}
void loop() {
// Vérifie l'état du capteur d'eau (interrupteur)
int etatCapteur = digitalRead(capteurEauPin);
// Affiche l'état du capteur dans le moniteur série
Serial.print("Etat du capteur d'eau : ");
Serial.println(etatCapteur);
// Si de l'eau est détectée, fait tourner le moteur pas à pas en continu
if (etatCapteur == HIGH) {
stepper.runSpeed(); // Fait tourner le moteur à la vitesse actuelle
Serial.println("Moteur en marche");
} else {
stepper.stop(); // Arrête le moteur
Serial.println("Moteur arrêté");
}
delay(1000); // Ajoute un délai d'une seconde pour éviter un affichage trop rapide
}