3 Versione con solo il throttle come input via pulseIn.
5 Aggiunta striscia RGB sotto.
11 enum states_available { // Stati della FMS
12 idle, // Throttle a zero
16 states_available state ;
18 // Due LED con lampeggio alternato:
19 Lampeggiatore right = 3; // Lampeggiatori superiori a lato fusoliera
20 Lampeggiatore left = 5;
21 const byte rtail = 6; // Luci del motore posteriore
23 const byte thrPin = A3;
28 Pwm rwhite = 3; // PWM sui lampeggiatori
30 Pwm rtp = 6 ; // PWM sulla coda
33 RGBLed rgb(7,8,4,255);
36 left.Invert() ; // Parte da stato invertito rispetto al default
37 pinMode(rtail, OUTPUT);
38 pinMode(ltail, OUTPUT);
39 pinMode(thrPin, INPUT);
40 // Warning: serial breaks PWM
41 // Serial.begin(9600);
43 randomSeed(analogRead(0));
44 // Test iniziale dei LED per verifica contatti:
56 thrIn = pulseIn(thrPin, HIGH, 25000);
57 thr = constrain(map(thrIn, 983, 2000, 0, 255), 0, 255) ;
58 delay(10); // Se si abilita il serial debug
64 } else if ( thr > 245 ) {
74 rwhite.UD(2000); // Utilizza il coseno
75 lwhite.UD(2000); // Bisognerebbe evitare di calcolarli 4 volte uguale
83 // Due LED con lampeggio alternato:
84 right.Blink(1120 - 4 * thr );
85 left.Blink(1120 - 4 * thr );
86 analogWrite(rtail, lum(thr));
87 analogWrite(ltail, lum(thr));
92 pausa = random(30, 125);
93 // Due LED con lampeggio alternato:
94 right.Blink(1120 - 4 * thr );
95 digitalWrite(ltail, !digitalRead(ltail));
96 digitalWrite(3, !digitalRead(3));
99 left.Blink(1120 - 4 * thr );
100 digitalWrite(rtail, !digitalRead(rtail));
101 digitalWrite(5, !digitalRead(5));
107 // Serial.println(thrIn);
108 // Serial.print("\t thr:");
109 // Serial.print(thr);
110 // Serial.print("\t state:");
111 // Serial.println(state);