3 Nota: rovedere i PWM per come calcolano le pause:
4 non possono schendere sotto a 1ms
8 enum states_available { // Stati della FMS
9 idle, // Throttle a zero
13 states_available state ;
15 // Due LED con lampeggio alternato:
16 Lampeggiatore right = 3;
17 Lampeggiatore left = 5;
20 const byte thrPin = A3;
31 left.Invert() ; // Parte da stato invertito rispetto al default
32 pinMode(rtail, OUTPUT);
33 pinMode(ltail, OUTPUT);
34 pinMode(thrPin, INPUT);
35 // Warning: serial breaks PWM
36 // Serial.begin(9600);
38 randomSeed(analogRead(0));
43 thrIn = pulseIn(thrPin, HIGH, 25000);
44 thr = constrain(map(thrIn, 983, 2000, 0, 255), 0, 255) ;
45 // Inserire necro delay
46 delay(10); // Se si abilita il serial debug
52 } else if ( thr > 245 ) {
67 // Due LED con lampeggio alternato:
68 right.Blink(1120 - 4 * thr );
69 left.Blink(1120 - 4 * thr );
70 analogWrite(rtail, thr);
71 analogWrite(ltail, thr);
75 // Due LED con lampeggio alternato:
76 right.Blink(1120 - 4 * thr );
77 left.Blink(1120 - 4 * thr );
78 digitalWrite(rtail, !digitalRead(rtail));
79 digitalWrite(ltail, !digitalRead(ltail));
80 delay(random(20, 100));
85 // Serial.println(thrIn);
86 // Serial.print("\t thr:");
88 // Serial.print("\t state:");
89 // Serial.println(state);