Styra riktning och hastighet av DC-Motor med Raspberry Pi (1 / 1 steg)

Steg 1: Kontrollera riktningen av DC-motor via RPi



Styra DC-motor användande RPi

Vår nästa uppgift är att styra en DC-motor med python skript och GPIO headers på raspberry pi och detta kommer att skapa en bild av "hur roboten fungerar" i vårt sinne. (Som ni vet användning av sensorer med rpi) kan du styra fan av ditt rum enligt vädret utanför. Gör alla dessa kommer att få dig att förstå de grundläggande reglerna för robotteknik.

Vi kontrollerar en DC motor som kommer att behöva åtminstone 400mA av strömmen att fungera ordentligt men vår RPi kan leverera nästan 20mA bara. Det innebär att vi har att ansluta en DC strömkälla externt. Det är inte ett problem! Vi har små batterier 6V och 9V tillgängliga på marknaden.

Varning: Anslut inte en motor direkt till Raspberry Pi, det kommer att skada din Raspberry Pi.

Uppenbarligen behöver vi en motor controller IC att kontrollera funktionaliteten i motorn (att rotera bilden medurs eller moturs). Det är bättre att börja med L293D motor controller IC.

Krav:

· Raspberry Pi med SD-kort förinstallerat med Raspbian

· En skärbräda

· En L293D motor driver IC

· Hoppare ledningar (hane till hane) och hona till hane

· En likströmsmotor fått för 6v

· Ett 6V eller 9V batteri.

L293D

Det är en motor driver IC vi kan styra 2 motorer i taget från den. Dess pin-konfiguration visas nedan. Det är en 16 pin IC som inkluderar (på ena sidan) en Vcc (att driva upp), en GND pin, en aktivera pin (på on och off en motor), två ingångar motsvarar två utgångar.

Anslutningar:

· Anslut först den Vcc pin av L293D till 5V (3.3V kan också användas)

· Nu ansluta i trädgården

· Vi använder GPIO-2,3,4 för att styra IC. (GPIO-02 & GPIO-03 som ingång 1 & 2 respektive)

· Anslut GPIO-04 till respektive aktivera pin av IC.

· Nu slutligen ansluta utgång 1 & 2 både på anslutningen av motorn som visas i figur.

Python-koden:-

importera RPi.GPIO som GPIO

från att importera sömn

GPIO.setmode (GPIO. BCM)

Motor1A = 02

Motor1B = 03

Motor1E = 04

GPIO.setup (Motor1A, GPIO. OUT)

GPIO.setup (Motor1B, GPIO. OUT)

GPIO.setup (Motor1E, GPIO. OUT)

skriva ut "Motor kommer att börja"

GPIO.output (Motor1A, GPIO. HÖG) # att köra motorn medurs

GPIO.output (Motor1B, GPIO. LÅGA) # sätta det högt att rotera motor i moturs riktning

GPIO.output (Motor1E, GPIO. HÖG) # bör alltid hög att starta motor

Sleep(5)

skriva ut "Stoppa motor"

GPIO.output (Motor1E, GPIO. LÅGA) # att stoppa motorn

GPIO.cleanup()

Efter att ha kört ovanstående kod börjar din motor Rotera medurs i 5 sekunder. Genom att ändra ovanstående kod kan ni vända på det. Nu kan vi göra en bil med två eller fyra motorer.

Kontrollera hastigheten på DC-motor användande RPi

Som ni vet på några av de platser vi måste också kontrollera hastigheten på motorer. Från avsnittet ovan du förstått ON-OFF kontroll av motorerna men det är inte tillräckligt rätt?? Nu bör du har en fråga i ditt sinne att hur vi kan producera analog spänning från GPIO stift av RPi. Inga problem eftersom vi kan producera spänning pulser från det via PWM (pulse bredd modulering) och kontrollera utspänning av GPIO pin.

Pulse bredd Modulation

Det är en mycket enkel process från vilken vi kan kontrollera spänning frekvensen av källan. PWM modulen är tillgänglig för GPIO i RPi & som vi vet

Tid = 1/frekvens

Så om jag väljer en frekvens på 100Hz än det innebär tidsperioden är 10m SEK (spänningen är triged till "Hög" för 10m s). Vår batteri levererar 9V till motor och minska hastigheten vi måste minska denna spänning. Så om vi vill minska hastigheten till hälften än vi måste ändra dutycycle (det är andelen den tidsperiod för vilken spänning är hög) till 50.

