QuickStart dubbelriktad motorisk kontroll
Detta är en full H-Bridge dubbelriktad styrkrets för DC motorer för den
Parallax QuickStart styrelse.
http://www.youtube.com/watch?v=T7lbAXa1-BS&feature=youtu.be
Det finns sex transistorer, fyra för motorisk kontroll, de andra två ansluta den
mikro-controller utgångsstift till motor controller.
Se Principschema nedan för de blodiga detaljerna.
Det är inte en svår krets att bygga på en skärbräda.
Och större transistorer kan användas för större motorer.
Beror på vad du behöver för ditt projekt...
Delar:
4 varje 2N3904 NPN-transistorer
2 varje 2N3906 PNP-transistorer
Motor (detta är en inriktad motor)
Bakbord, sladdar, etc.
Video:
http://www.youtube.com/watch?v=T7lbAXa1-BS&feature=youtu.be
Demo:
Demo programmet är skrivet i SPIN för Parallax Propeller mikro-controller.
Det är mycket rättfram. Inga drivrutiner eller andra objekt krävs eftersom alla detta
demo gör körs motorn fram och tillbaka. Det gör detta genom att ange en av de
motorisk kontroll utgångsstift till 1 för att slå på transistorer för den riktningen.
Obs varning i koden - endast aktivera en utgång lite i taget.
Vrida på båda samtidigt gör transistorerna mycket arg.
(Då blir du ledsen!)
En finare drivrutin finns i min en-transistor trick. Det visar hur man gör en soft-start /
varvtalsregulator via programvara som genereras PWM (Pulse bredd Modulation).
(Hej, det var bara en transistor. Jag var tvungen att göra något för att göra det intressant!)
Kod:
{BiDirectionalMmotorDemo.spin Richard lamm - 16 juni 2013}
CON
_CLKMODE = XTAL1
_XINFREQ = 5_000_000
' definiera gånger
MSec = _XINFREQ / 1_000
' definiera IO pinnar
"Observera endast en motor pin kan aktiveras vid någon tidpunkt!
MOT_LFT = 0
MOT_RIT = 1
LED_LFT = 23
LED_RIT = 16
VAR
PUB Throb
Dira [LED_LFT]: = 1' lysdioder
Dira [LED_RIT]: = 1
Dira [0.. 1]: = 1' motors set utgångar
Outa [MOT_RIT]: = 0' start med båda stiften låg
Outa [MOT_LFT]: = 0
Upprepa "Upprepa för evigt
"Vänster
Outa [LED_LFT]: = 1' LED på
OUTA [MOT_LFT]: = 1' motor på
Wait(3000)
Outa [LED_LFT]: = 0' LED av
OUTA [MOT_LFT]: = 0' motor av
wait(500) ' intermissioin
"Höger
Outa [LED_RIT]: = 1' LED på
OUTA [MOT_RIT]: = 1' motor på
Wait(3000)
Outa [LED_RIT]: = 0' LED av
OUTA [MOT_RIT]: = 0' motor av
PUB wait(MS)
waitcnt((MS*MSEC)+CNT)