...
This sketch will read the FlightStatus.Armed
field from the flight controller and show the arming state on the RGB LED. Green for Disarmed, blue for Arming, red for Armed.
Curcuit:
...
Sketch:
Code Block | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
#include <SoftwareSerial.h> #include "FlightStatus.h" #include "LibrePilotSerial.h" SoftwareSerial mySerial(2, 3); // RX, TX LibrePilotSerial lps(&mySerial); int ledPinr = 9; int ledPing = 8; int ledPinb = 7; void setup() { // initialize serial monitor: Serial.begin(57600); //initialize LibrePilotSerial Object lps.serial->begin(57600); } void loop() { lps.request(FLIGHTSTATUS_OBJID); //request object //watch the telemetry stream for 200ms. //Store object if it is received and return true. If not, return false. boolean ok = lps.receive(FLIGHTSTATUS_OBJID, FlightStatusDataUnion.arr, 200); Serial.print(" Result fs: "); Serial.println(FlightStatusDataUnion.data.Armed); if(ok) { if(FlightStatusDataUnion.data.Armed == FLIGHTSTATUS_ARMED_DISARMED) { analogWrite(ledPinr, 0); analogWrite(ledPing, 255); analogWrite(ledPinb, 0); } else if (FlightStatusDataUnion.data.Armed == FLIGHTSTATUS_ARMED_ARMING) { analogWrite(ledPinr, 0); analogWrite(ledPing, 0); analogWrite(ledPinb, 255); } else if (FlightStatusDataUnion.data.Armed == FLIGHTSTATUS_ARMED_ARMED) { analogWrite(ledPinr, 255); analogWrite(ledPing, 0); analogWrite(ledPinb, 0); } } delay(500); } |
...