Som spänning tillförs kontrollerar motorn av aktivera pin motor förarens IC - L293N så vi behöver bara gälla PWM aktivera pin att variera hastigheten. Nedan är python koden att förstå PWM och som behöver anslutningen ovan i föregående tråd (kontroll likströmsmotor via RPi).

>>> importerar RPi.GPIO som GPIO # import GPIO bibliotek

>>> från att importera sömn

>>> GPIO.setmode (GPIO. BCM)

>>> Motor1A = 02 # ange GPIO-02 som ingång 1 registeransvariges IC

>>> Motor1B = 03 # ange GPIO-03 som Input 2 registeransvarige IC

>>> Motor1E = 04 # ange GPIO-04 som aktivera pin 1 registeransvariges IC

>>> GPIO.setup (Motor1A, GPIO. OUT)

>>> GPIO.setup (Motor1B, GPIO. OUT)

>>> GPIO.setup (Motor1E, GPIO. OUT)

>>> pwm = GPIO. PWM(04,100) # Konfigurera aktivera pin: GPIO-04 för PWM

>>> pwm.start(50) # start den med 50% dutycycle

>>> skriva ut "Gå vidare"

>>> GPIO.output (Motor1A, GPIO. HÖG)

>>> GPIO.output (Motor1B, GPIO. LÅG)

>>> GPIO.output (Motor1E, GPIO. HÖG)

>>> sleep(2)

# Detta kör din motor i riktning framåt i 2 sekunder med 50% fart.

>>> pwm. ChangeDutyCycle(80) # ökande dutycycle till 80

>>> skriva ut "Gå bakåt"

>>> GPIO.output (Motor1A, GPIO. HÖG)

>>> GPIO.output (Motor1B, GPIO. LÅG)

>>> GPIO.output (Motor1E, GPIO. HÖG)

>>> sleep(2)

# Detta kör din motor i omvänd riktning för 2 sekunder med 80% snabbare genom att leverera 80% av batteriets spänning

>>> skriva ut "Sluta nu"

>>> GPIO.output (Motor1E, GPIO. LÅG)

>>> pwm.stop() # stop PWM från GPIO utgång är det nödvändigt

>>> GPIO.cleanup()

Hoppas det fungerar för dig!

Se Steg
Relaterade Ämnen

Styra riktning och hastighet av en DC motor med LabVIEW och FPGA

Ett enkelt projekt som låter dig styra en DC-motor med hjälp av FPGA och LabVIEW.Steg 1: Hardware design För att styra riktning och hastighet för en DC-motor jag designar en H bro med kompletterande mosfet transistorer (IRF3205 + IRF4905) och för för...

Läsa och skriva från serieporten med Raspberry Pi

I den här guiden kommer vi se hur man använder den seriella porten på Raspberry Pi. Vi använder den seriella porten tillgängliga på hallon med en RS232/TTL 3-5, 5V-adaptern och en USB-seriell adapter. Som standard konfigureras Raspberry Pi: s seriell...

IBeacon porttelefon med Raspberry Pi och Azure

I slutet av mars gick jag till en hackathon på Universal Studios. Vi skapat ett system där gäster kunde förbifartsleden kö linjen genom att fylla i en serie som skulle leda dem runt landet Ritten är i där den genomsnittliga sluttid var 66% av nuvaran...

Servomotor konverteras till motor (med hastighet & riktning kontroll)

Syftet med detta Instructable är att konvertera en servomotor 9g till en motor medan bevara servo-drivrutinen för att styra den roterande hastighet och riktning. Inga elektroniska modifiering krävs för detta Instructable. Inget behov av heta lödkolv!...

Kontroll DC och stepper motors med L298N Controller moduler med dubbla motorer och Arduino

Du behöver inte spendera en massa pengar att styra motorer med en Arduino eller kompatibel styrelsen. Efter lite jakt runt vi kan hittade en snygg motorisk kontrollmodul baserad på L298N H-bridge IC som kan du styra hastighet och riktning av två liks...

Styra en Motor med avstånd ultraljudssensorer (HC-SR04)

Hej alla! I detta projekt kommer vi att kontrollera riktningen av en motor med två allt ultraljudssensorer.Om rätt sensorn utlöses, kommer att motorn snurra motsols.Om den vänstra sensorn utlöses, kommer motorn snurra medsols.Om båda sensorerna eller...

