U ovom uputstvu razvit ćemo sklop koji koristi senzor sile, Arduino Uno i servo motor. To će biti sustav servo upravljanja gdje se položaj osovine servoa određuje težinom koja je prisutna na senzoru sile. Prije nego što nastavimo dalje, razgovarajmo o servo i ostalim komponentama.
Servo motori se koriste tamo gdje postoji potreba za preciznim kretanjem ili položajem osovine. Nisu predloženi za velike brzine. Oni su predloženi za malu brzinu, srednji zakretni moment i točnu primjenu položaja. Ovi se motori koriste u robotskim strojevima za upravljanje rukama, kontrolama leta i sustavima upravljanja. Servo motori se također koriste u nekim pisačima i faks uređajima.
Servo motori su dostupni u različitim oblicima i veličinama. Servo motor će uglavnom imati žice, jedna je za pozitivni napon, druga je za masu, a zadnja za podešavanje položaja. CRVENA žica spojena je na napajanje, crna žica spojena na masu, a ŽUTA žica spojena na signal.
Servo motor je kombinacija istosmjernog motora, sustava za kontrolu položaja, stupnjeva prijenosa. Položaj osovine istosmjernog motora podešava se upravljačkom elektronikom u servo kolu, na temelju omjera radne snage PWM signala SIGNAL pin. Jednostavno rečeno, upravljačka elektronika podešava položaj vratila upravljajući istosmjernim motorom. Ovi podaci o položaju osovine šalju se kroz SIGNAL iglu. Podaci o položaju upravljaču trebaju se slati u obliku PWM signala kroz signalnu iglu servo motora.
Učestalost PWM (Pulse Width Modulated) signala može se razlikovati ovisno o vrsti servo motora. Ovdje je najvažniji ODNOS DUŽNOSTI PWM signala. Na temelju ovog DUŽNOG ODNOSA upravljačka elektronika podešava osovinu.
Kao što je prikazano na donjoj slici, da bi se osovina pomaknula na sat od 9 sati, ODNOS UKLJUČIVANJA mora biti 1 / 18.ie. 1 milli sekunda vremena "ON" i 17 milli sekunde "OFF vremena" u signalu od 18 ms.

Da bi se osovina pomaknula na sat od 12 °, vrijeme uključivanja signala mora biti 1,5 ms, a vrijeme isključivanja 16,5 ms.
Taj omjer dekodira upravljački sustav u servo sustavu i na temelju njega podešava položaj.
Ovaj PWM ovdje generiran je pomoću ARDUINO UNO.
Dakle, za sada to znamo, možemo upravljati osovinom SERVO MOTOR mijenjajući omjer radne snage PWM signala koji generira UNO.
Sada razgovarajmo o senzoru sile ili senzoru težine.
Za povezivanje FORCE senzora s ARDUINO UNO koristit ćemo 8-bitnu značajku ADC (analogna u digitalnu konverziju) u arduno uno.
FORCE senzor je pretvarač koji mijenja svoj otpor kada se vrši pritisak na površinu. FORCE senzor dostupan je u različitim veličinama i oblicima.
Koristit ćemo jednu od jeftinijih verzija jer nam ovdje ne treba puno točnosti. FSR400 je jedan od najjeftinijih senzora sile na tržištu. Slika FSR400 prikazana je na donjoj slici.
Sada je važno napomenuti da je FSR 400 osjetljiv po dužini, sila ili težina trebaju se koncentrirati na labirint na sredini oka senzora, kao što je prikazano na slici.
Ako se sila primijeni u pogrešno vrijeme, uređaj bi mogao trajno oštetiti.
Još jedna važna stvar koju treba znati, senzor može pokretati struje velikog dometa. Zato imajte na umu pogonske struje tijekom instalacije. Također senzor ima ograničenje sile od 10Newtona. Tako možemo primijeniti samo 1 kg težine. Ako se primijene utezi veće od 1 kg, senzor može pokazati neka odstupanja. Ako se poveća više od 3 kg. senzor može trajno oštetiti.

Kao što je ranije rečeno, ovaj senzor koristi se za osjet promjena tlaka. Dakle, kada se težina nanese na vrh FORCE senzora, otpor se drastično mijenja. Otpor FS400 prema težini prikazan je na donjem grafikonu:

