2 /* Lettura di un canale servo della RX
4 Lettura tramite la funzione pulsein
5 Utilizzabile su qualunque PIN
7 Il codice e' blocking fin tanto che il segnale passa da RISE a FALL
8 quindi blocca per 1-2ms a ogni esecuzione.
10 Il segnale dalla rx dovrebbe essere ~50hz,
11 vedere questo sketch $_millis con lettura a intervalli programmabili.
19 const byte chPin = A4; // PIN su cui e' collegato il canale
20 unsigned int chIn = 1500; // Valore catturato
21 unsigned int chValue = 1500; // Valore computato
22 // Attenzione che pulsein e' blocking
24 // Variabili per autocalibrazione
28 // Funzione relativa a calibrazione:
29 mid_point = calibraTrim(chPin) - 10; // Con pulse in si toglie 10
30 Serial.begin(9600); // Warning: interrupts e serial potrebbero dare problemi
36 // Lettura ailerons channel ogni 200ms
37 chIn = pulseIn(chPin, HIGH, 25000);
38 if (chIn != 0 && chIn > 1000 && chIn <2000) {
39 // get only resonable values
44 // do something with chValue
45 Serial.print(chValue);
46 Serial.print(" - base: ");
47 Serial.println(mid_point);