Salve ragazzi chiedo in anticipo scusa per la mia nubbiaggine,ma sto veramente messo male come creazione di codice.
Allora,io sono appassionato di motori e sulla mia macchina in cui vado in pista(4 cilindri) ho montato una Sonda K per ogni cilindro. La mia centralina ripogrammabile ha la possibilità di effettuare cambiamenti di carburazione per ogni cilindro,ma qui arriva la questione,vorrei visualizzare sullo schermo i 4 valori realtime.
L'idea era di dividere lo schermo in 4 e sui 4 lati mettere la temperatura dei cilindri.
Ovviamente collegare l'output del modulo con i 4 AD8495 a 4 entrate analogiche di arduino e avere un refresh piu alto possibile,per avere un feedback il piu rapido possibile.
Però a livello di codice non so bene da dove partire,avevo fatto 4/5 anni fa un progetto simile(scopiazzando qui e la,ma utilizzavo solo una sonda),ma non mi ricordo nemmeno da dove avevo cominciato.
Grazie a chi mi darà una mano e chiedo scusa nel caso fosse un progetto esistente(o cercato nel forum italiano,ma un progetto uguale a questo non mi pare di averlo trovato)
Se questo è vero e supponiamo che le uscite siano collegate ai pin A0, A1, A2 e A3 senza dimenticare di collegare il gnd della scheda sonda e l'arduino.
Un semplice codice per i test, che ovviamente può essere migliorato, potrebbe essere il seguente:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
lcd.init(); // initialize the lcd
lcd.backlight();
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("1-");
lcd.print(map(analogRead (A0),0,1024,0,1250));
lcd.print("º");
lcd.setCursor(8, 0);
lcd.print("2-");
lcd.print(map(analogRead (A1),0,1024,0,1250));
lcd.print("º");
lcd.setCursor(0, 1);
lcd.print("3-");
lcd.print(map(analogRead (A2),0,1024,0,1250));
lcd.print("º");
lcd.setCursor(0, 1);
lcd.print("4-");
lcd.print(map(analogRead (A0),0,1024,0,1250));
lcd.print("º");
lcd.clear();
}
grazie mille,domani pomeriggio,quando stacco dal lavoro mi ci metto subito e vediamo che ne esce fuori.
lo schermo lo collego SDA A4 e SCL A5?(oltre ovviamente 5v e gnd)
grazie 1000 ancora
I numeri "impazziscono" perché fai il clear() a raffica. Come dice @gonpezzi puoi rallentare il loop() con un delay più o meno lungo, così riduci l'effetto refresh. Però così rallenti anche la lettura dei sensori... Vedi tu cosa preferisci sacrificare.
In alternativa puoi scrivere ogni valore solo quando cambia, così eviti i clear() inutili e i numeri stanno sereni.
Ora non guardate che si vede male,perché con la fotocamera ho beccato il momento di refresh.
Il problema è che mi pare che non legga nulla dai sensori,cioè vedo che i valori vanno dove vogliono da 0° a 1250° come gli pare proprio.
Controllato con il tester ed è estremamente stabile il voltaggio.
Be ora quasi ci siamo.
La cosa un po' strana è che l'egt appena collegata segna 100° ma mi pare sia irreale come valore perché sta a temperatura ambiente.
Domani mattina riprovo,così misuro il voltaggio con il tester e vediamo quanto segna e se coincide con la scala
Certo che quello che schermo ha un refresh schifoso,sembra che lasci la scia
Stamattina mi ci sono rimesso al volo.
Nel frattempo ho stabilizzato i collegamenti elettrici,che erano tutti volanti e provvisori,ho saldato quello che andava saldato e sistemato il tutto.
Ho riacceso arduino e mi segna 100°.
ho misurato con il tester fra il negativo di arduino e l'uscita analogica e leggo 0,33v,che se la scala è 0-1250 dovrebbero essere 82,5° e non 100°,anche se è pure strano che sono 82° con sonda fredda(avevo una egt in casa,magari è rotta,dopo ne rimedio un'altra e riprovo).
questo è il datasheet del modulo che converte il segnale EGT in un segnale analogico 0-5v.
Ho provato piu "delay" per il refresh dello schermo,alla fine non funziona cosi male,il problema è che lo schermo quando fai il refresh "pulsa" e fa un effetto un po strano,non so se la soluzione di @fratt possa essere piu pratica,ma ovviamente non saprei come agire sul codice.
domani nel tardo pomeriggio lo testo e vedo se trovo un'altra egt per fare i test.(perchè le 4 egt del progetto sono montate in macchina e attualmente il progetto è un po in fase embrionale ed è un problema fare le prove in macchina