Kao što je prikazano na gornjoj slici, otpor između dva kontakta senzora opada s težinom ili se povećava vodljivost između dva kontakta senzora.
Otpor čistog vodiča daje:

Gdje, p- Otpor vodiča
l = duljina vodiča
A = Površina vodiča.
Sada razmotrite vodič s otporom "R", ako se na njegov vod vrši pritisak, površina na vodiču se smanjuje, a duljina vodiča se povećava kao rezultat pritiska. Prema formuli, otpor vodiča trebao bi se povećati, jer je otpor R obrnuto proporcionalan površini i također izravno proporcionalan duljini l.
Dakle, s ovim za vodič pod pritiskom ili težinom otpor vodiča se povećava. Ali ta je promjena mala u usporedbi s ukupnim otporom. Za znatnu promjenu mnogi su vodiči složeni zajedno.
To se događa unutar senzora sile prikazanih na gornjoj slici. Ako se pažljivo pogleda, može se vidjeti mnogo linija unutar senzora. Svaka od ovih linija predstavlja vodiča. Osjetljivost senzora je u brojevima vodiča.
Ali u ovom slučaju otpor će se smanjivati s tlakom jer ovdje korišteni materijal nije čisti vodič. Ovdje su FSR robusni uređaji od polimernog debelog filma (PTF). Dakle, to nisu uređaji od čistog vodiča. Oni su izrađeni od materijala koji pokazuje smanjenje otpora s povećanjem sile koja se primjenjuje na površinu senzora.
Ovaj materijal pokazuje karakteristike prikazane na grafikonu FSR.
Ova promjena otpora ne može učiniti ništa ako ih ne pročitamo. Priručni regulator može očitati šanse samo u naponu i ništa manje, za to ćemo koristiti krug djelitelja napona, s tim da promjenu otpora možemo izvesti s promjenom napona.
Razdjelnik napona je otporni krug i prikazan je na slici. U ovoj otpornoj mreži imamo jedan stalni otpor i drugi promjenjivi otpor. Kao što je prikazano na slici, R1 je ovdje konstantan otpor, a R2 je SILA senzor koji djeluje kao otpor.
Srednja točka grane uzima se za mjerenje. S promjenom R2, imamo promjenu na Voutu. Tako imamo napon koji se mijenja s težinom.

Ovdje je važno napomenuti da je ulazni signal regulatora za ADC konverziju nizak od 50µAmp. Ovaj učinak opterećenja djelitelja napona zasnovan na otporu važan je jer struja povučena iz Vout napona-djelitelja povećava postotak pogreške i povećava se za sada ne moramo brinuti o učinku opterećenja.
Sada kada se sila primijeni na SENZOR SILE, napon na kraju razdjelnika mijenja ovaj pin kao spojen na ADC kanal UNO-a, dobit ćemo drugačiju digitalnu vrijednost od ADC UNO-a, kad god se promijeni sila na senzoru.
Ova ADC digitalna vrijednost usklađena je s omjerom radne snage PWM signala, tako da imamo SERVO kontrolu položaja u odnosu na silu koja se primjenjuje na senzor.
Komponente
Hardver: UNO, napajanje (5v), kondenzator 1000uF, kondenzator 100nF (3 komada), otpornik 100KΩ, SERVO MOTOR (SG 90), otpor 220Ω, senzor sile FSR400.
Softver: Atmel studio 6.2 ili aurdino svake noći.
Kružni dijagram i radno objašnjenje
Shema sklopa za upravljanje servo motorom pomoću senzora sile prikazana je na donjoj slici.

