Snel antwoord

Stapel het L293D motor driver shield op een Arduino Uno, verwijder de stroomjumper alleen als je de eigen schroefterminal van het shield van een aparte motorvoeding voorziet, en sluit de servo aan op een van de twee 5V servo-headers. Als je twee gelijkstroommotoren aanstuurt vanaf een laboratoriumvoeding en in plaats daarvan I2C-besturing wilt, is de mLink L9110-controller een schoner alternatief. De onderstaande stappen behandelen de standaard shield-opbouw.

Wat het L293D shield je daadwerkelijk biedt

Het Motor Drive Shield L293D voor Arduino is ontworpen om motorregeling aan uw projecten toe te voegen. Het biedt twee interfaces voor 5V servo's, aangesloten op de hogeresolutie dedicated timer van Arduino, voor nauwkeurige servowerking. Het is compatibel met Arduino Uno-borden; het bord zelf is niet inbegrepen.

Die combinatie maakt dit shield zo populair: twee DC-motorkanalen plus twee servo-headers op één bord, waarbij de servotiming wordt afgehandeld door een dedicated timer in plaats van uw hoofdlus te blokkeren. Het nadeel is dat de L293D een bipolaire driver is met een echte spanningsval, dus motoren die hoge stroom of zeer lage spanning nodig hebben, kunnen zich mogelijk niet goed gedragen. Controleer de blokkeerstroom van uw motor voordat u zich vastlegt.

Controleer uw motor en voeding voordat u iets aansluit

Twee getallen bepalen of deze opbouw werkt: de blokkeerstroom van de motor en de voedingsspanning. De L293D heeft een spanningsval van ongeveer 1.4 tot 2 V over de interne transistors, dus een 6 V motor op een 6 V voeding zal traag aanvoelen. Plan een voeding die een paar volt boven de nominale spanning van de motor ligt en controleer of de stroom per kanaal binnen het bereik van de driver valt.

Als uw motoren meer stroom trekken dan het shield comfortabel kan leveren, of u wilt snelheidsregeling met 255 stappen in elke richting via een eenvoudige I2C-verbinding, dan is de mLink L9110 DC-motorcontroller het overwegen waard. Het is een seriële (I2C) 2-kanaals DC-motor driver die tot twee DC-motoren kan aansturen met een maximale stroom van 800 mA per motor, met onafhankelijke richtings- en snelheidsregeling.

De voedingsjumper: het enige dat mensen verkeerd doen

De stroomjumper van het shield verbindt de 5V-rail van de Arduino met de logische voeding van de motordriver. Met de jumper op zijn plaats haalt het shield de logische spanning van de Uno, en heb je nog een aparte voeding nodig voor de motoren zelf via de schroefklem.

Verwijder de jumper alleen wanneer je de 5V-logische pin van het shield voedt vanuit een externe geregelde 5V-bron. Als je hem verwijdert en vergeet die pin van stroom te voorzien, valt de logische kant uit en beweegt er niets – de meest gemelde oorzaak van een 'dood shield'. Laat hem zitten bij een normale Uno-opbouw.

  • Jumper aanwezig: logica van de 5V-rail van de Arduino, motoren van de schroefklem.
  • Jumper verwijderd: je moet zelf geregelde 5V aan de logische pin van het shield toevoeren.
  • Voer nooit motorspanning in op de 5V logische pin.

Servo-headers en de speciale timer

De twee 5V servo-interfaces zijn aangesloten op de hogeresolutie speciale timer van de Arduino, wat betekent dat servopulsen nauwkeurig blijven, zelfs terwijl je sketch bezig is met andere taken. Dat is een echt voordeel ten opzichte van bit-bangen van servopulsen in software, waar jitter zich uit als trillen.

Voeding is het probleem. Servo's kunnen een verrassende inschakelstroom trekken wanneer ze beginnen te bewegen, en die van de 5V-regelaar van de Uno halen, kan de board laten brownouten. Voor alles wat verder gaat dan een kleine micro-servo, voed je de servorail vanuit een externe 5V-voeding en deel je de massa met de Arduino.

De bouw netjes afronden

Voor de bedrading van de motor en voeding biedt een 2.1mm DC-voedingsstekker een soldeerbare mannelijke stekker met een binnendiameter van 2.1mm en een constructie van kunststof en metaal, handig wanneer u een laboratoriumvoedingskabel of een accupakket wilt aansluiten op de schroefaansluiting van het shield. Soldeerverbindingen houden de verbinding veilig onder trillingen, wat belangrijk is bij alles wat beweegt.

Houd de motordraden gedraaid en kort, leid ze weg van de servosignaalijnen en voeg een gemeenschappelijke aarde toe tussen de Arduino en de externe voeding. Als een motor trilt maar niet draait, vermoed dan de voeding of de jumper voordat u de code herschrijft.

