Stap 3: Seriële Interface
En wij zullen verbinden D4 met BW, open te laten of laag voor uitgang voor seriële te houden op de TX-uitgang.
De output is een ASCII-hoofdstad "R", welke gelijke 0x52, gevolgd door drie ASCII-teken cijfers vertegenwoordigen het bereik in inch maximaal 255, gevolgd door een vervoer terug (ASCII 13 of 0x0D)
de afbeelding Toon Logic Analyzer en de uitvoer op het
code:
geschreven door: Mohannad Rawashdeh
http://www.Genotronex.com
genotronex
Deze code voor het testen van EZ0 Sonar sensor seriële methode.
Verbinding Tx... D8
Verbinding Rx... D9
#include < SoftwareSerial.h >
SoftwareSerial mySerial (8, 9, waar); RX, TX
int BW = 4;
char * buffer;
byte x;
char array [3];
int counter = 0;
VOID Setup {}
Zet uw setup-code hier, om het eenmalig uit te voeren:
Stel de gegevenssnelheid voor de SoftwareSerial-poort
Serial.begin(9600);
mySerial.begin(9600);
pinMode(BW,OUTPUT);
digitalWrite(BW,LOW);
delay(250);
Serial.println ("Calibrartion cyclus");
delay(150);
}
ongeldig reading() {}
mySerial.println(1);
terwijl (mySerial.available())
{
x = mySerial.readBytes(buffer,1);
if(*buffer==0x52) {}
x = mySerial.readBytes(buffer,1);
matrix [0] = * buffer;
x = mySerial.readBytes(buffer,1);
array [1] = * buffer;
x = mySerial.readBytes(buffer,1);
array [2] = * buffer;
}
}
delayMicroseconds(220);
}
void loop {}
Zet uw belangrijkste code hier, om het herhaaldelijk uitvoeren:
Reading();
int. Final_inch = (array [0]-48) * 100 + (array [1]-48) * 10 +(array[2]-48);
zweven Final_cm = Final_inch * 2,54;
Serial.Print(Final_inch);
Serial.println ("Inch");
Serial.Print(Final_cm);
Serial.println ("cm");
delay(200);
}