Outils pour utilisateurs

Outils du site


arduino:plaque_grove_du_lycee_valin:comment_utiliser_un_module_a_ultrasons_grove

Comment utiliser un module à ultrasons HC-SR04 avec la base shield Grove ?

Le montage

Le module à ultrasons HC-SR04 est relié à la broche D2 comme indiqué sur le schéma ci-dessous.

Le module à ultrasons branché sur la broche D2 utilise en fait les broches 2 et 3. Il ne faut donc rien brancher sur D3.

Le code

  • Avec les mesures envoyées sur la liaison série

Cliquez pour afficher le code

Cliquez pour masquer le code

// Télémètre d'après le blog d'Eskimon
 
int vitesse = 340 ;  // vitesse du son 340 m/s
int Trig = 3;  // Déclencheur sur la broche 3
int Echo = 2;  // Réception sur la broche 2
 
void setup() {
    pinMode(Trig, OUTPUT);    // initialisation de la broche "Trig" comme étant une sortie
    pinMode(Echo, INPUT);     // initialisation de la broche "Echo" comme étant une entrée
 
    digitalWrite(Trig, LOW);  // Mettre "Trig" niveau bas
 
    Serial.begin(9600);
}
void loop()
{
 
   digitalWrite(Trig, HIGH);   // Un état haut de 10 microsecondes est mis sur la broche "Trig"
   delayMicroseconds(10);      // on attend 10 µs
   digitalWrite(Trig, LOW);    // On remet à l’état bas la broche Trig  
   unsigned long duree = pulseIn(Echo, HIGH);   // Lecture de la durée d’état haut sur la broche "Echo"
 
   if(duree > 30000)   // si la durée est supérieure à 30ms, l'onde est perdue
   {  
      Serial.print("Onde perdue, mesure échouée !");  
   }
   else
   {
      // On calcule la distance
 
      duree = duree/2;   // On divise cette durée par deux pour n'avoir qu'un trajet
      float temps = duree/1000000.0; //on met en secondes
      float distance = vitesse*temps; //on multiplie par la vitesse, d=v*t
 
      // On affiche la distance
 
      Serial.print("Distance = ");
      Serial.print(distance); 
      Serial.println(" m");
   }
 
   // petite pause
   delay(250);
}



  • Avec un affichage des mesures sur l'écran LCD

Cliquez pour afficher le code

Cliquez pour masquer le code

// Télémètre d'après le blog d'Eskimon
 
int vitesse = 340 ;  // vitesse du son 340 m/s
int Trig = 3;  // Déclencheur sur la broche 3
int Echo = 2;  // Réception sur la broche 2
 
/* Pour l'écran LCD  */
#include <Wire.h>  // inclure la bibliothèque permettant la communication par le protocole I2C
#include "rgb_lcd.h" // inclure la bibliothèque pour l'écran LCD
rgb_lcd lcd; // création d'un objet lcd
 
void setup() {
  pinMode(Trig, OUTPUT);    // initialisation de la broche "Trig" comme étant une sortie
  pinMode(Echo, INPUT);     // initialisation de la broche "Echo" comme étant une entrée
 
  digitalWrite(Trig, LOW);  // Mettre "Trig" niveau bas
 
  lcd.begin(16, 2);   // configurer le nombre de colonnes et de lignes de l'écran LCD
}
void loop()
{
 
  digitalWrite(Trig, HIGH);   // Un état haut de 10 microsecondes est mis sur la broche "Trig"
  delayMicroseconds(10);      // on attend 10 µs
  digitalWrite(Trig, LOW);    // On remet à l’état bas la broche Trig
  unsigned long duree = pulseIn(Echo, HIGH);   // Lecture de la durée d’état haut sur la broche "Echo"
  lcd.clear();   // effacer l'écran
 
  if (duree > 30000)  // si la durée est supérieure à 30ms, l'onde est perdue
  {
    lcd.setCursor(0, 0);  // mettre le curseur à la première colonne, première ligne
    lcd.print("Onde perdue !");
  }
  else
  {
    // On calcule la distance
 
    duree = duree / 2; // On divise cette durée par deux pour n'avoir qu'un trajet
    float temps = duree / 1000000.0; //on met en secondes
    float distance = vitesse * temps; //on multiplie par la vitesse, d=v*t
 
    // On affiche la distance
    lcd.setCursor(0, 0);  // mettre le curseur à la première colonne, première ligne
    lcd.print("D = ");
    lcd.print(distance);
    lcd.print(" m");
  }
 
  // petite pause
  delay(250);
}

Statistiques du site

  • Cette page a été consultée par 1 visiteurs aujourd'hui.
  • Cette page a été consultée par 355 visiteurs depuis le 17/04/2024.
arduino/plaque_grove_du_lycee_valin/comment_utiliser_un_module_a_ultrasons_grove.txt · Dernière modification : 17/04/2024 18:08 de Stéphane LAURENT

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki