Remote control (14 / 17 steg)
Steg 14: Koden - skicka/Reciveing seriella data
Första gången jag tänkte skicka en stor sträng, något som "start-th110br55st80rev1light0-slut" och i den andra aduino att avkoda och kontrollera om strängen är corect som, om den börjar med "start", slutar med "slut" och om det haves "th", "st"... inuti. Men jag får lata och jag använda bara Serial.parseInt().Jag skicka den normala, med serial.print() och efter att skicka ett värde jag skicka en "," (koma). De saker du behöver skicka från avlägsen är: spjäll, bryta, styra, omvänd, ljus. Och du behöver få från bilen: rpm, logik batteri, motor batteri
void reciveData() {
om (Serial.available() > 0) {
int x = Serial.parseInt();
om (x > 1) {(car_bat_motor = x/100.00)-1.00;}
x = Serial.parseInt();
om (x > 1) {(car_bat_controler = x/100.00)-1.00;}
x = Serial.parseInt();
om (x > 1) {RPM = x-1;}
om (x == (RPM + 1)) {
för (; Serial.available() ;){
char y = Serial.read();
}
}
fick ta emot = 1;
}
om (recept) {
sendData();
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void sendData() {
Serial.Print("t");
Serial.Print(Throttle+1);
Serial.Print("b");
Serial.Print(break_+1);
Serial.Print("s");
Serial.Print(stear+1);
Serial.Print("r");
Serial.Print(EEPROMReadInt(76)+1);
Serial.Print("l");
Serial.Print(EEPROMReadInt(72)+1);
Serial.println("End");
fick ta emot = 0;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Jag satte sendData() i kod och även i mottagaren koden en gång i void setup() och sedan i slingan skicka data endast om det får först. Så här om du har bil mottagare makt är av och remote är på, fjärrkontrollen inte kommer skicka data förrän du slår på mottagaren.
Också när skicka float jag föredrar att skicka den som en int (7,22 v jag skicka den så här Serial.print(voltage *100)) och när jag får det jag dela det till 100. Och när jag skickar det jag lägga 1 (+ 1) så här gör jag inte skickade "0" så parseInt() kommer inte att bli galen, när jag får det jag subtrahera 1 tillbaka: P (-1).