I denne artikkelen vil vi vurdere hvordan mesteren realiserte ideen hans om å produsere et voltmeter ved hjelp av en servomotor.
For å lage et slikt voltmeter bruker mesteren: Raspberry Pi med Raspian og med installerte Pi-Plates Python 3-moduler, TINKER Pi-Plate, ledninger, 9G servomotor, tykk papp, dobbeltsidig tape, pleksiglass.
Fra pappmesteren skjærer pilen.
Eller du kan skrive den ut på en 3D-skriver. Fil som skal skrives ut på dette lenken.
Pilen er festet til servospaken med dobbeltsidig tape.
Fra plexiglass skjærer panelet.
Skruer den til servomotorens kropp.
Skriver ut en skala (last ned filen her).
Klistrer en skala til pleksiglass.
Kobler servomotoren til kretskortet i henhold til diagrammet. For å måle spenning, må du bruke ledninger koblet til GND og AIN 1.
Deretter må du kalibrere voltmeteret.
Inkluderer Raspberry Pi. Oppretter en Python3-økt, laster TINKERplate-modulen og setter den digitale I / O-kanal 1-modus til “servo.” Nå skal servoen bevege seg til 90 grader.
Deretter setter du pilen til voltmeteret til 6V.
Inntar TINK.setSERVO (0,1,15) for å flytte pilen til posisjon 0V.
Inntar TINK.setSERVO (0,1,165) for å flytte servoen til posisjon 12V.
Hvis pilen avviker fra de gitte målingene, må du justere verdiene 15 og 165
Deretter må du laste ned koden.
importer piplates.TINKERplate som TINK
importtid
TINK.setDEFAULTS (0) # returner alle porter til standardtilstandene
TINK.setMODE (0,1, 'servo') #set Digital I / O-port 1 for å drive en servo
lLimit = 12,0 # Den nedre grensen = 0 volt
hLimit = 166,0 # Den øvre grensen = 12 volt
mens (sant):
analogIn = TINK.getADC (0,1) #read analog channel 1
#skala dataene til en vinkel i området fra lLimit til hLimit
vinkel = analogIn * (hLimit-lLimit) /12.0
TINK.setSERVO (0,1, lLimit + vinkel) #set servovinkel
time.sleep (.1) # utsett og gjenta
Alt er klart.