Stap 4: Bekende problemen
Als u het modelnummer van uw ultrasoon afstand module hieronder ziet, ga naar de sectie over problemen oplossen voor het. Hopelijk vind je wat het probleem is en een oplossing.
1. U.S.-105 (moet niet moeilijk te vinden op dit punt de sectie over problemen oplossen)
2. DYP-ME007TX
U.S.-105 module
De U.S.-105 ultrasone afstand Module GPIO output op de ECHO-pin gebruikt, moet hiervoor verschillende berekeningen om afstand te bepalen. Met GPIO output is de ECHO-pin HIGH niet gesteld wanneer een golf wordt verzonden. In plaats daarvan, als een reflectie van een golf wordt ontvangen een bepaalde spanning wordt toegepast op de ECHO-pin. Deze spanning is evenredig aan de tijd nam het verzenden en ontvangen van de Golf.
De volgende sketch heeft gemeld om te werken met deze module (met dank aan de luigisf van de lidstaten voor deze info)
Code voor ultrasone afstand Module VS-015
unsigned int EchoPin = 2;
unsigned int TrigPin = 3;
unsigned long Time_Echo_us = 0;
Len_mm_X100 = lengte * 100
unsigned long Len_mm_X100 = 0;
unsigned long Len_Integer = 0; //
unsigned int Len_Fraction = 0;
VOID Setup
{
Serial.begin(9600);
pinMode (EchoPin, INPUT);
pinMode (TrigPin, uitvoer);
}
void loop
{
digitalWrite (TrigPin, hoge);
delayMicroseconds(50);
digitalWrite (TrigPin, laag);
Time_Echo_us = pulseIn (EchoPin, hoge);
Als ((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 ("huidige lengte is:");
Serial.Print (Len_Integer, DEC);
Serial.Print(".");
if(Len_Fraction < 10)
Serial.Print("0");
Serial.Print (Len_Fraction, DEC);
Serial.println("mm");
delay(1000);
} / / Einde van Sketch
Einde vs-105 probleemoplossing ___
DYP-ME007TX
De volgende code is getest en werkt met de 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);}