Remote control (15 / 17 steg)
Steg 15: Koden - reciver
Mottagaren koden bara ta emot data och värden till servon, esc eller pwm th drivrutin, ljus och grejer.
Här gjorde jag en noSignal () för att skydda bilen i fall om fjärrkontrollen slutar eller får slut på batteri, eller bara förlora signalen. NoSignal() sätta styra rakt och bryter det bil och också börja blinkande strålkastare. noSignal() ange när tiden från det senaste värdet fått är större då 800 millisekunder.
void loop() {
reciveData();
timeRcv = millis() - lastTimeRcv;
Serial.println(timeRcv);
om (timeRcv < 1000) {
RPM = (gas/10) * 100; /////
digitalWrite (strålkastare, ljus);
stearServo.write(stear);
breakServo.write(break_);
IF(reverse == 0) {
analogWrite (thForward, gas);
analogWrite (thReverse, 0);
}
annars om (omvänd == 1) {
analogWrite (thReverse, gas);
analogWrite (thForward, 0);
}
}
annat {
noSignal();
Serial.println(timeRcv);
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void noSignal() {
analogWrite (thForward, 0);
analogWrite (thReverse, 0);
breakServo.write(65); servo val--full bryta
stearServo.write(108); servo val--center
Serial.Print("NoSignal");
osignerade långa currentMillis = millis();
om (currentMillis - previousMillis > = intervall) {
previousMillis = currentMillis;
om (ledState == 0) {
ledState = 1;
}
annat {
ledState = 0;
}
digitalWrite (strålkastare, ledState);
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void reciveData() {
medan (Serial.available() > 0) {
int x = Serial.parseInt();
IF(x > 0) {gas = x-1;}
x = Serial.parseInt();
om (x > 0) {break_ = x-1;}
x = Serial.parseInt();
om (x > 0) {stear = x-1;}
x = Serial.parseInt();
om (x > 0) {omvänd = x-1;}
x = Serial.parseInt();
om (x > 0) {ljus = x-1;}
Delay(5);
om (x == (ljus + 1)) {
Serial.println ("slut om");
för (; Serial.available() ;){
char y = Serial.read();
}
}
Delay(5);
fick ta emot = 1;
lastTimeRcv = millis();
}
om (recept) {
sendData();
}
}