6 2 LED PWM ai lati con lampeggio alternato
7 2 LED PWM alle estremita ali
10 2 interrupts per th e alettone
13 PIN A1: interruttore On/Off
17 * Vedere la calibrazione automatica
18 * Min e max a 1000 - 2000 per alettone
25 // Instanziamo un LED fuori dal loop
26 Lampeggiatore left = 6;
27 Lampeggiatore right = 9;
28 Lampeggiatore codasx = 5;
29 Lampeggiatore codadx = 10;
36 // Variabili per interrupt 0 si PIN 2
37 volatile unsigned int chValue2 = 1500; // Valore computato
38 volatile unsigned int chStart2 = 1500; // Inizio rilevamento
40 // Variabili per interrupt 1 su PIN 3
41 volatile unsigned int chValue3 = 1500; // Valore computato
42 volatile unsigned int chStart3 = 1500; // Inizio rilevamento
44 const byte chPin = A1; // PIN interruttore generale
46 // Variabili per autocalibrazione 0
47 const byte chPin2 = 2; // PIN per la calibrazione alettone
48 int mid_point2 = 1500;
50 // Variabili per autocalibrazione 1
51 const byte chPin3 = 3; // PIN per la calibrazione
52 int mid_point3 = 1000;
56 // I PINs vengono impostati dal constructor al momento
57 // della dichiarazione dell'ogetto.
60 // HI -> LOW --> LOW -> HI
61 // per avere 2 LED che lampeggiano alternativamente
63 // Funzione relativa a calibrazione con pulsein:
64 //mid_point2 = calibraTrim(chPin2) ; // Calibrazione del TRIM attivo sul canale
65 //mid_point3 = calibraTrim(chPin3) ; // Calibrazione del TRIM attivo sul canale
66 attachInterrupt(0, chRise2, RISING); // PIN 2 su 328p / 168
67 attachInterrupt(1, chRise3, RISING); // PIN 3 su 328p / 168
80 Serial.print("PIN2: ");
81 Serial.print(chValue2);
82 Serial.print(" -base: ");
83 Serial.print(mid_point2);
85 Serial.print(" |-| PIN3:");
86 Serial.print(chValue3);
87 Serial.print(" -base: ");
88 Serial.println(mid_point3);
94 attachInterrupt(0, chFall2, FALLING);
99 attachInterrupt(0, chRise2, RISING);
100 chValue2 = micros() - chStart2;
104 attachInterrupt(1, chFall3, FALLING);
109 attachInterrupt(1, chRise3, RISING);
110 chValue3 = micros() - chStart3;