Arduino – impiego sensori analogici e taratura statica

5 – Generazione del listato con “ArduinoLinearInterpolator”

Maggiore è il numero di punti ricavati sperimentalmente e più precisa sarà ovviamente l’approssimazione della caratteristica reale del sensore, ma ciò comporta anche un maggiore numero di calcoli necessari per la definizione della funzione complessiva, oltre ad una laboriosa scrittura del listato da implementare in Arduino. A questo scopo mi sono dedicato alla realizzazione delll’apposita applicazione “ArduinoLinearInterpolator”, la quale si occupa di gestire tutti dati inseriti e di realizzare il listato da implementare in Arduino.

Eseguendo l’applicazione si aprirà un terminale in cui viene presentata, premiamo quindi enter proseguire.

Ci verranno richieste le informazioni principali per definire la funzione. In questo caso viene chiamata ntc, la variabile di ingresso è val e quella di uscita (in cui sarà memorizzata la temperatura) verrà chiamata temp. I punti rilevati sperimentalmente sono 10.
Tre cifre decimali sono più che sufficienti, quindi premiamo enter per proseguire.

Ci verranno richieste le coordinate dei 10 punti rilevati sperimentalmente. Questi possono essere indicati anche in ordine generico e successivamente l’applicazione si occuperà di riordinarli. Quindi verrà richiesta la conferma dei dati inseriti: se c’è qualche errore basta premere “n” per reinserirli, altrimenti premiamo enter per proseguire.

Verremo avvisati della generazione di un file di testo nel percorso di esecuzione dell’applicazione, in cui è riportato il listato da inserire nell’IDE di Arduino.

Il file di testo si struttura in 2 parti: la prima consiste nella definizione della funzione che va copiata all’inizio dello sketch in cui si riporta la dichiarazione delle variabili, mentre la seconda va copiata nel punto del void loop() in cui si vuole aggiornare lo stato della temperatura.
Notare bene che le variabili val e temp vanno dichiarate inizialmente e devono essere di tipo float, in modo consentire operazioni per cui non sono trascurabili le cifre decimali.

18,000 total views, 2 views today