Mexikanskt... Watt?? Beräkna watt på motorer med förstärkare och Volt avläsningar.

Numera är det lätt att mäta watt till hushållsmaskiner med Kill-A-Watt meter. Dock bor i Mexiko, beställa en över gränsen skulle vara kostnadseffektivt oöverkomliga som fraktkostnader skulle vara högre än kostnaden för mätaren själv, och det är utan...

Styra DC motorer med MSP430 Launchpad

Hej folk,I detta Instructable ska vi Kontroll två DC motorer med MSP430 Launchpad och L293D motoriska kontroll Chip.Den ursprungliga artikeln finns online härHär använder vi en Motorisk kontroll Booster Pack (eller sköld) för MSP430 Launchpad utveckl...

Kontroll av en DC motor med Arduino och Visual Basic

Hej vänner detta är mitt första inlägg i instructables.com där jag kommer att försöka ge mer nyhet des ofta.Idag är temat med Arduino och Visual Basic.Det projekt som vi ser idag är controller en dc-motor med Arduino och Visual Basic.För att styra en...

Kör en Stepper Motor med en Arduino och en A4988 Stepstick/Pololu drivrutin

Det finns flera sätt att göra en stegmotor som kör, och det bästa sättet beror på tillämpningen, motor och elektronik tillgängliga. För att köra en stegmotor från en Arduino är dessa de huvudsakliga sätt att gå1. en ULN2003 Darlington förare ombord....

Kontrollera din motors med L293D och Arduino

efter lång forskning och försök och misstag, jag kom till en ny genomgång om detta fina chip, L293D.Varje projekt är ett projekt och var och en har sin egen unika power konfigurationer, så du måste vara medveten om det bästa batteri valet och hur du...

1sheeld styra musikvolym och led bar med skjutreglaget

vill du att visualisera musikvolymen på en led bar?vi gör det lätt som att andas speciellt när du använder den fantastiska 1sheeld.Projektet handlar om hur man styr musikvolymen och Visualisera volymnivån på en led bar på ett enkelt sätt med den fant...

Anslut dc-motor med arduino och kontroll i vänster och höger

I detta projekt kan du styra dc-motor med arduino med L23NEse fler projekt i www.arduinoo.tk...

Gränsyta för motorer med Arduino

Gränsyta för olika typer av motorer med en mikro-controller är bland de mest grundläggande färdigheter en maker/robotics entusiasten behov att bemästra. I detta projekt ska jag bygga upp på den tidigare projektet Smart telefon kontrollerad LED-lampor...

Använder en temperaturgivare som kontrollerar hastigheten på en motor med hjälp av arduino

Denna ansökan är lätt bara genom att använda temperatursensor LM35 med en arduino kit att kontrollera en fläkt och ändra dess hastighet med avseende på temperaturen läsa av mikro-controller som i detta fall är den arduino kit.Temperatursensor LM35 fö...

Hur man gör en anpassad elektriska Go-Kart och borstlösa DC Motor

detta Instructable information om design och tillverkning av min elektriska go-kart. Dock kan de principer och metoder jag använt tillämpas på liknande fordon.Eli-Kart växte fram ur ett intresse till mig att skapa en enkel, pålitlig, personliga elekt...

Kontrollera en stegmotor med Raspberry Pi och Piface

Uppdaterad April 2015Jag har gjort detta eftersom jag har hittat några projekt med hjälp av PiFace.Forumämnet på www.raspberrypi.org:http://www.raspberrypi.org/phpBB3/viewtopic.php?f=37&t=54314&p=413902Här är ett enkelt projekt som bara behöver en...

Kör en CDROM Borstlös Motor med Arduino

en borstlös likströmsmotor eller BLDC är en typ av motor utan varje brush. Det innebär att det finns ingen direkt anslutning (pensel) mellan roterande spindel och andra fasta delar som rullar. Så är spinning avkastningen av förändringar i nuvarande r...

Styrning av motorer med Arduino

detta är en enkel Instructable att berätta hur du kan kontrollera DC motorer med en Arduino. Det begärdes av en kollega användare så jag tänkte jag skulle gå vidare och kasta något tillsammans. Jag kommer att använda en enkel h-bridge IC med vissa Ar...