Étape 3: Lecture de Servo ! Avec coupure de Signal !
Vous utilisez pulseIn(), vous pouvez chronométrer combien de temps l’impulsion qui sortent de votre récepteur. Utilisation de la sortie de signaux de Servo de l’Arduino, j’ai pu calibrer les lectures.
Voici le code pour lire un signal. Remarque, 520 et 2370 sont des valeurs de microseconde qui sont utilisés pour calibrer les lectures. J’ai utilisé la sortie elle puise de l’Arduino Servo pour l’étalonner, et il a bien fonctionné. PWMpin est une entrée à partir du récepteur RC. 20000 est une valeur de microseconde qui est utilisée comme élément timeout. Si le délai d’attente est atteint, nous savons que nous ne sommes pas obtenir des signaux de l’émetteur, et nous pouvons plus tard utiliser pour coupure les moteurs.
RCinput = pulseIn (PWMpin, haute, 20000) ;
ServoVal = carte (RCinput, 520, 2370, 0, 180) ;
Après cela, nous faisons une analyse de données ! Noter ThrottleServo y a une sortie sur laquelle entrée du ces est reliée à une tige de l’Arduino. PIN 13 est sortie pour indiquer une erreur.
if(RCinput== 0) {/ / Signal a expiré !
digitalWrite (13, HIGH) ; ATTIRER L’ATTENTION !
ThrottleServo.write(97) ; Aller à la position neutre gaz
}
}
else {}
digitalWrite (13, faible) ;
ThrottleServo.write(ServoVal) ; Répéter les données à ESC du camion
Serial.Print ("PulseMicros") ; Cette partie est utilisée pour déboguer les valeurs d’étalonnage
Serial.Print(RCinput) ;
Serial.Print ("ServoRead") ;
Serial.println(ServoVal) ;
}