Da sensore FSR a potenziometro digitale

Buongiorno a tutti ragazzi e innanzitutto complimentoni per la sezione del forum... spesso entro a leggere come anonimo e trovo moltissimi spunti ma adesso mi servirebbe invece una mano da voi più esperti...
vi espongo la necessità...
so che arduino accetta sensori di pressione fsr e li monitora misurando la forza esercitata su di loro e so che arduino può trasformare segnali analogici in qualcosa di convertibile restituendo segnali digitali ad esempio un potenziomentro...

VI SPIEGO COSA VORREI OTTENERE

ho un sistema che tramite un potenziometro 10K regola la tensione di un trasformatore...
La mia necessità è di sostituire questo potenziometro classico 3 pin con un sensore di pressione tipo WPSE477

In poche parole Arduino dovrebbe leggere sempre la pressione del sensore e quando la pressione è zero non deve far nulla, mentre quando inizia a leggere dalla minima pressione alla massima dovrebbe innanzitutto chiudere un relè (che rimane chiuso solo se vede pressione sul sensore) e mentre il relè è chiuso deve variare il potenziometro digitale dal 0 a 10K (questo monitoraggio e aggiustamento dovrebbe farlo in real time o con un ritardo comunque il più vicino allo zero possibile)... al rilascio della pressione sul sensore riportare a 0 il potenziometro e aprire il relè... credo sia possibile far fare questa cosa ad Arduino ma anche se ho i componenti non ho la minima idea di come scrivere il codice... utilizzerei quindi arduino uno sempre solo e soltanto dell'accensione allo spegnimento per eseguire questa procedura....

grazie mille anticipatamente a chi riuscirà ad aiutarmi..
:slight_smile:

Non è chiaro però qual'è il tuo background a livello di programmazione, almeno nel mondo Arduino.

L'applicazione in se non è nulla di particolare, diciamo solo che il WPSE477 non è propriamente un sensore di pressione, ma bensì un sensore di forza inserito in un partitore resistivo quindi tutto quello che ti serve per leggerlo è un ingresso analogico dell'Arduino Uno.

Il problema è che la risposta è tutt'altro che lineare... questo è un problema nel tuo caso?
Va applicata una curva per condizionare l'uscita del sensore e renderla lineare?

Per quanto riguarda il potenziometro digitale, una scheda basata sul X9C103S potrebbe fare al caso tuo e ci sono librerie già pronte che ne semplificano l'utilizzo.

Da come scrivi sembrerebbe che tu stai agli inizi, quindi il consiglio è quello di "spezzettare" il tuo problema ed affrontare un passo alla volta:

  • collega il sensore e leggi il valore cercando di determinare se il tipo di risposta alla forza applicata è adeguato al tuo utilizzo
  • collega il potenziometro digitale e fallo funzionare
  • solo a quel punto inizia a pensare alla logica di funzionamento (relè, eventuale condizionamento del segnale etc etc)

il mio background di programmazione in arduino è praticamente zero purtroppo... utilizzavo vbasic per le macro di mach3 nel mondo del controllo numerico ma arduino proprio sotto zero purtroppo...
il problema è che avevo una scheda arduino preparata da un amico che aimè non c'è più e funzionava in questo modo, ma purtroppo in un trasferimento ho perso sia scheda sia codice che la gestiva e cercavo quindi qualcuno che magari riuscisse a riscriverlo secondo le proprie conoscenze... io potrei provare a buttar giù qualcosa a blocchi ma credo che non sarà mai un sistema affidabile ne tantomeno semplice come magari progetterebbere molti di voi...

Beh se è per questo, non sappiamo neanche se il potenziometro che deve sostituire sia lineare o meno (dire 10K non basta), che serve anche per scegliere il tipo, e tutto questo va studiato un poco valutando sia le caratteristiche (tipo queste) del sensore, in base a quale modello utilizzare, e quindi "calibrare" via software la risposta.

Ma se la curva di risposta, come penso/spero, non è un vincolo critico, direi che se ha un potenziometro digitale dello stesso tipo dell'originale (lineare o logaritmico) è sufficiente utilizzare il valore rilevato dal sensore per pilotare il pot tramite semlice mappatura lineare.