Napon na senzoru nije potpuno linearan; bit će bučna. Kako bi se filtrirao šum, kondenzatori se postavljaju preko svakog otpora u djeliteljskom krugu, kao što je prikazano na slici.
Ovdje ćemo uzeti napon koji daje razdjelnik (napon koji linearno predstavlja težinu) i napojiti ga u jedan od ADC kanala Arduino Uno. Nakon pretvorbe uzet ćemo tu digitalnu vrijednost (koja predstavlja težinu) i povezati je s vrijednosti PWM-a i pružiti ovaj PWM signal SERVO motoru.
Tako s težinom imamo PWM vrijednost koja mijenja svoj omjer radne snage ovisno o digitalnoj vrijednosti. Što je veća digitalna vrijednost, veći je omjer radne snage PWM. Dakle, s PWM signalom s većim radnim odnosom, servo vratilo bi trebalo dosezati krajnju desnu ili krajnju lijevu stranu prema slici datoj u uvodu.
Ako je težina manja, imat ćemo niži omjer radne snage PWM, a prema slici u uvodu servo bi trebao dosegnuti krajnju desnicu.
Ovim imamo SERVO kontrolu položaja TEŽINOM ili SILOM.
Da bi se to dogodilo moramo uspostaviti nekoliko uputa u programu i o njima ćemo detaljno govoriti u nastavku.
ARDUINO ima šest ADC kanala, kao što je prikazano na slici. U njima se bilo koji ili jedan od njih mogu koristiti kao ulazi za analogni napon. UNO ADC ima 10-bitnu razlučivost (dakle, cjelobrojne vrijednosti iz (0- (2 ^ 10) 1023)). To znači da će preslikati ulazne napone između 0 i 5 volti u cjelobrojne vrijednosti između 0 i 1023. Dakle, za svaki (5/1024 = 4,9 mV) po jedinici.
Ovdje ćemo koristiti A0 UNO-a. Moramo znati nekoliko stvari.
| 
 | 
Prije svega Arduino Uno ADC kanali imaju zadanu referentnu vrijednost od 5V. To znači da možemo dati maksimalni ulazni napon od 5V za ADC pretvorbu na bilo kojem ulaznom kanalu. Budući da neki senzori pružaju napone od 0-2,5V, s referencom od 5V dobivamo manju točnost, pa imamo uputu koja nam omogućuje promjenu ove referentne vrijednosti. Dakle, za promjenu referentne vrijednosti imamo (“analogReference ();”) Za sada je ostavljamo kao.
Prema zadanim postavkama dobivamo maksimalnu razlučivost ADC ploče, koja iznosi 10 bita, ova se razlučivost može mijenjati pomoću uputa („analogReadResolution (bitovi);“). Ova promjena rezolucije može dobro doći u nekim slučajevima. Za sada to ostavljamo kao.
Ako su gornji uvjeti postavljeni na zadane, možemo očitati vrijednost iz ADC-a kanala '0' izravnim pozivom funkcije "analogRead (pin);", ovdje "pin" predstavlja pin na koji smo spojili analogni signal, u ovom slučaju to je bio bi "A0". Vrijednost iz ADC-a može se pretvoriti u cijeli broj kao „int SENSORVALUE = analogRead (A0); ", Ovom se uputom vrijednost nakon ADC-a pohranjuje u cijeli broj" SENSORVALUE ".
PWM UNO-a može se postići na bilo kojem od pinova simboliziranih kao "~" na ploči PCB-a. U UNO postoji šest PWM kanala. U našu svrhu upotrijebit ćemo PIN3.
| analogWrite (3, VRIJEDNOST); | 
Iz gornjeg stanja možemo izravno dobiti PWM signal na odgovarajućem pinu. Prvi parametar u zagradama je za odabir broja pina PWM signala. Drugi parametar je za upisivanje omjera davanja.
Vrijednost PWM-a Arduino Uno može se promijeniti od 0 do 255. S "0" najniža na "255" najviša. Sa 255 kao omjer radne snage dobit ćemo 5V na PIN3. Ako je omjer radne snage naveden kao 125, dobit ćemo 2,5 V na PIN3.
Sada razgovarajmo o upravljanju servo motorom, Arduino Uno ima značajku koja nam omogućuje kontrolu položaja servo servera samo davanjem vrijednosti stupnja. Recimo ako želimo da servo bude na 30, možemo izravno predstavljati vrijednost u programu. Datoteka zaglavlja SERVO interno se brine o svim izračunima omjera. Ovdje možete saznati više o upravljanju servo motorom s arduinom.
Sada se sg90 može pomicati od 0-180 stupnjeva, imamo ADC rezultat 0-1024.
Dakle, ADC je približno šest puta veći od SERVO POLOŽAJA. Dakle, dijeljenjem rezultata ADC-a sa 6 dobit ćemo približni položaj SERVO ruke. Stoga imamo PWM signal čiji se omjer radne snage linearno mijenja s TEŽINOM ili SILOM. To se daje servo motoru, servo motorom možemo upravljati senzorom sile.

