A quoi ça sert:
Détecter une distance
Alimentation : 5V
Consommation : < 2ma
angle optimal : 15°
Distance : 2cm <> 500 cm
Diagramme de séquence
Une courte impulsion ultrasonore est transmise à l'instant 0, réfléchie par un objet. Le capteur reçoit ce signal et le convertit en un signal électrique. La prochaine impulsion peut être transmis lorsque l'écho disparait
Cette période est appelée période de cycle. La période du cycle recommandée doit pas être inférieure à 50 ms. Si une impulsion de déclenchement de la largeur 10μs est envoyé à la broche de signal, le module à ultrasons va afficher huit signal ultrasonore de 40 kHz et de détecter l'écho de retour. La distance mesurée est proportionnelle à la largeur d'impulsion d'écho
Si aucun obstacle n'est détecté, la broche de sortie donne un signal de niveau élevé ms 38 ms.
Oui si ont veux
donc en gros voici 2 programmes qui font tourner le bordel:
Le premier avec la librairie arduino
Code : Tout sélectionner
const int trigPin = 2;
const int echoPin = 4;
void setup() {
// initialize serial communication:
Serial.begin(9600);
}
void loop()
{
// Etablir variables pour la duree de la commande ping,
// et le résultat de la distance en pouces et en centimetres:
long duration, inches, cm;
// Le capteur est déclenche par une impulsion haute d'au moins 10 microsecondes.
// Donne une impulsion courte basse avant pour assurer une impulsion HIGH propre:
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Lire le signal de la sonde: une impulsion HIGH dont
// Durée est le temps (en microsecondes) à partir de l'envoi
// Du ping à la reception de son écho sur un objet.
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
// convertir le temps en une distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
//Serial.print(inches);//Serial.print("in, ");
Serial.print(cm);Serial.print("cm");
Serial.println();
delay(100);
}
long microsecondsToInches(long microseconds)
{
// Selon la fiche technique du Parallax pour le PING))), il ya
// 73.746 microsecondes par pouce (c. voyages sonores au 1130 pieds par
// Seconde). Cela donne la distance parcourue par la commande ping, sortant
// Et retour, de sorte que l'on divise par 2 pour obtenir la distance de l'obstacle.
// Voir: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
// La vitesse du son est de 340 m/s ou 29 microsecondes par centimètre.
// Le ping voyage aller et retour, de sorte à trouver la distance de l'
// Object on prend la moitié de la distance parcourue.
return microseconds / 29 / 2;
}
Code : Tout sélectionner
34cm
35cm
35cm
39cm
36cm
34cm
33cm
33cm
32cm
31cm
30cm
29cm
27cm
27cm
25cm
25cm
24cm
23cm
22cm
21cm
20cm
19cm
18cm
18cm
17cm
17cm
16cm
15cm
15cm
15cm
15cm
14cm
13cm
13cm
13cm
12cm
12cm
12cm
11cm
10cm
10cm
et un second qui utilise une autre librairie et donc plus précis et nécessitante moins de code
et il vous faut cette librairie :
Ultrasonic-1.1.2
Code : Tout sélectionner
/*
* HCSR04Ultrasonic
*/
#include <Ultrasonic.h>
#define TRIGGER_PIN 2
#define ECHO_PIN 4
Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
void setup()
{
Serial.begin(9600);
}
void loop()
{
float cmMsec, inMsec;
long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
//inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
//Serial.print("MS: "); Serial.print(microsec);
Serial.print("Centimetres: "); Serial.println(cmMsec);
//Serial.print(", IN: "); Serial.println(inMsec);
delay(1000);
}
Code : Tout sélectionner
Centimetres: 10.53
Centimetres: 10.53
Centimetres: 11.04
Centimetres: 14.21
Centimetres: 16.83
Centimetres: 19.97
Centimetres: 21.96
Centimetres: 22.54
Centimetres: 24.45
Centimetres: 25.50
Centimetres: 26.72
Centimetres: 26.17
Centimetres: 27.10
Centimetres: 34.48
Centimetres: 43.48
Centimetres: 55.39
Centimetres: 56.85
Centimetres: 56.51
Centimetres: 56.51
Centimetres: 57.43
Centimetres: 46.86
Centimetres: 31.57
Centimetres: 21.01
Centimetres: 6.82
Centimetres: 2.99
Centimetres: 2.86
Centimetres: 2.99
Centimetres: 2.99
Centimetres: 2.99
Centimetres: 2.86