Un minimo di pratica devi fartela, purtroppo, perché aiutiamo chi ha difficoltà ma deve esserci del codice da verificare e correggere: qui nessuno scrive codice "per conto terzi" (tranne chi lo fa a pagamento). Tra l'altro se ti dessimo la "pappa pronta" non saresti comunque in grado in futuro di modificare il codice o scriverne un altro per altri scopi, e saresti daccapo.

Quindi devi installare l'IDE di Arduino (scarica sempre l'ultima versione dal sito di Arduino, non da Microsoft...) e con questo iniziare a vedere come funziona in generale la programmazione, che è in C quindi un po' di differenze con VB le troverai, ma dovresti poter iniziare rapidamente a capire la struttura e le funzioni base.

Poi quando avrai provato un po' di esempi e sperimentato con qualche pulsante o led, potresti provare a fare qualcosa, ma mi raccomando, devi sempre sperimentare e provare una cosa per volta, non cercare di fare tutto in un colpo. Prima capisci come funziona il sensore, e vedi come risponde. Poi passerai a studiare il potenziometro digitale, e solo quello. Ed infine metti insieme le cose.

Per dire, inizia a vedere il codice di esempio del sensore, lo trovi QUI tra i download, dove c'è anche il datasheet con le caratteristiche.

si esatto il potenziometro originale è un potenziometro lineare a rotella tipo quelli degli stereo a 3 pin..
il sensore di pressione ha un range di rilevamento da 20 grammi a 500 grammi ed è il WPSE477
manual_wpse477.pdf

purtroppo tempo per incominciare a studiare anche questo non è che ne abbia ed è per questo che chiedevo a voi che sicuramente di tempo ad arduino ne avete dedicato infinitamente... per il discorso pagamento non sarebbe un problema ci mancherebbe.. è giusto che chi sa sia anche ricompensato per il suo sapere... se conosci qulcuno da indicarmi dimmi pure

Non so se io sia stato chiaro, volevo precisare: occhio che con "lineare" non si intende la forma fisica ma la risposta della resistenza che varia linearmente.

Ci sono potenziometri "lineari" o "logaritmici", ma anche se l'aspetto è lo stesso, cambia la risposta al variare della posizione del cursore o della rotazione dell'alberino (generalmente i logaritmici sono quelli usati ad esempio per il volume degli amplificatori poiché la percezione umana del suono è logaritmica).

lineare si si restituisce un valore resistivo lineare da min a max

Non so quale sia il tuo impegno e quanto rapidamente ti serva questa soluzione, comunque anche io a suo tempo conoscevo solo il VB ma poi passare al C (ed ora C#) non mi è stato particolarmente difficile, quindi penso che se hai la mentalità "da programmatore" dovresti poter iniziare abbastanza rapidamente.
Rinunciare è un peccato, fidati. E fidati anche del fatto che, come ti hanno detto, il programma non è complicatissimo, sono due cose da mettere semplicemente insieme.

Viceversa, se pensi di non poter fare proprio nulla e richiedere un aiuto a pagamento da qualcuno, ti basta mettere un annuncio sempre in questo forum spiegando nuovamente cosa vuoi ottenere, chiedendo di contattarti in privato (ed il thread verrà chiuso da un moderatore). In tal caso non postare in pubblico la tua email, ti contatteranno tramite messaggio privato qui sul forum, il sito ti manderà una notifica via email.

ho capito ti ringrazio... il punto è che dovrei rimettere in funzione questo trasformatore per metà giugno oppure sostituirlo... e pensavo che magari scrivendo qui qualcuno potesse aiutarmi lasciando magari il codice a disposizione di tutti se mai fosse servito a qualcun altro... proverò a vedere come mi hai suggerito allora. intanto grazie

Beh, metà giugno significano 2 settimane, non tante ma dipende se questo è un hobby o qualcosa di importante o per lavoro. Se vuoi provarci, a parte l'IDE da installare (o lo hai già fatto?) e fare due prove prese dagli esempi per far lampeggiare un led (Blink), e qualcosa per capire come leggere un pulsante ed un valore analogico, hai già un minimo di basi per iniziare e se ti ci impegni ogni giorno nel giro di una settimana secondo me a questo punto (ma non prima!) potresti anche iniziare a vedere il codice di esempio del sensore e provarlo, per poi cercare di integrare il tutto (e qui sicuramente troverai aiuto dal forum!).

Chi è interessato ad sviluppare a pagamento l'applicazione contatti il OP via MP (come già indicato QUI). Grazie.

Questo thread viene ora chiuso.

Guglielmo