Buonasera e Buon Natale.
Ho messo insieme qusto codice.
Serve a visualizzare la posizione delle valvole di una cisterna per sfarinato e/o mangimi.
Rilevo un segnale, anzi 4, da dei potenziometri ... chiamiamoli così.
Mi servirebbe però avere la possibilitàdi avere lo zero settabile.
Ovvero i sensori(potenziometri) potrebbero non raggiungere lo zero e restituire una piccola tensione, ma a me serve che la barra di visualizzazione parta appunto da zero e raggiungere il 100% al'altro valore, che appunto posso regolare con un trimmer.
void loop()
{
// -- draw bar graph from the analog value readed
lbg1.drawValue( analogRead(sensorPin1), 1024);
// -- do some delay: frequent draw may cause broken visualization
delay(90);
// -- draw bar graph from the analog value readed
lbg2.drawValue( analogRead(sensorPin2), 1024);
// -- do some delay: frequent draw may cause broken visualization
delay(100);
// -- draw bar graph from the analog value readed
lbg3.drawValue( analogRead(sensorPin3), 1024);
// -- do some delay: frequent draw may cause broken visualization
delay(110);
// -- draw bar graph from the analog value readed
lbg4.drawValue( analogRead(sensorPin4), 1024);
// -- do some delay: frequent draw may cause broken visualization
delay(120);
}
Grazie per l'attenzione.
Poi avrei un'altra domanda.
a una cosa alla volta
Anche il viaggio più lungo inizia con un piccolo passo.
Si vis pacem, para bellum!!!
Mark Zuckerberg ha reso suoi schiavi milioni di persone senza che se ne rendessero conto. F.G.
<Avete vinto voi,ma almeno non riuscirete a considerarmi vostro complice> Da Mediterraneo.
Inferno,Canto III,verso 51 Virgilio dice.........
caccamo2
postato il: 25.12.2019, alle ore 20:39
fai una funzione cosi
void clamp(input,offset)
if (input<offset) output=0;
else output=input;
return output;
e poi nel main la chiami cosi
lbg4.drawValue(clamp(analogRead(sensorPinX),offset), 1024);
Dove offset e' la tensione minima del tuo sensore, se e' uguale per tutti basta una costante, altrimenti dovrai metterne una per ciascuno. Se il valore cambia nel tempo dovrai riprogrammare il dispositivo dopo aver misurato il nuovo valore.
Per evitare di dover riprogrammare il dispositivo devi aggiungere una procedura di settaggio iniziale dove tu metti i sensori al minimo e memorizzi i valori di offset in delle variabili. Per farlo e' necessario aggiungere un pulsante o un timer che dia il trigger alla misura dell'offset.
Grazie per la risposta e Buon Natale.
Io sono disposto, avendo ancora il tempo di riprogettarlo, di aggiungere la qualsiasi, compreso 4 trimmer ad altrettanti inpout analogici per settare il 'bias' ad ogni canale.
Se ti sembra una buona idea, altrimenti metto in pratica il pulsante e il resto.
Anche il viaggio più lungo inizia con un piccolo passo.
Si vis pacem, para bellum!!!
Mark Zuckerberg ha reso suoi schiavi milioni di persone senza che se ne rendessero conto. F.G.
<Avete vinto voi,ma almeno non riuscirete a considerarmi vostro complice> Da Mediterraneo.
Inferno,Canto III,verso 51 Virgilio dice.........
Scusami, ho risposto al volo, avevo gente.
Poi ho letto il codice e la logica.
Mi andrebbe bene un pulsante, che io metto nascosto per eventuali pressioni accidentali, devi sapere che i camionisti moderni smanettano TUTTO.
Anche due tasti da premere insieme.....
Io monto il coso e metto le valvole chiuse, premo i pulsanti e il coso apprende i 4 zeri ovunque si trovino, e mette le barre LCD a zero, poi metto le valvole aperte e controllo se le barre LCD arrivino al 100%.
Ottimo sarebbe fare in modo che il coso legga e memorizzi le due tensioni, min e max e si setti di conseguenza la barra, le barre.
Il coso è basato su un arduino micro ma ho ancora abbondante spazio di memoria ecc ecc.. così dice L'IDE,
Sempre grazie
Anche il viaggio più lungo inizia con un piccolo passo.
Si vis pacem, para bellum!!!
Mark Zuckerberg ha reso suoi schiavi milioni di persone senza che se ne rendessero conto. F.G.
<Avete vinto voi,ma almeno non riuscirete a considerarmi vostro complice> Da Mediterraneo.
Inferno,Canto III,verso 51 Virgilio dice.........
Poichè sostengo che serve dare più info possibili...
I sensori sono potenziometri lineari, lineari inteso come un pistone con corsa di circa 20 cm, solidale al pistone idraulico che muove la valvola stessa, valore 5 Kohm, linearità 0,25 %, costo.... lasciamo perdere. :-).
Una volta effettuato il settaggio iniziale non serve altro, appunto se la valvola non chiude per colpa di oggetti rimasti incastrati, l'unica cosa che lo può indicare è appunto l'indicatore, poichè non esiste nessun altro modo, le valvole sono poste sotto il silo e non si vedono da nessuna parte se non a cisterna vuota.
Idem per i sensori, che sono accessibili solo a cisterna vuota e dall'interno.
Va da se che il progettino deve essere affidabile, per questo avevo pensato appunto ad una sistema esterno, analogico, dove con una serie di trimmer mi portavo i valori alla bisogna, solo che in caso di riparazione fare l'allineamento porterebbe via tempo, che spesso scarseggia..
Anche il viaggio più lungo inizia con un piccolo passo.
Si vis pacem, para bellum!!!
Mark Zuckerberg ha reso suoi schiavi milioni di persone senza che se ne rendessero conto. F.G.
<Avete vinto voi,ma almeno non riuscirete a considerarmi vostro complice> Da Mediterraneo.
Inferno,Canto III,verso 51 Virgilio dice.........
Ciao
In Arduino c'è una funzione per la mappatura dei valori. Una vita che conosci il valore min e Max esegui la funzione ed il range viene rimappato con i tuoi valori.
Cerca rimappatura
Anche il viaggio più lungo inizia con un piccolo passo.
Si vis pacem, para bellum!!!
Mark Zuckerberg ha reso suoi schiavi milioni di persone senza che se ne rendessero conto. F.G.
<Avete vinto voi,ma almeno non riuscirete a considerarmi vostro complice> Da Mediterraneo.
Inferno,Canto III,verso 51 Virgilio dice.........
caccamo2
postato il: 25.12.2019, alle ore 23:26
Per farlo analogico dovresti aggiungere una tensione negativa al tuo circuito, farlo software non da problemi di affidabilita', semplicemente perdi dinamica d'acquisizione, devi decidere tu in base all'applicazione.
Dalle info che dai mi sembra piu' indicata una misura di sforzo dell'attuatore o un semplice fine corsa, i potenziometri sono poco affidabili e non servono perche' a te interessa avere una informazione 0-1, valvola libera, valvola ostruita, non ti serve sapere di quanto e' ostruita. Ti libereresti dal problema dell'offset, pensaci.
...
gironico
postato il: 26.12.2019, alle ore 09:45
sulla basa di quanto detto da Roberto, con la funzione map fai lo zero per modo di dire con la pressione del pulsante....
esmpio al volo
letturapotenziometro = analogRead(AnalogPotenziometro); //Leggo il valore del potenziomet
Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito