Dual 2A DC motordriver

Dual 2A DC motordriver

Dual 2A DC motordriver

En simpel, billig og alsidig dual motor driver, der kan drive 2 stk. DC motorer kontinuerligt med en belastning på 2A hver på op til 35V DC.

2a_dual_driver01

Baggrund

Til mit robotprojekt købte jeg en platform med 2 stk. 7,2VDC 2,4A motorer der trækker to gummibælter til fremdrift (se mere her). Derfor havde jeg brug for en form for driver til disse motorer, da de skulle kunne køre begge veje og kunne hastighedsreguleres med PWM (Pulse Width Modulation) fra en microcontroller. Efter lidt søgen på nettet, kunne jeg se at en L298 driver kreds var et godt udgangspunkt, og den er også lige nøjagtig stor nok til at kunne trække begge motorer. Den er også til at få fat i for penge, så jeg fik nogle stykker hjem.

Jeg havde en idé om at drivermodulet skulle udfærdiges på en sådan måde, at den kunne bruges til andre projekter senere hen. Derfor var det vigtigt at den blev alsidig og at stort set alle de funktioner der var mulighed for blev gjort tilgængeligt. Det ser ud til at være lykkedes meget godt. 🙂

 

Stykliste

Antal Beskrivelse
1 stk. L298N Dual Full-Bridge driver
1 stk. LM7805 5V Positiv DC voltageregulator
1 stk. 470μF/50V electrolyt kondensator
4 stk. 100nF kondensator
1 stk. 220μF/25V electrolyt kondensator
9 stk. 1N5822 Schottky 3A power dioder
1 stk. LED
1 stk. 1 kΩ 0,25W modstand
2 stk. 0,5 Ω 5W effektmodstand
3 stk. Printterminal, 2 polet
13 stk. PCB male header
1 stk. Jumper
1 stk. VeroBoard eller råprint der kan huse komponenterne

Opbygning

Her er diagrammet for driveren.

dual_2a_motordriver_schematics

Driveren spændingsforsynes via printterminal J1. Der er placeret en sikring og D10 sidder som polaritetsbeskyttelse, ved at den kortslutter forsyningen, hvis den poles forkert. Herved springes sikringen, og driveren tager forhåbentligt ikke skade. C1 er til at have lidt kapacitet til at tage evt. store strømpeaks. Værdien her kan evt. ændres efter behov.

Da L298 skal bruge en 5VDC spænding til logikken, har jeg valgt at sætte en LM7805 på også. Den afkobles med 2 stk. 100nF kondensatorer jf. databladet for at undgå at den skulle blive forstyrret. Der er også en 220uF kondensator til at have lidt kapacitet ved peaks. JP1 skifter mellem intern forsyning, altså via LM7805’eren eller ekstern forsyning, gennem J4, interface konnektoren. OBS! Selvom L298 kan benyttes med op til 46V DC, så kan LM7805 ikke klare mere end 35V DC.

D9 indikerer at der er spænding på logikdelen.

L298’eren er koblet til jf. specifikationerne i databladet for den. Det er vigtigt at få den afkoblet på de 2 forsyningsben med 100nF hvert sted. De 2 effektmodstande benyttes til at kunne måle / overvåge strømforbruget på hver kanal/motor. Her kan f.eks. etableres et overbelastnings beskyttelseskredsløb. Som min driver er udformet, så bliver Sense signalet blot lagt ud i J4, interfacet således det kan bruges i det man kobler til. Hvis man ikke ønsker et sense output, kan man blot sætte en lus i istedet for modstandene.

D1-D8 er “flywheel”-dioder og er beregnet til at tage de spændingsspidser der dannes i motorens viklinger, når der afbrydes/pulses til motoren. Det er vigtigt det er Schottky dioder, da de skal være ret hurtige. De skal desuden kunne tage mindst den strøm motoren bruger.

Jeg forsøgte at få driveren ned på et stykke VeroBoard, men efter ganske kort tid, fandt jeg ud af, at det ikke ville blive nemt. Især ikke fordi L298 kommer i et MulitWatt15 hus, som ikke har 2,54mm benafstand, og derfor passer den ikke på et stykke VeroBoard. Derfor har jeg lavet et enkeltsidet print til det. Se mit layout her under (hent layout som PDF til fremstilling af film til fotoprint):

2a_dual_driver02 bottom_copper_pcb componentlayout

Hvis man ikke har lyst til og/eller mulighed for selv at fremstille print, kan man godt få den presset ind i på et standard VeroBoard eller man kan købe et breakboard som det her: http://www.electrozone.dk/robotics/motorcontrollers/breakout-board-for-l298n-full-bridge-motor-driver.html

Interfacing

For at kontrollerer driveren og dermed motorerne, benyttes J4 interfacet. Udover 5VDC ind eller ud (alt efter JP1s position), er der til hver motorkanal 4 pins i interfacet: 2 input, 1 enable og 1 sense.

De 2 inputpins benyttes til at vælge omløbsretning på motoren, bremse eller lade den løbe frit.

Input 1 Input 2 Enable Motor
X X 0 Friløb
0 0 1 Bremset
1 0 1 Frem
0 1 1 Bak
1 1 1 Bremset

(X = Ubetydelig)

Hvis man ønsker at hastighedsregulere sine motorer, kan dette gøre med PWM på Enable. Som man kan se på sandhedstabellen, vil motoren være i friløb, når enable er lav. Hvis man ønsker at den skal bremse i den del af dutycyclen, hvor PWM signalet er lavt, så skal der pulses på Input1/2 benet, og Enable skal være høj konstant. Dette er alt efter behov og den konkrete situation.