Stap voor stap: L293D shield bouwen

  1. 1. Stem de motor af op de driver: Zoek de nominale spanning en de blokkeerstroom van uw motor op. De L293D heeft intern een spanningsval van ongeveer 1.4 tot 2 V, kies dus een voeding die een paar volt boven de motorspecificatie ligt en houd de stroom per kanaal binnen de limieten van de driver. Als de getallen niet kloppen, schakel dan over naar de mLink L9110, die geschikt is voor 800 mA per motor. Controlepunt: als u geen blokkeerstroomwaarde kunt vinden, meet deze dan of kies een driver met een gepubliceerde bovengrens.
  2. 2. Plaats het shield op de Uno: Schakel de Arduino uit, lijn de headers van het shield uit met de pinnen van de Uno en druk het volledig aan. Het shield is compatibel met Arduino Uno-borden, en het bord is niet inbegrepen, dus controleer of u een Uno heeft en geen bord met een andere pinconfiguratie. Controlepunt: een shield dat één pinrij verschoven zit, zal vaak nog opstarten maar zich onregelmatig gedragen.
  3. 3. Bepaal de toestand van de voedingsjumper: Laat de jumper op zijn plaats voor een normale opbouw, zodat het shield de logische voeding van de 5V-rail van de Arduino neemt. Verwijder hem alleen als u zelf geregelde 5V aan de logische pin van het shield toevoert. In beide gevallen krijgen de motoren hun eigen voeding via de schroefklem. Veelgemaakte fout: de jumper eruit halen en je dan afvragen waarom het board dood is. Als er niets oplicht, plaats dan eerst de jumper terug.
  4. 4. Bedraad de externe motorvoeding: Sluit uw motorvoeding aan op de schroefterminal van het shield, met inachtneming van de polariteit. Gebruik een gesoldeerde 2.1 mm DC-stekker als u een voeding of batterijkabel afsluit, en verbind de massa van de voeding met de massa van de Arduino. Controlepunt: meet de klemspanning voordat u motoren aansluit, en voer nooit de motorspanning naar de 5V logische pin.
  5. 5. Sluit de twee gelijkstroommotoren aan: Plaats motor A op het eerste uitgangspaar en motor B op het tweede. Als een motor de verkeerde kant op draait, verwissel dan de twee draden in plaats van de code aan te passen, en houd de draden kort en gedraaid. Controlepunt: test één motor tegelijk, zodat een bedradingsfout op het ene kanaal het andere niet maskeert.
  6. 6. Voeg de servo toe: Sluit een 5V servo aan op een van de twee servo-headers, die zijn aangesloten op de hogeresolutie dedicated timer van de Arduino voor nauwkeurige werking. Gebruik voor alles groter dan een micro-servo de externe 5V voeding voor de servo-rail in plaats van de regelaar van de Uno. Veelgemaakte fout: een belaste servo laten werken vanaf de 5V pin van de Arduino en willekeurige resets krijgen wanneer deze beweegt.
  7. 7. Upload en verifieer: Laad een sketch die elke motor vooruit, dan achteruit laat draaien, en vervolgens de servo laat zwaaien. Houd de spanningsdaling op de meter in de gaten terwijl de motoren draaien, en bevestig dat de servo zijn positie behoudt zonder te trillen. Volgende stap: als een kanaal onder belasting vastloopt, controleer dan de voedingsspanning en stroomreserve voordat je de code aanraakt.

Onderdelen gebruikt in deze bouw

  • Motor Driver Shield L293D voor Arduino: Motor Driver Shield L293D voor Arduino: twee 5V servo-interfaces aangesloten op de speciale hogeresolutietimer van de Arduino; compatibel met Arduino Uno-borden (bord niet inbegrepen). Geeft je twee motorkanalen en twee servo-headers op één stapelbaar bord, waarbij de servo-timing in hardware wordt afgehandeld in plaats van in je sketch.
  • mLink L9110 DC-motorcontroller: mLink L9110 Motorcontroller: seriële (I2C) 2-kanaals DC-motor driver, geschikt voor maximaal twee DC-motoren met een maximum van 800mA per motor, met onafhankelijke richtings- en snelheidsregeling in 255 stappen per richting. Een betere keuze als u I2C-regeling wilt of de stroomlimiet per motor vooraf wilt weten in plaats van te schatten.
  • 2.1mm DC-voedingsstekker (male): 2.1mm DC-stekker (male): male stekker met 2.1mm binnendiameter, kunststof en metalen constructie, soldeerverbindingen voor een veilige bevestiging, ontworpen voor DC-voedingstoepassingen. Hiermee kunt u een voeding of batterijleiding beëindigen op de schroefaansluiting van het shield met een gesoldeerde, trillingsbestendige verbinding.