- Senzor de forță sau rezistor sensibil la forță
- Componente necesare
- Diagrama circuitului și explicația de lucru
În acest proiect vom dezvolta un circuit distractiv folosind senzorul Force și Arduino Uno. Acest circuit generează sunet legat liniar de forța aplicată asupra senzorului. Pentru aceasta, vom interfața senzorul FORCE cu Arduino Uno. În UNO, vom folosi funcția ADC pe 8 biți (conversie analogică la digitală) pentru a face treaba.
Senzor de forță sau rezistor sensibil la forță
Un senzor FORCE este un traductor care își schimbă rezistența atunci când se aplică presiune pe suprafață. Senzorul FORCE este disponibil în diferite dimensiuni și forme. Vom folosi una dintre versiunile mai ieftine, deoarece nu avem nevoie de multă acuratețe aici. FSR400 este unul dintre cei mai ieftini senzori de forță de pe piață. Imaginea FSR400 este prezentată în figura de mai jos. Ele sunt, de asemenea, numite rezistență sensibilă la forță sau FSR, deoarece rezistența sa se modifică în funcție de forța sau presiunea aplicată acestuia. Când presiunea este aplicată acestei rezistențe de detectare a forței, rezistența sa scade, adică rezistența este invers proporțională cu forța aplicată. Deci, atunci când nu se aplică presiune asupra acestuia, rezistența FSR va fi foarte mare.
Acum este important să rețineți că FSR 400 este sensibil pe lungime, forța sau greutatea ar trebui să fie concentrate pe labirint pe mijlocul ochiului senzorului, așa cum se arată în figură. Dacă forța este aplicată în momente greșite, dispozitivul se poate deteriora permanent.
Un alt lucru important de știut este că senzorul poate conduce curenți de gamă mare. Așadar, rețineți curenții de conducere în timpul instalării. De asemenea, senzorul are o limită de forță de 10 Newtoni. Deci, putem aplica doar 1 kg de greutate. Dacă s-au aplicat greutăți mai mari de 1 kg, senzorul ar putea prezenta unele abateri. Dacă a crescut mai mult de 3 kg. senzorul se poate deteriora permanent.
Așa cum am spus mai devreme, acest senzor este utilizat pentru a simți schimbările de presiune. Deci, atunci când greutatea este aplicată deasupra senzorului FORCE, rezistența se schimbă drastic. Rezistența FS400 la greutate este prezentată în graficul de mai jos,
Așa cum se arată în figura de mai sus, rezistența dintre cele două contacte ale senzorului scade odată cu greutatea sau conductanța dintre cele două contacte ale senzorului crește. Rezistența unui conductor pur este dată de:
Unde, p- Rezistivitatea conductorului
l = Lungimea conductorului
A = Zona conductorului.
Acum, luați în considerare un conductor cu rezistența „R”, dacă se aplică o presiune deasupra conductorului, zona de pe conductor scade și lungimea conductorului crește ca urmare a presiunii. Deci, prin formulă, rezistența conductorului ar trebui să crească, deoarece rezistența R este invers proporțională cu aria și, de asemenea, direct proporțională cu lungimea l.
Deci, cu acest lucru pentru un conductor sub presiune sau greutate, rezistența conductorului crește. Dar această schimbare este mică în comparație cu rezistența generală. Pentru o schimbare considerabilă, mulți conductori sunt strânși împreună. Aceasta se întâmplă în interiorul senzorilor de forță arătați în figura de mai sus. Privind atent se pot vedea multe linii în interiorul senzorului. Fiecare dintre aceste linii reprezintă un conductor. Sensibilitatea senzorului este în număr de conductori.
Dar, în acest caz, rezistența va scădea odată cu presiunea, deoarece materialul folosit aici nu este un conductor pur. FSR aici sunt dispozitive robuste cu film gros din polimer (PTF). Deci, acestea nu sunt dispozitive cu material conductor pur. Acestea sunt alcătuite dintr-un material care prezintă o scădere a rezistenței cu creșterea forței aplicate pe suprafața senzorului. Acest material prezintă caracteristicile prezentate în graficul FSR.
Această schimbare a rezistenței nu poate face nimic decât dacă le putem citi. Controlerul la îndemână poate citi doar șansele de tensiune și nimic mai puțin, pentru aceasta vom folosi circuitul divizor de tensiune, cu care putem obține schimbarea rezistenței ca schimbare de tensiune.
Divizorul de tensiune este un circuit rezistiv și este prezentat în figură. În această rețea rezistivă avem o rezistență constantă și altă rezistență variabilă. Așa cum se arată în figură, R1 este o rezistență constantă, iar R2 este un senzor FORCE care acționează ca o rezistență. Punctul mediu al ramurii este luat la măsurare. Cu schimbarea R2, avem schimbări la Vout. Deci, cu aceasta avem o schimbare de tensiune cu greutatea.
Acum, un lucru important de remarcat aici este că intrarea luată de controler pentru conversia ADC este de până la 50µAmp. Acest efect de încărcare al divizorului de tensiune bazat pe rezistență este important deoarece curentul extras din Vout al divizorului de tensiune crește procentul de eroare crește, deocamdată nu trebuie să ne facem griji cu privire la efectul de încărcare.
Cum se verifică un senzor FSR
Rezistența de detectare a forței poate fi testată cu ajutorul unui multimetru. Conectați cei doi pini ai senzorului FSR la multimetru fără a aplica vreo forță și verificați valoarea rezistenței, acesta va fi foarte mare. Apoi aplicați o forță pe suprafața sa și vedeți scăderea valorii rezistenței.
Aplicații ale senzorului FSR
Rezistențele de detectare a forței sunt utilizate în principal pentru a crea „butoane” de detectare a presiunii. Acestea sunt folosite într-o varietate de domenii, cum ar fi senzorii de ocupare a mașinilor, touch-pad-uri rezistive, vârfurile degetelor robotizate, membre artificiale, tastaturi, sisteme de pronare a piciorului, instrumente muzicale, electronice încorporate, echipamente de testare și măsurare, kit de dezvoltare OEM și electronice portabile, sport. Ele sunt, de asemenea, utilizate în sistemele de realitate augmentată, precum și pentru a spori interacțiunea mobilă.
Componente necesare
Hardware: Arduino Uno, sursă de alimentare (5v), condensator 1000 uF, condensator 100nF (3 bucăți), rezistor 100KΩ, buzzer, rezistor 220Ω, senzor de forță FSR400.
SOFTWARE: Atmel studio 6.2 sau Aurdino pe noapte
Diagrama circuitului și explicația de lucru
Conexiunea circuitului pentru interfața Rezistorului de detectare a forței cu Arduino este prezentată în diagrama de mai jos.
Tensiunea pe senzor nu este complet liniară; va fi unul zgomotos. Pentru a filtra zgomotul, un condensator este plasat pe fiecare rezistor din circuitul divizor, așa cum se arată în figură.
Aici vom lua tensiunea furnizată de divizor (tensiunea care reprezintă greutatea liniar) și o vom alimenta într-unul dintre canalele ADC ale UNO. După conversie, vom lua acea valoare digitală (reprezentând greutatea) și o vom raporta la valoarea PWM pentru conducerea sonorului.
Deci, cu greutatea, avem o valoare PWM care își schimbă raportul de funcționare în funcție de valoarea digitală. Cu cât valoarea digitală este mai mare, raportul de funcționare al PWM este mai mare, cu atât este mai mare zgomotul generat de buzzer. Deci, am raportat greutatea la sunet.
Înainte de a merge mai departe, să vorbim despre ADC-ul Arduino Uno. ARDUINO are șase canale ADC, așa cum se arată în figură. În acestea, oricare dintre ele sau toate pot fi utilizate ca intrări pentru tensiunea analogică. UNO ADC are o rezoluție de 10 biți (deci valorile întregi de la (0- (2 ^ 10) 1023)). Aceasta înseamnă că va mapa tensiunile de intrare între 0 și 5 volți în valori între 0 și 1023. Deci, pentru fiecare (5/1024 = 4,9mV) pe unitate.
Aici vom folosi A0 al UNO.
Trebuie să știm puține lucruri.
|
În primul rând, canalele UNO ADC au o valoare de referință implicită de 5V. Aceasta înseamnă că putem oferi o tensiune maximă de intrare de 5V pentru conversia ADC la orice canal de intrare. Deoarece unii senzori furnizează tensiuni de la 0-2,5V, cu o referință de 5V obținem o precizie mai mică, deci avem o instrucțiune care ne permite să schimbăm această valoare de referință. Deci, pentru schimbarea valorii de referință pe care o avem („analogReference ();”) Deocamdată o lăsăm ca.
În mod implicit, obținem rezoluția maximă ADC a plăcii, care este de 10 biți, această rezoluție poate fi modificată folosind instrucțiuni („analogReadResolution (biți);”). Această modificare a rezoluției poate fi utilă în unele cazuri. Deocamdată o lăsăm așa.
Acum, dacă condițiile de mai sus sunt setate la valorile implicite, putem citi valoarea de la ADC a canalului '0' apelând direct funcția „analogRead (pin);”, aici „pin” reprezintă pinul unde am conectat semnalul analogic, în acest caz acesta ar fi „A0”. Valoarea din ADC poate fi luată într-un număr întreg ca „int SENSORVALUE = analogRead (A0); ”, Prin această instrucțiune, valoarea după ce ADC este stocată în întregul„ SENSORVALUE ”.
PWM-ul Arduino Uno poate fi realizat la oricare dintre pinii simbolizați ca „~” pe placa PCB. Există șase canale PWM în UNO. Vom folosi PIN3 pentru scopul nostru.
analogWrite (3, VALUE); |
Din condițiile de mai sus putem obține direct semnalul PWM la pinul corespunzător. Primul parametru dintre paranteze este pentru alegerea numărului pin al semnalului PWM. Al doilea parametru este pentru raportul de scriere.
Valoarea PWM a UNO poate fi modificată de la 0 la 255. Cu „0” cel mai mic la „255” cel mai mare. Având 255 ca raport de taxă, vom obține 5V la PIN3. Dacă raportul de taxă este dat 125, vom obține 2,5V la PIN3.
Acum avem 0-1024 valoare ca ieșire ADC și 0-255 ca raport de sarcină PWM. Deci, ADC este de aproximativ patru ori mai mare decât raportul PWM. Deci, împărțind rezultatul ADC la 4 vom obține raportul aproximativ al taxei.
Cu aceasta vom avea un semnal PWM al cărui raport de sarcină se modifică liniar cu greutatea. Acest lucru fiind dat buzzerului, avem un generator de sunet în funcție de greutate.