Om Max Sonar EZ0 och Arduino (3 / 3 steg)
Steg 3: Seriellt gränssnitt
Och vi kommer att ansluta D4 med BW, lämna den öppen eller hålla låga för seriell utgång på TX-utgång.
Utdata är en ASCII-huvudstad "R" som lika 0x52, följt av tre siffror ASCII-tecken som representerar ett intervall i tum upp till 255, följt av en vagn återvända (ASCII 13 eller 0x0D)
bilden visar logik Analyzer och utdata på den
kod:
Skrivet av: Mohannad Rawashdeh
http://www.Genotronex.com
genotronex
denna kod för att testa EZ0 Sonar sensor använder seriemetoden.
Ansluta Tx... D8
Ansluta Rx... D9
#include < SoftwareSerial.h >
SoftwareSerial mySerial (8, 9, true); RX, TX
int BW = 4;
char * buffert;
byte x;
char array [3].
int counter = 0;
void setup() {
sätta din installation kod här, om du vill köra en gång:
ställa in datahastigheten för SoftwareSerial port
Serial.BEGIN(9600);
mySerial.begin(9600);
pinMode(BW,OUTPUT);
digitalWrite(BW,LOW);
Delay(250);
Serial.println ("Calibrartion Cycle");
Delay(150);
}
void reading() {
mySerial.println(1);
samtidigt (mySerial.available())
{
x = mySerial.readBytes(buffer,1);
IF(*buffer==0x52) {
x = mySerial.readBytes(buffer,1);
Array [0] = * buffert;
x = mySerial.readBytes(buffer,1);
Array [1] = * buffert;
x = mySerial.readBytes(buffer,1);
Array [2] = * buffert;
}
}
delayMicroseconds(220);
}
void loop() {
sätta din huvudsakliga kod här, för att köra flera gånger:
Reading();
int Final_inch = (array [0]-48) * 100 + (array [1]-48) * 10 +(array[2]-48);
flyta Final_cm = Final_inch * 2,54;
Serial.Print(Final_inch);
Serial.println ("tum");
Serial.Print(Final_cm);
Serial.println ("cm");
Delay(200);
}