- Sensore di forza o resistenza sensibile alla forza
- Componenti richiesti
- Schema del circuito e spiegazione del funzionamento
In questo progetto svilupperemo un circuito divertente utilizzando il sensore di forza e Arduino Uno. Questo circuito genera un suono linearmente correlato alla forza applicata al sensore. Per questo interfacciamo il sensore FORCE con Arduino Uno. In UNO, utilizzeremo la funzione ADC a 8 bit (conversione da analogico a digitale) per svolgere il lavoro.
Sensore di forza o resistenza sensibile alla forza
Un sensore FORCE è un trasduttore che cambia la sua resistenza quando viene applicata pressione sulla superficie. Il sensore FORCE è disponibile in diverse dimensioni e forme. Utilizzeremo una delle versioni più economiche perché non abbiamo bisogno di molta precisione qui. FSR400 è uno dei sensori di forza più economici sul mercato. L'immagine dell'FSR400 è mostrata nella figura sottostante. Sono anche chiamati resistori sensibili alla forza o FSR poiché la sua resistenza cambia in base alla forza o alla pressione applicata. Quando viene applicata pressione a questo resistore di rilevamento della forza, la sua resistenza diminuisce, ovvero la resistenza è inversamente proporzionale alla forza applicata. Quindi, quando non viene applicata alcuna pressione su di esso, la resistenza di FSR sarà molto alta.
Ora è importante notare che l'FSR 400 è sensibile lungo la lunghezza, la forza o il peso dovrebbero essere concentrati sul labirinto al centro dell'occhio del sensore, come mostrato in figura. Se la forza viene applicata in momenti sbagliati, il dispositivo potrebbe danneggiarsi permanentemente.
Un'altra cosa importante da sapere è che il sensore può pilotare correnti di alta gamma. Quindi tieni presente le correnti di guida durante l'installazione. Inoltre il sensore ha un limite di forza che è di 10 Newton. Quindi possiamo applicare solo 1Kg di peso. Se si applicano pesi superiori a 1Kg il sensore potrebbe mostrare delle deviazioni. Se è aumentato di oltre 3 kg. il sensore potrebbe danneggiarsi in modo permanente.
Come detto in precedenza, questo sensore viene utilizzato per rilevare i cambiamenti di pressione. Quindi, quando il peso viene applicato sopra il sensore FORCE, la resistenza viene modificata drasticamente. La resistenza di FS400 rispetto al peso è mostrata nel grafico sottostante,
Come mostrato nella figura sopra, la resistenza tra i due contatti del sensore diminuisce con il peso o la conduttanza tra due contatti del sensore aumenta. La resistenza di un conduttore puro è data da:
Dove, p- Resistività del conduttore
l = Lunghezza del conduttore
A = Area del conduttore.
Consideriamo ora un conduttore con resistenza "R", se viene applicata una certa pressione sopra il conduttore, l'area sul conduttore diminuisce e la lunghezza del conduttore aumenta a causa della pressione. Quindi per formula la resistenza del conduttore dovrebbe aumentare, poiché la resistenza R è inversamente proporzionale all'area e anche direttamente proporzionale alla lunghezza l.
Quindi con questo per un conduttore sotto pressione o peso la resistenza del conduttore aumenta. Ma questo cambiamento è piccolo rispetto alla resistenza complessiva. Per un cambiamento considerevole molti conduttori sono impilati insieme. Questo è ciò che accade all'interno dei sensori di forza mostrati nella figura sopra. Guardando da vicino si possono vedere molte linee all'interno del sensore. Ciascuna di queste linee rappresenta un conduttore. La sensibilità del sensore è nei numeri dei conduttori.
Ma in questo caso la resistenza diminuirà con la pressione perché il materiale utilizzato qui non è un conduttore puro. Gli FSR qui sono robusti dispositivi a film spesso polimerico (PTF). Quindi questi non sono dispositivi di materiale conduttore puro. Questi sono costituiti da un materiale che mostra una diminuzione della resistenza con l'aumento della forza applicata alla superficie del sensore. Questo materiale mostra le caratteristiche come mostrato nel grafico di FSR.
Questo cambiamento nella resistenza non può fare bene a meno che non possiamo leggerli. Il controller a portata di mano può solo leggere le possibilità in tensione e niente di meno, per questo useremo il circuito del divisore di tensione, con questo possiamo derivare la variazione di resistenza come variazione di tensione.
Il partitore di tensione è un circuito resistivo ed è mostrato in figura. In questa rete resistiva abbiamo una resistenza costante e l'altra resistenza variabile. Come mostrato in figura, R1 qui è una resistenza costante e R2 è il sensore FORZA che funge da resistenza. Il punto medio del ramo viene misurato. Con la modifica di R2, abbiamo la modifica a Vout. Quindi con questo abbiamo una variazione di tensione con il peso.
La cosa importante da notare qui è che l'input preso dal controller per la conversione ADC è di appena 50µAmp. Questo effetto di carico del partitore di tensione basato sulla resistenza è importante poiché la corrente assorbita da Vout del partitore di tensione aumenta la percentuale di errore aumenta, per ora non dobbiamo preoccuparci dell'effetto di carico.
Come controllare un sensore FSR
Il resistore di rilevamento della forza può essere testato utilizzando un multimetro. Collegare i due pin del sensore FSR al multimetro senza applicare alcuna forza e controllare il valore della resistenza, sarà molto alto. Quindi applicare una certa forza alla sua superficie e vedere la diminuzione del valore di resistenza.
Applicazioni del sensore FSR
Le resistenze di rilevamento della forza vengono utilizzate principalmente per creare "pulsanti" di rilevamento della pressione. Sono utilizzati in una varietà di campi come sensori di presenza auto, touch pad resistivi, punte delle dita robotiche, arti artificiali, tastiere, sistemi di pronazione del piede, strumenti musicali, elettronica incorporata, apparecchiature di test e misurazione, kit di sviluppo OEM ed elettronica portatile, sport. Sono utilizzati anche nei sistemi di realtà aumentata e per migliorare l'interazione mobile.
Componenti richiesti
Hardware: Arduino Uno, alimentatore (5v), condensatore da 1000 uF, condensatore da 100nF (3 pezzi), resistenza da 100KΩ, cicalino, resistenza da 220Ω, sensore di forza FSR400.
SOFTWARE: Atmel studio 6.2 o Aurdino notturno
Schema del circuito e spiegazione del funzionamento
Il collegamento del circuito per l' interfacciamento del resistore di rilevamento della forza con Arduino è mostrato nel diagramma sottostante.
La tensione ai capi del sensore non è completamente lineare; sarà rumoroso. Per filtrare il rumore, un condensatore viene posizionato su ciascun resistore nel circuito divisore come mostrato in figura.
Qui prenderemo la tensione fornita dal divisore (tensione che rappresenta il peso linearmente) e la inseriremo in uno dei canali ADC di UNO. Dopo la conversione prenderemo quel valore digitale (che rappresenta il peso) e lo collegheremo al valore PWM per pilotare il cicalino.
Quindi con il peso abbiamo un valore PWM che cambia il suo rapporto di lavoro a seconda del valore digitale. Maggiore è il valore digitale, maggiore è il rapporto di lavoro del PWM, maggiore è il rumore generato dal buzzer. Quindi abbiamo messo in relazione il peso con il suono.
Prima di proseguire parliamo dell'ADC di Arduino Uno. ARDUINO ha sei canali ADC, come mostrato in figura. In questi uno o tutti possono essere utilizzati come ingressi per la tensione analogica. L'ADC UNO ha una risoluzione di 10 bit (quindi i valori interi da (0- (2 ^ 10) 1023)). Ciò significa che mapperà le tensioni di ingresso tra 0 e 5 volt in valori interi compresi tra 0 e 1023. Quindi per ogni (5/1024 = 4,9 mV) per unità.
Qui useremo A0 di UNO.
Dobbiamo sapere poche cose.
|
Prima di tutto i canali UNO ADC hanno un valore di riferimento predefinito di 5V. Ciò significa che possiamo fornire una tensione di ingresso massima di 5 V per la conversione ADC su qualsiasi canale di ingresso. Poiché alcuni sensori forniscono tensioni da 0-2,5 V, con un riferimento di 5 V otteniamo una minore precisione, quindi abbiamo un'istruzione che ci consente di modificare questo valore di riferimento. Quindi per cambiare il valore di riferimento abbiamo (“analogReference ();”) Per ora lo lasciamo come.
Come impostazione predefinita, otteniamo la massima risoluzione dell'ADC della scheda che è 10 bit, questa risoluzione può essere modificata utilizzando l'istruzione ("analogReadResolution (bits);"). Questa modifica alla risoluzione può tornare utile in alcuni casi. Per ora lo lasciamo come.
Ora se le condizioni di cui sopra sono impostate come predefinite, possiamo leggere il valore dall'ADC del canale '0' chiamando direttamente la funzione "analogRead (pin);", qui "pin" rappresenta il pin dove abbiamo collegato il segnale analogico, in questo caso esso sarebbe "A0". Il valore di ADC può essere preso come intero come “int SENSORVALUE = analogRead (A0); ", Con questa istruzione il valore dopo l'ADC viene memorizzato nell'intero" SENSORVALUE ".
Il PWM di Arduino Uno può essere raggiunto su uno qualsiasi dei pin simbolizzati come "~" sulla scheda PCB. Ci sono sei canali PWM in UNO. Utilizzeremo il PIN3 per il nostro scopo.
analogWrite (3, VALUE); |
Dalla condizione di cui sopra possiamo ottenere direttamente il segnale PWM sul pin corrispondente. Il primo parametro tra parentesi è per la scelta del numero di pin del segnale PWM. Il secondo parametro è per il rapporto di lavoro di scrittura.
Il valore PWM di UNO può essere modificato da 0 a 255. Con "0" come minimo, "255" come massimo. Con 255 come rapporto di lavoro avremo 5V a PIN3. Se il rapporto di servizio è di 125, otterremo 2,5 V a PIN3.
Ora abbiamo un valore 0-1024 come uscita ADC e 0-255 come rapporto di lavoro PWM. Quindi l'ADC è circa quattro volte il rapporto PWM. Quindi, diviso il risultato dell'ADC per 4, otterremo il rapporto di servizio approssimativo.
Con ciò avremo un segnale PWM il cui rapporto di lavoro cambia linearmente con il peso. Dato questo al buzzer, abbiamo un generatore di suoni a seconda del peso.