Stap 3: Servo lezing! Met signaal Cutoff!
Met behulp van pulseIn(), kunt u de tijd hoelang de pols coming out van uw ontvanger. Met behulp van de output van de Arduino Servo signalen, kon ik het kalibreren van de lezingen.
Hier is de code om te lezen van een signaal. Opmerking, 520 en 2370 zijn microseconde waarden die worden gebruikt voor het kalibreren van de lezingen. Ik gebruikte de uitvoer uit de Arduino Servo bibliotheek te kalibreren, hoeft, en het werkte boete. PWMpin is een bijdrage van de RC-ontvanger. 20000 is een microseconde waarde die wordt gebruikt als een time-out functie. Als de timeout-limiet is bereikt, weten we dat we niet signalen van de zender krijgen, en wij later cutoff de motoren kunt.
RCinput = pulseIn (PWMpin, hoog, 20000);
ServoVal = kaart (RCinput, 520, 2370, 0, 180);
na dat doen we sommige data-analyse! Opmerking, ThrottleServo is een uitgang waarop het ESC de ingang is aangesloten op een pin van de Arduino. Pin 13 is een uitgang gebruikt om aan te geven van een fout.
if(RCinput== 0) {/ / signaal een time-out!
digitalWrite (13, hoge); WAARSCHUWEN!
ThrottleServo.write(97); Ga naar neutrale gaspedaal positie
}
}
else {}
digitalWrite (13, laag);
ThrottleServo.write(ServoVal); Herhaal de gegevens van de truck ESC
Serial.Print ("PulseMicros"); Dit deel wordt gebruikt om te zuiveren van de waarden voor kalibratie
Serial.Print(RCinput);
Serial.Print ("ServoRead");
Serial.println(ServoVal);
}