Enkla ultraljud avstånd Sensor modul Demo (4 / 4 steg)
Steg 4: Kända problem
Om du ser modellnumret på din ultraljud avstånd modul nedan, leta upp avsnittet Felsökning för den. Förhoppningsvis hittar du en lösning och vad problemet är.
1. U.S.-105 (inte borde vara svårt att hitta avsnittet felsökning på denna punkt)
2. DYP-ME007TX
U.S.-105 modul
U.S.-105 ultraljud avstånd modulen använder GPIO utgång på ECHO stift, kräver detta olika beräkningar att avgöra avstånd. Med GPIO utgång hålls ECHO PIN-koden inte hög när en våg skickas. Istället, när en reflektion från en våg är emot en viss spänning appliceras till ECHO stift. Den spänning som är proportionell till tid det tog att skicka och ta emot vågen.
Följande skiss har rapporterats att arbeta med den modulen (tack till medlem luigisf för denna info)
Kod för ultraljud avstånd modul US-015
unsigned int EchoPin = 2;
unsigned int TrigPin = 3;
osignerade långa Time_Echo_us = 0;
Len_mm_X100 = längd * 100
osignerade långa Len_mm_X100 = 0;
osignerade långa Len_Integer = 0; //
unsigned int Len_Fraction = 0;
void setup()
{
Serial.BEGIN(9600);
pinMode (EchoPin, indata);
pinMode (TrigPin, OUTPUT);
}
void loop()
{
digitalWrite (TrigPin, hög);
delayMicroseconds(50);
digitalWrite (TrigPin, låg);
Time_Echo_us = pulseIn (EchoPin, hög);
om ((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 ("nuvarande längd är:");
Serial.Print (Len_Integer, DEC);
Serial.Print(".");
IF(Len_Fraction < 10)
Serial.Print("0");
Serial.Print (Len_Fraction, DEC);
Serial.println("mm");
Delay(1000);
} / / End av skiss
Slutet US-105 felsökning ___
DYP-ME007TX
Följande kod har testats och fungerar med modulen DYP-ME007TX
DYP-ME007TX Arduino skiss
/ * LEDNINGAR INSTRUKTIONER
* 5V från Arduino till VCC på modul
* GNG från Arduino till GND på modul
* UT från modul till Digital stift 7 på Arduino
*/
#include
#define RXpin 7
#define TXpin 7
SoftwareSerial mySerial (RXpin, TXpin);
långa mili = 0;
byte mybuffer [4] = {0}.
byte bitpos = 0;
void setup()
{
Serial.BEGIN(9600);
mySerial.begin(9600);
}
void loop()
{
bitpos = 0;
samtidigt (mySerial.available())
{
om (bitpos < 4) {
mybuffer [bitpos ++] = mySerial.read();
}
annan semester.
}
mySerial.flush();
Mili = mybuffer [1] << 8 | mybuffer [2].
Serial.Print ("avstånd:");
Serial.Print(Mili / 25.4);
Serial.Print ("inches");
Serial.println();
Delay(500);
}