Étape 4: Problèmes connus
Si vous voyez le numéro de modèle de votre module de Distance à ultrasons ci-dessous, repérez la section dépannage pour elle. J’espère que vous trouverez ce qui est le problème et une solution.
1. US-105 (ne devrait pas être difficile de trouver la section de dépannage à ce stade)
2. DYP-ME007TX
Module de US-105
Le Module de Distance à ultrasons US-105 utilise la sortie GPIO sur la broche de ECHO, cela nécessite des calculs différents pour déterminer la distance. Avec sortie GPIO la broche ECHO ne tient pas haut lorsqu’une vague est envoyée. Au lieu de cela, quand une réflexion de l’onde est reçue une tension particulière est appliquée à la broche d’ECHO. Cette tension est proportionnelle à la fois, il a fallu pour envoyer et recevoir de la vague.
L’esquisse suivante a été signalée à travailler avec ce module (Merci à luigisf membre pour cette info)
Code pour Ultrasonic Distance Module US-015
unsigned int EchoPin = 2 ;
unsigned int TrigPin = 3 ;
unsigned long Time_Echo_us = 0 ;
Len_mm_X100 = longueur * 100
unsigned long Len_mm_X100 = 0 ;
unsigned long Len_Integer = 0 ; //
unsigned int Len_Fraction = 0 ;
void setup()
{
Serial.Begin(9600) ;
pinMode (entrée, EchoPin) ;
pinMode (TrigPin, sortie) ;
}
void loop()
{
digitalWrite (TrigPin, élevé) ;
delayMicroseconds(50) ;
digitalWrite (TrigPin, basse) ;
Time_Echo_us = pulseIn (EchoPin, élevé) ;
Si ((Time_Echo_us < 60000) & & (Time_Echo_us > 1))
{
Len_mm_X100 = (Time_Echo_us * 34) / 2 ;
Len_Integer = Len_mm_X100/100 ;
Len_Fraction = Len_mm_X100 % 100 ;
Serial.Print ("longueur actuelle est:") ;
Serial.Print (Len_Integer, DEC) ;
Serial.Print(".") ;
if(Len_Fraction < 10)
Serial.Print("0") ;
Serial.Print (Len_Fraction, DEC) ;
Serial.println("mm") ;
Delay(1000) ;
} / / Fin du Sketch
Fin US-105 dépannage ___
DYP-ME007TX
Le code suivant a été testé et fonctionne avec le module DYP-ME007TX
// DYP-ME007TX Arduino Sketch /* WIRING INSTRUCTIONS* 5V from Arduino to VCC on module* GNG from Arduino to GND on module* OUT from module to Digital Pin 7 on Arduino*/ #include #define RXpin 7#define TXpin 7SoftwareSerial mySerial(RXpin, TXpin);long mili = 0;byte mybuffer[4] = {0};byte bitpos = 0;void setup(){ Serial.begin(9600); mySerial.begin(9600);}void loop(){ bitpos = 0; while (mySerial.available()) { if (bitpos < 4) { mybuffer[bitpos++] = mySerial.read(); } else break; } mySerial.flush(); mili = mybuffer[1] << 8 | mybuffer[2]; Serial.print("Distance: "); Serial.print(mili / 25.4); Serial.print (" inches"); Serial.println(); delay(500);}