Clibrazione

Un canale come gli alettoni ha un minimo di 1000ms e un massimo di 2000ms, si presume quindi un punto medio di 1500ms. Questo e’ il valore centrale che possiamo utilizzare come riferimento per i movimenti del comando.

Questi canali possono pero’ essere stati modificati con del Trim che trasla costantemente il punto medio: la funzione di calibrazione viene richiamata nel setup (quindi all’accensione della scheda, nel caso resettarla) e calcola il valore medio attuale del canale. Se la radio era spenta al momento dell’avvio viene utilizzato il valore medio 1500.

Si noti che un canale come il throttle in genere non riceve TRIM e quindi non va’ calibrato: potete leggere il valore tipico che hanno le vostre riceventi e impostare sempre quello come minimo. Sara’ quindi un valore ~1000 e non 1500.

/* Calibrazione Trim servo

   Esempio su come calibrare il segnale di un servo.
   I canali come alettoni / elevatore possono avere un TRIM
   (generalmente il throttle non ha un TRIM impostato),
   questa funzione nel setup serve per trovare il punto medio
   all'avvio dello sketch.

Nota: questa funzione usa PULSEIN in modo da poter lavorare su
qualunque PIN, considerando che in genere viene eseguita 
una sola volta nel SETUP.

Si noti che se il canale viene poi letto con un interrupt e non con pulseIn
statisticamente bisogna incrementare (almeno sulle mie RX) il valore ottenuto
di circa 10.

Se si vuole qualcosa non blocking sostituire PULSEIN con 
un interrupt.

*/

#include <common.h>

const byte ailPin = A4;

int mid_point = 1500 ; // centro del segnale, trimmato nel setup

void setup() {
    Serial.begin(9600); // Se abilitato la calibrazione viene tracciata su seriale
    // Abilitando anche DEBUG nella libreria

    mid_point =  calibraTrim(ailPin) + 8; // Pin a cui e' collegato il canale
//mid_point =  calibraTrim(ailPin,11) ; // + LED di servizio per calibrazione

Serial.print("Valore calibrato: ");
Serial.println(mid_point);
}

void loop() {
}