0% ont trouvé ce document utile (0 vote)
1 vues5 pages

Code 9999

Ce code Arduino contrôle une fontaine automatique en utilisant un capteur de distance et un relais pour activer une pompe. Il mesure la distance à un objet et, si celle-ci est inférieure ou égale à 8 cm, il active la pompe pendant 4 secondes. Un écran LCD affiche la distance mesurée et l'état de la pompe.

Transféré par

gustavebanze6
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
1 vues5 pages

Code 9999

Ce code Arduino contrôle une fontaine automatique en utilisant un capteur de distance et un relais pour activer une pompe. Il mesure la distance à un objet et, si celle-ci est inférieure ou égale à 8 cm, il active la pompe pendant 4 secondes. Un écran LCD affiche la distance mesurée et l'état de la pompe.

Transféré par

gustavebanze6
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

#include <Wire.

h>

#include <LiquidCrystal_I2C.h>

// LCD I2C

LiquidCrystal_I2C lcd(0x27, 16, 2);

// Broches

#define TRIG_PIN 9

#define ECHO_PIN 10

#define RELAY_PIN 7

long duree;

float distance;

// Fonction pour mesurer la distance proprement

float prendreMesure() {

digitalWrite(TRIG_PIN, LOW);

delayMicroseconds(2);

digitalWrite(TRIG_PIN, HIGH);

delayMicroseconds(10);

digitalWrite(TRIG_PIN, LOW);

duree = pulseIn(ECHO_PIN, HIGH, 30000); // Timeout de 30ms

if (duree == 0) {
return 999.0;

} else {

return (duree * 0.034) / 2.0;

void setup()

pinMode(TRIG_PIN, OUTPUT);

pinMode(ECHO_PIN, INPUT);

pinMode(RELAY_PIN, OUTPUT);

// Relais OFF au démarrage (HIGH pour la plupart des modules relais actifs à l'état bas)

digitalWrite(RELAY_PIN, HIGH);

[Link](9600);

[Link]();

[Link]();

[Link](0, 0);

[Link]("FONTAINE AUTO");

[Link](0, 1);

[Link]("Demarrage...");
delay(2000);

[Link]();

void loop()

// Première mesure

distance = prendreMesure();

// --- FILTRAGE DES FAUSSES ALERTES ---

// Si on détecte quelque chose à moins de 8cm, on revérifie 50ms plus tard

// pour être sûr que ce n'est pas un parasite électrique ou une goutte d'eau.

if (distance <= 8) {

delay(50);

distance = prendreMesure();

// Affichage de la distance validée

[Link]("Distance : ");

[Link](distance);

[Link](" cm");

[Link](0, 0);

[Link]("Dist:");

[Link](distance, 1);
[Link](" cm ");

// --- LOGIQUE DE COMMANDE ---

if (distance <= 8)

[Link](0, 1);

[Link]("Pompe ON ");

digitalWrite(RELAY_PIN, LOW); // Allume la pompe

delay(4000); // Temps d'arrosage (ajusté à 4s pour plus de sécurité)

digitalWrite(RELAY_PIN, HIGH); // Éteint la pompe CRUCIAL

[Link](0, 1);

[Link]("Lavage fini ");

// TRÈS IMPORTANT : On attend 3 secondes complètes pour que l'eau s'arrête

// de couler et que l'utilisateur retire ses mains avant de mesurer à nouveau.

delay(3000);

else

digitalWrite(RELAY_PIN, HIGH); // Sécurité : maintient le relais éteint

[Link](0, 1);
[Link]("Attente main ");

delay(100); // Petite pause avant la prochaine boucle

Vous aimerez peut-être aussi