8 // 2 LED ai lati con lampeggio alternato
9 // 2 LED alle estremita ali
12 2 interrupts per throttle e alettone
18 * Vedere la calibrazione automatica
19 * Min e max a 1000 - 2000 per alettone
26 // Instanziamo un LED fuori dal loop
31 // Variabili per interrupt 0 si PIN 2: Throttle
32 volatile unsigned int chValue2 = 1500; // Valore computato
33 volatile unsigned int chStart2 = 1500; // Inizio rilevamento
35 // Variabili per interrupt 1 su PIN 3: Ailerons
36 volatile unsigned int chValue3 = 1500; // Valore computato
37 volatile unsigned int chStart3 = 1500; // Inizio rilevamento
40 // Variabili per autocalibrazione 0
41 const byte chPin2 = 2; // PIN per la calibrazione
42 int mid_point2 = 1000;
44 // Variabili per autocalibrazione 1
45 const byte chPin3 = 3; // PIN per la calibrazione
46 int mid_point3 = 1560;
51 // HI -> LOW --> LOW -> HI
52 // per avere 2 LED che lampeggiano alternativamente
53 // Funzione relativa a calibrazione con pulsein:
54 //mid_point2 = calibraTrim(chPin2) ; // Calibrazione del TRIM attivo sul canale
55 //mid_point3 = calibraTrim(chPin3) ; // Calibrazione del TRIM attivo sul canale
56 attachInterrupt(0, chRise2, RISING); // PIN 2 su 328p / 168
57 attachInterrupt(1, chRise3, RISING); // PIN 3 su 328p / 168
76 Serial.print("PIN2: ");
77 Serial.print(chValue2);
78 Serial.print(" -base: ");
79 Serial.print(mid_point2);
81 Serial.print(" |-| PIN3:");
82 Serial.print(chValue3);
83 Serial.print(" -base: ");
84 Serial.println(mid_point3);
90 attachInterrupt(0, chFall2, FALLING);
95 attachInterrupt(0, chRise2, RISING);
96 chValue2 = micros() - chStart2;
100 attachInterrupt(1, chFall3, FALLING);
105 attachInterrupt(1, chRise3, RISING);
106 chValue3 = micros() - chStart3;