Dit is een volledige H-Bridge bi-directionele bedieningscircuit voor DC motoren voor de
Parallax QuickStart bestuur.
http://www.YouTube.com/watch?v=T7lbAXa1-BS&feature=Youtu.be
Er zijn zes transistors, vier voor de motorische controle, de andere twee sluit de
micro-controller output pinnen aan de motor controller.
Zie het schema hieronder voor de bloederige details.
Het is niet een moeilijke circuit te bouwen op een breadboard.
En het kan grotere transistoren gebruiken voor grotere motoren.
Afhankelijk van wat u nodig hebt voor uw project...
Delen:
4 elke 2N3904 NPN-transistors
2 elke 2N3906 PNP transistors
Motor (dit is een motorreductor)
Breadboard, draden, enz.
Video:
http://www.YouTube.com/watch?v=T7lbAXa1-BS&feature=Youtu.be
Demo:
De demo-programma is geschreven in SPIN voor de Parallax Propeller Microcontroller.
Het is zeer ongecompliceerd. Geen stuurprogramma's of andere objecten zijn vereist als alle dit
demo doet de motor heen en weer wordt uitgevoerd. Het doet dit door het instellen van één van de
motorische controle output pinnen op 1 inschakelen van de transistors voor die richting.
Opmerking de waarschuwing in de code - alleen uitvoer beet tegelijk inschakelen.
Draaien op beide op hetzelfde moment, maakt de transistors zeer boos.
(Dan zult u spijt!)
Zie mijn een-transistor truc voor een liefhebber stuurprogramma. Het laat zien hoe te doen een soft start /
snelheidsregelaar via software gegenereerd PWM (Pulse Width Modulation).
(Hey, het was slechts één transistor. Ik moest iets doen om het interessant!)
Code:
{BiDirectionalMmotorDemo.spin Richard Lamb - 16 juni 2013}
CON
_CLKMODE = XTAL1
_XINFREQ = 5_000_000
' keer definiëren
MSec = _XINFREQ / 1_000
' IO pinnen definiëren
' Let op slechts één motor pin kan worden ingeschakeld op een bepaald moment!
MOT_LFT = 0
MOT_RIT = 1
LED_LFT = 23
LED_RIT = 16
VAR
PUB kloppen
Dira [LED_LFT]: = 1' leds
Dira [LED_RIT]: = 1
Dira [0..1]: = 1' motoren instellen uitgangen
outa [MOT_RIT]: = 0' start met beide lage pinnen
outa [MOT_LFT]: = 0
Herhaal ' Herhaal forever
' Links
Outa [LED_LFT]: = 1' LED op
OUTA [MOT_LFT]: = 1' motor op
Wait(3000)
Outa [LED_LFT]: = 0' LED uit
OUTA [MOT_LFT]: = 0' motor uit
wait(500) ' intermissioin
' Recht
Outa [LED_RIT]: = 1' LED op
OUTA [MOT_RIT]: = 1' motor op
Wait(3000)
Outa [LED_RIT]: = 0' LED uit
OUTA [MOT_RIT]: = 0' motor uit
PUB wait(MS)
waitcnt((MS*msec)+CNT)