Projet Ultrason HC-SR04

Bonjour à tous.

Je suis novice et j'ai besoin d'un bon coup de main.
J'ai trouvé sur ce programme sur le web, fait le câblage et tout fonctionne parfaitement.

Avec ce montage je souhaite stocker la mesure à la mise sous tension du circuit, mesurer la distance parcourue après une minute, et afficher la distance parcourue. ex: 5 mm/mn.

C'est un projet professionnel et votre aide est vraiment la bienvenue. :slight_smile: :slight_smile: :slight_smile:
Voici e programme.

#include "LiquidCrystal.h"
#define VITESSE 340

// VÉRIFIEZ AVEC VOS PROPRES BROCHES
LiquidCrystal lcd(6,7,2,3,4,5); //liaison 4 bits de données
const int USTrig = 8; // Déclencheur sur la broche 8
const int USEcho = 9; // Réception sur la broche 9

void setup() {
   lcd.begin(2, 16); // Initialisation de l’écran (2 lignes 16 caractères pour ma part)

   pinMode(USTrig, OUTPUT);
   pinMode(USEcho, INPUT);

   lcd.print("-+ START +-");
   delay(5000); 
}

void loop() {  
   // 1. Un état haut de 10 microsecondes est mis sur la broche "Trig"
  digitalWrite(USTrig, HIGH);
  delayMicroseconds(10); //on attend 10 µs
  // 2. On remet à l'état bas la broche Trig
  digitalWrite(USTrig, LOW);

  // 3. On lit la durée d'état haut sur la broche "Echo"
  unsigned long duree = pulseIn(USEcho, HIGH);

  if(duree > 30000)
  {
     //si la durée est supérieure à 30ms, l'onde est perdue
     lcd.clear();
     lcd.home(); // Replace le curseur en haut à gauche
     lcd.print("Onde perdue :(");
     lcd.setCursor(0,1);
     lcd.print("Mesure echouee !");
  }
  else
  {
     // 4. On divise cette durée par deux pour n'avoir qu'un trajet
     duree = duree/2;

     // 5. On calcul la distance avec la formule d=v*t
     unsigned int distance = duree*(VITESSE/1000.0); //on multiplie par la vitesse, d=t*v
     
     // 6. On affiche !
     lcd.clear();
     lcd.home(); // Replace le curseur en haut à gauche
     char message[16] = "";
     sprintf(message, " Dist : %4d mm", distance);
     lcd.print(message);
     sprintf(message, "Temps : %4d us", duree);
     lcd.setCursor(0,1);
     lcd.print(message);
  }
  delay(800); // Petite pause
   }

Cette rubrique est réservée aux "Réalisations et Projets Finis".
STP utilise le lien "Report to moderator" pour demander au modo de déplacer ton message dans le forum principal.

Si tu veux avoir des réponses, code entre balises STP :
https://forum.arduino.cc/index.php?topic=315372.msg4034761#msg4034761