Ich bin neu hier und habe noch keine grosse Erfahrung mit diesem Distanz-Sensor.
So habe ich das Beispielprogramm vom Wiki dieses Senorbauers genommen mit der Meinung, dass die gemessene Distanz im "cm" ausgegeben werden sollten. Leider kommen da komische Zeichen heraus HEX? Der Code sieht wie folgt aus:
#include <SoftwareSerial.h> //fuer Ultraschall-Sensor
SoftwareSerial mySerial(3,2); //RX, TX (receive, transmit) empfangen, senden
unsigned char data[4]={};
float distance;
void setup()
{
Serial.begin(57600);
mySerial.begin(9600);
}
void loop()
{
do{
for(int i=0;i<4;i++)
{
data[i]=mySerial.read();
}
}while(mySerial.read()==0xff);
mySerial.flush();
if(data[0]==0xff)
{
int sum;
sum=(data[0]+data[1]+data[2])&0x00FF;
if(sum==data[3])
{
distance=(data[1]<<8)+data[2];
if(distance>30)
{
Serial.print("distance=");
Serial.print(distance/10);
Serial.println("cm");
}else
{
Serial.println("Below the lower limit");
}
}else Serial.println("ERROR");
}
delay(100);
}
Die Ausgabe sieht dann wie folgt aus:
08:26:13.267 -> @G⸮H
08:26:16.580 -> G⸮G⸮G⸮H
08:26:20.981 -> H
08:26:22.064 -> G⸮H
08:26:24.262 -> G ⸮G⸮G⸮G⸮H
08:26:29.775 -> @F⸮F⸮G⸮G⸮@H
08:26:37.480 -> F7⸮G⸮G ⸮
Ich hätte mir hier erhofft, dass die Angaben in cm erfolgen. Kann mir hier jemand mitteilen, was ich hier falsch mache?
Vielen Dank, Martin