Paso 4: Problemas conocidos
Si ves el número modelo de su módulo de distancia por ultrasonidos a continuación, busque la sección solución de problemas para él. Que encontrarás lo que es el problema y una solución.
1. US-105 (no debería ser difícil de encontrar en este punto la sección solución de problemas)
2. DYP-ME007TX
Módulo de US-105
El módulo de distancia ultrasonidos US-105 utiliza GPIO salida en el pin eco, esto requiere diferentes cálculos para determinar distancia. Con GPIO de salida el pin eco no se hace alta cuando se envía una onda. En cambio, cuando se recibe una reflexión de una onda una particular tensión al pin eco. Que la tensión es proporcional al tiempo tomó para enviar y recibir la onda.
El siguiente bosquejo se ha divulgado para trabajar con dicho módulo (gracias a luigisf miembros para esta información)
Código de distancia por ultrasonido módulo US-015
unsigned int EchoPin = 2;
unsigned int TrigPin = 3;
unsigned Time_Echo_us largo = 0;
Len_mm_X100 = longitud * 100
unsigned Len_mm_X100 largo = 0;
unsigned Len_Integer largo = 0; //
unsigned int Len_Fraction = 0;
void setup()
{
Serial.Begin(9600);
pinMode (EchoPin, entrada);
pinMode (TrigPin, salida);
}
void loop()
{
digitalWrite (TrigPin, alto);
delayMicroseconds(50);
digitalWrite (TrigPin, LOW);
Time_Echo_us = pulseIn (EchoPin, alto);
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 ("longitud del presente es:");
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 del bosquejo
___ Problemas final US-105
DYP-ME007TX
El siguiente código ha sido probado y funciona con el módulo de 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);}