COMPUTERCLUB FORT­ZEEKANT ­ CCFZ ­ Rommtech CCFZ MOTORSTURING Gelijkstroommotor aansturen vanuit de processor In plaats van een servomotor kan ook een gelijkstroommotor worden gebruikt voor de aandrijving. Er moet dan wel een schakeling worden toegevoegd, die de stroomvoorziening regelt: energietoevoer en draaisnelheid en richting. Onderstaande schakeling dient daarvoor. De naam? H­brug! Spreekt voor zich: de vier transistors T1 tem T4 vormen met de motoraansluitingen een H. Met de door ons gekozen onderdelen kan de motorspanning tot 46 Volt bedragen, de maximale stroom is 4 Ampere (op punt 4). Zeer krachtige motors kunnen hiermee worden aangestuurd. Binnen CCFZ is ze ontworpen en wordt ze gerealiseerd. Hieronder wordt de werking uitgelegd. Maar eerst de onderdelenlijst. Onderdelenlijst L298N Niet­&­poort (NAND): 74HCT 00 Shottky­diodes: D1 … D4: SB 130 Het is best leerzaam om deze componenten te Googelen en de specificaties af te drukken. Ze zijn in het Engels. ­ 1 ­ ROBOTICS CCFZ Aansluitingen In de L298 bevinden zich twee motor aanstuurschakelingen. De aansluitpunten zijn in het schema hierboven vermeld. Tussen haakjes worden de aansluitingen van de tweede set aangegeven. De nummering van de aansluitpunten L298. De werkspanning van de schakeling zelf is 5 Volt op punt 9 aangesloten. Massa moet worden aangesloten op 8. De 1 en 15 worden via een veiligheid van 4 A ook aangesloten op massa. Let er op, dat de stroom van de batterij of accu op kan lopen tot 8 ampère. Gebruik daarom dikke draden. De onderste Niet­En­poort (NAND) is een van de vier van de 74HCT 00. Deze heeft aansluitingen van 5 Volt en massa nodig op respectievelijk de punten 14 en 7. De vier poorten kunnen worden aangesloten op 1 en 2 in en 3 uit, 4 en 5 in en 6 uit, 13 en 12 in en 11 uit, en tenslotte 10 en 9 in en 8 uit. Deze combinaties werken allemaal precies hetzelfde, dus je kunt vrij kiezen. Ze is nodig om voor de rechter helft van de schakeling de 0 en 1 om te keren. Werking Aansluiting A bepaalt de draairichting. Als T1 en T4 geleiden (G) en T2 en T3 dichtstaan (isoleren, 0)), dan gaat de stroom van links naar rechts door de motor, die aangesloten wordt op punten 2 (13)en 3 (14). En als T2 en T3 geleiden en T1 en T4 niet, dan gaat de stroom van rechts naar links, dus de andere kant op, door de motor. Die zal daardoor in tegengestelde richting draaien. Aansluiting B moet met pulsen worden aangestuurd. De breedte van de pulsen bepaalt de draaisnelheid (Pulsbreedte­modulatie). Waarheidstabel Een waarheidstabel verklaart de werking. Voor een aantal punten wordt nagegaan of de spanning hoog (1) is of laag (0) voor de verschillende combinaties van 0 en 1 op de punten A en B. De plaatsen zijn in het schema aangegeven. Voor de transistors is aangegeven of ze gesloten zijn (I), danwel of ze open staan (G). A B G C D E F T1 T4 T2 T3 0 0 0 1 1 1 0 0 0 1 0 0 0 0 I I I I I I G G 1 1 0 1 0 0 0 1 0 0 1 0 0 1 I I G G I I I I Bij een &­poort (AND) moeten beide ingangen 1 zijn om de uitgang 1 te doen zijn. Dat is voor C alleen het geval als zowel A en B 1 zijn. Zo kun je alle mogelijkheden nagaan. Doe dat maar eens. ­ 2 ­ ROBOTICS CCFZ Een npn­transistor isoleert als de basis dezelfde spanning heeft als de emitter. Een pnp­transistor isoleert als de basis dezelfde spanning heeft als de collector. In de schakeling zijn alleen npn­transistors gebruikt. Om het solderen gemakkelijker te maken en goed te kunnen nagaan of je niets vergeten bent te verbinden kun je een tekening maken, die er uit kan zien zoals hieronder is weergegeven. Elke gemaakte verbinding moet je daarbij met een kleurtje omcirkelen. Wat nog niet op zo’n manier is gemerkt moet je dus nog doen. Op de tekening, die ik hieronder plaats, zijn de doorverbindingen zelf ook nog gekleurd: rood voor plus, groen en zwart voor de aansluitingen naar buiten en blauw voor min. Inmiddels is in de aansluiting van < 46 V nog een hoofdschakelaar aangebracht, die de toevoer van het motorvermogen aan­ en uitschakelt. Als je klaar bent met solderen, dan kan het er uitzien als op deze foto. Het printplaatje is ongeveer 7 x 7,5 cm. ­ 3 ­ ROBOTICS CCFZ Je ziet, dat de L298N op een stukje messing hoekstrip is geschroefd. Hiermee wordt de koeling geregeld. Overigens: van enige opwarming is bij onze toepassingen voorlopig geen sprake geweest. Maar wat niet is kan groeien… Een klein stukje printplaat is gebruikt om de 74HCT00 op te monteren. Daarvan wordt gebruik gemaakt van een voetje. Op de foto kun je zien, dat er een aantal dikkere draden is gebruikt. Die zijn natuurlijk om grotere stromen zonder spanningsverlies mogelijk te maken. Een belangrijke opmerking is nog te maken. De aansluitpennen van de L298 buigen gemakkelijk. Daarom zijn de aansluitingen eerst met een printplaatje te verbinden, waarvandaan de verdere aansluitingen zijn gesoldeerd. Uit de tekening en wellicht ook uit de foto kun je afleiden, dat ik voor beide H­bruggen in de L298, de verbindingen heb gemaakt. Motor 1 is links aangesloten op de eerste twee schroefaansluitingen. Daarna A1 en dan B1 voor de eerste motor. Daarachter nog de aansluitingen voor de bron van het motorvermogen. Rechts achtereenvolgend motor 2, A2 en B2 en de 5 volt signaalvoeding, die door de BoE­printplaat wordt geleverd. De zekeringen zijn in dit geval van 3,2 ampère. In de houders passen ook zekeringen met een grotere of kleinere stroomwaarde. Let wel: de L298 kan maximaal 4 ampère leveren. De beide aardaansluitingen van de spanningsbronnen zijn op de printplaat doorverbonden. Tenslotte moet nog worden vermeld, dat ik inmiddels in de plus van de vermogens­ stroom­aansluiting ook nog een schakelaar heb aangebracht. Het bijbehorende programma staat hieronder. Het is altijd spannend om het programma uit te voeren en te constateren of alles werkt zoals je hebt gedacht. Een echte uitdaging…. ­ 4 ­ ROBOTICS CCFZ De aansluitingen van de H­brug op de processor zijn als volgt: Processoraansluitpunt 0 1 2 3 H­brugschakeling A1 B1 A2 B2 Het programma wordt dan: ‘ {$STAMP BS2} ‘ {$BASIC 2.5} DO HIGH 1 HIGH 3 HIGH 0 HIGH 2 ‘De spanning op B1 wordt hiermee de hele tijd vastgezet. ‘Zo ook voor B2. PAUSE 2000” ‘2000 millisecondes is 2 secondes. LOW 0 LOW 2 ‘Hiermee wordt de draairichting omgekeerd voor motor 1. ‘En hiermee voor motor 2. PAUSE 2000 ‘zie boven. LOOP END Met het programma draaien beide motors gedurende 2 seconden de ene en ook 2 seconden de andere kant op. En dat telkens weer. Moet een motor langzamer draaien, dan moet er minder elektrische energie worden geleverd door de H­brug. De toelevering van spanning aan een motor kan met de H­ brug telkens tijdelijk worden onderbroken, zodat de gemiddelde spanning gedurende de tijd daalt. Hieronder zie je een tijdlijn, waar in lichtblauw de lengte van de puls, 40 milliseconden is weergegeven op een tijdas. De tijd tussen te pulsen is hier 24 milliseconden. De gemiddelde spanning is hier dus (40 x 1 + 24 x 0)/ (40 + 24) x 100 % = 62 %. En omdat het vermogen evenredig is met de spanning in het kwadraat is in dit geval het vermogen 14 % ( = 0,38 x 0,38 x 100 %) van het maximum. ­ 5 ­ ROBOTICS CCFZ Het door de H­brug opgenomen vermogen daalt hiermee meer dan evenredig snel. In het volgende programma voor motor 1 wordt dat nog eens uitgerekend. ‘ {$STAMP BS2} ‘ {$BASIC 2.5} ‘variabelen teller VAR a VAR byte byte ‘aantal keer hetzelfde doorlopen. ‘duur van de pauze. a = 0 ‘probeer achtereenvolgens a= 0, 2, 5, 10, 15 en 20 DO HIGH 0 FOR teller = 1 TO 20­a HIGH 1 NEXT FOR teller = 1 TO a LOW 1 NEXT LOOP ‘draairichting ’20 – a tellen spanning ‘a tellen geen spanning In de tabel staat voor een aantal waarden van a de gemiddelde spanning en het daarbij horende afgeleverde vermogen aan de motor. a 0 2 5 10 15 20 Gemiddelde spanning 100 % 90 % 75 % 50 % 25 % 0 % Afgegeven vermogen 100 % 80 % 55 % 25 % 6 % 0 % Het is duidelijk te zien, dat het afgegeven vermogen snel afneemt als a groter wordt. Hoe dat allemaal precies uitpakt, hoe snel een motor zal draaien, hangt natuurlijk ook af van de motorspanning, van de soort gelijkstroommotor en van de belasting van de motor: wat gaat hij aandrijven. Voor een gegeven situatie lijkt het me verstandig een aantal pulsbreedten uit te proberen. ­ 6 ­ ROBOTICS CCFZ Het is ook mogelijk om als proef de motor vanaf volle spanning naar gemiddeld 0 volt geleidelijk afnemend aan te sturen. Zowel voor linksom als voor rechtsom draaiend. Het volgende programma is daarvoor geschikt. Het wordt getoond om de H­brug met een beschikbare motor te testen, maar ook om wat van het programma te leren. De draairichting is op aansluiting 0 van de processor aangesloten; de snelheid op aansluiting 1. Die snelheid wordt geregeld door een periode van 80 tijdseenheden te verdelen in een stuk met spanning (high 1) en de rest met geen spanning (low 1). Het stuk zonder spanning neemt toe van 0 tot 80 tijdseenheden. In het begin is de draairichting op high gezet: high 0. Na een rustpauze van 1000 ms wordt gekeken hoe de situatie van punt 0 is. Als die 0 volt is, dan wordt dat aansluitpunt high (=1) gemaakt, anders low (=0). ' {$STAMP BS2} ' {$PBASIC 2.5} 'variabelen teller VAR byte a VAR byte HIGH 0 DO FOR a = 0 TO 80 FOR teller = 1 TO (80 – a) HIGH 1 NEXT FOR teller = 1 TO a LOW 1 NEXT NEXT PAUSE 1000 IF (in0 = 1) THEN LOW 0 ELSE HIGH 0 ENDIF LOOP END ‘de draairichting, A1 zit op 0 van de processor ‘totdat ingegrepen wordt gaat dit door ‘als a = 0, dan wordt 80 tijdseenheden op punt 1 ‘van de processor high = 1 gegeven. ‘daarna wordt a = nu 0, low gegeven ‘ga zelf na hoe het wordt als a achtereenvolgens ‘1, 2 enz tot 80 toeneemt ‘hier wordt de draairichting omgedraaid ‘als (if) de draairichting 1 is, dan (than) wordt de aansluiting 0 low ‘en anders (else) wordt aansluiting 0 high. De gemiddelde spanning neemt daarmee telkens af. Als je een motor aansluit en met dit programma aanstuurt, dan zie je inderdaad de snelheid van maximaal tot 0 rustig afnemen, wisselend voor de twee draairichtingen. Het werkt dus. Bij je uiteindelijke robot moet je zelf uitmaken hoe snel de motor moet draaien voor je eigen toepassing. Maar daarvoor heb je hiermee in ieder geval de mogelijkheid. Rommtech Electronics ontwikkelde de H­brug verder uit en maakte voor onze vereniging een aantal printplaatjes volgens de professionele normen om te tonen hoe een goed geconstrueerd product er uit ziet. Ook mochten we de bijbehorende componenten voor 20 stuks ontvangen. Hieronder het van componenten voorziene exemplaar. De verdere uitontwikkeling betreft in de eerste plaats een voorziening waardoor de diodes in serie niet beiden tegelijk gaan geleiden als er geen sturing op de punten A ­ 7 ­ ROBOTICS CCFZ en B is. Dat gaat met een (vrij grote) weerstand, die de gewenste ingangsspanning naar 0 volt trekt. De andere toevoeging is, dat gebruikt gemaakt wordt van de mogelijkheid om een stroommeting/­bewaking te realiseren door een kleine weerstand in serie met de zekering op te nemen. Een weerstand van 1 ohm is daarvoor toegevoegd. Afhankelijk van de afgenomen stroom zal daardoor de motorspanning iets lager worden. Die weerstand kan worden overbrugd door een jumper. Nog een opmerking: de weerstanden hebben vier kleurbandjes. Dat is omdat dit 1 %­ weerstanden betreft (de waarde wijkt niet meer dan 1 % af van de aangegeven). Wij gebruikten 5 % weerstanden. Het principe van de kleurcodering blijft in principe hetzelfde. Pakketsamenstelling 1 x printplaat 1 x L298N (brugschakeling) 8 X EGP20c (supersnelle diode) 2 x zekeringhouder 2 x zekering, 2 A, traag 3 x connector, tweepolig 1 x connector, 10­polig 2 x BC547, transistor 2 x weerstand 1 ohm (bruin) ­ 8 ­ ROBOTICS CCFZ 6 x weerstand 10 kilo­ohm (lichtblauw) 2 x weerstand 1 kilo­ohm (donkergrijs) 1 x electrolytische condensator 220 microFarad (polariteitgevoelig!) 5 x condensator 100 nanofarad (blauw) In totaal 36 componenten. Gerede schakeling De gerede schakeling ziet er zó uit: ­ 9 ­ ROBOTICS CCFZ Schakelschema Aansluitingen A B C D A motoraansluiting 1 B motoraansluiting 2 C Motorstroom toevoer (max 2 A; 48 V) D 5 volt en stuursignalen ­ 10 ­ ROBOTICS CCFZ Nogmaals printplaat (getekend) 5 volt en stuursignalen (J5) Telling aansluitpunten van rechtsonder (1) naar links (2). Boven 1 staan respectievelijk 3, 5, 7en 9. Boven 2 staan respectievelijk 4, 6, 8en 10. Uit dit schema blijkt: Punt 1:Motor A: draairichting Punt 3: Motor A: snelheid Punt 5: Motor A: stroommeting Punt 7: NC (Not connected; niet aangesloten) Punt 9: Min (aarde) van de 5 Volt logicaspanning Punt 2: Motor B: draairichting Punt 4: Motor B: snelheid Punt 6: Motor B: stroommeting Punt 8: NC Punt 10: Plus van de 5 Volt logicaspanning. ­ 11 ­