
NexGen: Landing Gear Subsystem
Posted by phoenixcomm
This subsystem is part of the Pilot Controls (node id 100) consisting of the following subsystems. Inter-subsystem is handled by CAN.
- Side Stick
- Throttle
- Landing Gear Lever lamps and sensors
- Rudder Pedals with differential braking.
The subsystem consists of the following:
- Landing Gear Control Lever (CANid: 1175)
- 3 Red Indicators (CANid: 1400, 1, 2 )
- 3 Green Indicators (CANid: 1403, 4, 5)
- WOW, Weight on Wheels, (CANid: 1176) this sensor, prevents Landing Gear retraction while on the ground. See the movie "No Highway in the Sky" about 1hr in.
For WOW to be TRUE all the sensors have to agree. WOW on the main wheels is responsible for moving the front canard down, until there is weight on the nose wheel at which time the canard goes to 90 degrees to act as a speed brake. as well as enabling nose wheel steering.
- Gear Down and Locked sensor (CANid: 1406, 07, 08)
- Gear Up and Locked sensor. (CANid: 1409, 9810, 11 )
Aircraft have 3 wheels Left, Nose, Right. Each pair of Red/Green Indicator shows the status of each wheel:
- RED SOLID, Gear UP, and Locked.
- RED BLINKING:
- Landing Gear Lever UP selected and gear not up and locked (gear retraction)
- Landing Gear Lever DOWN selected disagrees with landing gear not down and locked (gear extension)
- GREEN SOLID, Gear Down, and Locked
Landing Gear Lever
So to recap that's wires, 13 wires plus grounds. Since I only have two contacts, (UP & DOWN) on the Landing Gear Lever which is not used very much, I can catch them with an interrupt by putting a 2-input Or Gate followed by Schmitt Trigger connected to the Arduino Mega pins 20, 21. using the rising mode. You have to keep in mind that the switch once in the UP or Down position does not move, except in takeoff and landing, therefore the interrupt is detected on the rising edges.
UPDATE 1: To understand the logic behind my RED lamps which can be solid on or blinking at about 1 Hz, I have included a schematic for you to wonder about.
UPDATE 2: I have decided NOT to try and use the timers instead I will just use a lowly NE555. Its output is 1Hz with a 50% duty cycle.
// The Arduino Mega has 6 interrupt pins 2, 3, 18, 19, 20, and 21
Arduino pins and their mnemonic:
20 LGLUP attachInterrupt( digitalPinToInterrupt(LGLUP), ISR20, RISING );
21 LGLDOWN attachInterrupt( digitalPinToInterrupt(LGLDOWN), ISR21, RISING );
int LGLstatus :: = TRUE == 1 == UP; FALSE == 0 == DOWN; LGLstatus is set by ISR20 && ISR21
pins 22, 23, 24 are SOLID ON
22 BLR
23 BRL
24 BLC
// pins 25, 26, 27 are BLINK Enable
25 BLR_EN
26 BLL_EN
27 BLC_EN
// RED LAMP
28 GRR
29 GRL
30 GRC
// GREEN LAMPS
31 GGR
32 GGL
33 GGC
//CANbus -- SPI interface
50 MISO
51 MOSI
52 SCLK
53 SS
19 CANint. attachInterrupt( digitalPinToInterrupt(CANint), ISR19, RISING );
OPTIONAL: I possibly can include 3 analog input to read the Rudder Pedals (one channel) and Right and Left Toe brakes. These are just potentiometers.
A1 Rudder position
A2 BRPR
A3 BRPL
**Please Note that CANids of 1300 to 1499 are not reserved.
Comments