Code fontaine automatique pour chats

Bonjour, je viens demander de l'aide pour le code de ma fontaine a chat :slight_smile: .

Mon chat ne veut boire qu'au robinet :frowning: , raison pour laquelle je veux lui fabriquer une petite fontaine :stuck_out_tongue:

Comment cela fonctionne? le chat marche tranquillement, il passe devant le capteur qui active la petite fontaine (constitué d'une gamelle remplie d'eau avec la pompe immergé dedans et un tuyau qui fait un petit jet d'eau qui retombe dans la gamelle) ce qui lui permet de boire.

La fontaine est constitué de :

  • 1 Arduino Nano
  • 1 Capteur ultrasons HC-SR04
  • 1 Relais HL-25S V1.0
  • 1 Pompe d'aquarium USB 5v Chinoise

J'ai commencĂ© Ă  Ă©crire un code pour l’Arduino

voici mon code :

/* Constantes pour les broches */
const byte TRIGGER_PIN = 2; // Broche TRIGGER
const byte ECHO_PIN = 3;    // Broche ECHO
const byte LED_PIN = 7;    // Broche LED

/* Constantes pour le timeout */
const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m Ă  340m/s

/* Vitesse du son dans l'air en mm/us */
const float SOUND_SPEED = 340.0 / 1000;
 
/** Fonction setup() */
void setup() {
   
/* Initialise les broches */
  pinMode(LED_PIN, OUTPUT);
  pinMode(TRIGGER_PIN, OUTPUT);
  digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit ĂȘtre Ă  LOW au repos
  pinMode(ECHO_PIN, INPUT);
}
 
/** Fonction loop() */
void loop() {
  
  /* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10”s sur la broche TRIGGER */
  digitalWrite(TRIGGER_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIGGER_PIN, LOW);
  
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */
  long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT);
   
  /* 3. Calcul la distance à partir du temps mesuré */
  float distance_mm = measure / 2.0 * SOUND_SPEED;
   
 if (distance_mm < 250) {
 /* ici « 250 » définis le fait qu'on ne signalera
 pas l'objet avant qu'il soit Ă  25cm du capteur */

 digitalWrite(LED_PIN,HIGH);
   
  /* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */
  delay(500);
}
}

J'aimerai que la fontaine s'allume au passage du chat (20-30cm du capteur), qu'elle reste allumé 2 minutes puis se mette en sécurité 5 min avant de pouvoir refaire couler de l'eau

Seulement quant je restart l’Arduino le relais s'enclenche puis se coupe lorsque je passe la main devant le capteur :relaxed:

Je commence Ă  peine a programmer sur Arduino, il me faudrait un coup de main

merci beaucoup

bonjour,
pour les tempos, fonctions millis()

pour le relais, il faut mettre le hc en "LOW" une 10aine de secondes pour qu'il se calibre et mettre le relais en LOW ou HIGH suivant son branchement.

détection ===> tempo_1 = millis()
si millis() - tempo_1 < 2mn ===> relais ON
si millis() - tempo_1 > 2mn ===> tempo_2 = millis()
etc.....