DRV8825: drivrutinen för stegmotorer

drv8825

Un motorförare Det är en krets som gör det möjligt att styra likströmsmotorer på ett mycket enkelt sätt. Dessa styrenheter låter dig hantera spänningar och strömmar med vilka motorn matas för att kontrollera rotationshastigheten. Dessutom fungerar de som en skyddsmetod för att förhindra att elektroniken hos motorerna skadas genom att begränsa strömmen som cirkulerar (hackning).

Därför, om du ska skapa ett DIY-projekt som kommer inkludera en eller flera likströmsmotorerOavsett vilken typ de är, och särskilt för stegmotorer, bör du använda en motorförare för att göra det lättare för dig. Även om det finns metoder för att göra det annorlunda, med hjälp av transistorer, är moduler med motorförare mycket mer praktiska och enkla. Faktum är att dessa förare är beroende av transistorer för att göra sitt jobb ...

Varför behöver jag en förare?

El föraren är nödvändig för motorstyrning, som jag har sagt tidigare. Du måste också komma ihåg att Arduino-kortet och dess mikrokontroller inte kan driva motorns rörelse. Den är helt enkelt utformad för digitala signaler, men den skulle inte fungera bra när lite mer kraft måste levereras som det krävs av dessa typer av motorer. Det är därför du måste ha detta element mellan Arduino-kortet och motorerna.

Förartyper

Vet att det finns flera typer av drivrutiner beroende på vilken typ av motor de är avsedda för. Detta är viktigt att veta hur man kan skilja det för att få rätt förare:

  • Drivrutin för unipolär motor: de är de enklaste att kontrollera, eftersom strömmen som strömmar genom spolarna alltid går i samma riktning. Förarens jobb måste helt enkelt veta vilka spolar den måste aktivera vid varje puls. Ett exempel på denna typ av styrenhet är ULN2003A.
  • Drivrutin för bipolär motor: dessa motorer är mer komplexa och deras drivrutiner också, som DRV8825. I detta fall kan de aktiveras med ström i en eller annan riktning (nord-syd och syd-nord). Det är föraren som bestämmer riktningen för att ändra polariteten för magnetfältet som produceras inuti motorn. Den mest kända kretsen för att vända riktningen kallas Punete H, så att motorn kan rotera i båda riktningarna. Den H-bron består av flera transistorer.

De senare har blivit ännu mer populära de senaste åren eftersom de också ingår i vissa 3D skrivare för att kontrollera utskriften med huvudet. Det är möjligt att om du tänker montera en 3D-skrivare eller om du redan har en, behöver du en av dessa för att kunna styra motorn eller byta ut den här delen om den har skadats. De används också för robotar, plottrar, konventionella skrivare, skannrar, elektroniska fordon och en lång etc.

DRV8825

Det finns flera modeller av förare på marknaden. Till exempel honom DRV8825 är en uppgraderad version av A4988. Den här drivrutinen behöver bara två digitala utgångar från mikrokontrollern för att kunna hantera motorn ordentligt. Bara med det kan du styra motorns riktning och steg med dessa två signaler. Det vill säga, med detta är det möjligt att utföra stegning eller att motorn roterar steg för steg istället för att rotera snabbt som andra enkla motorer.

DRV8825 gör det möjligt att arbeta med högre spänningar än de som används av A4988, sedan den kan nå 45v istället för A35s 4988v. Det kan också hantera högre strömmar, speciellt 2.5A, det är en halv förstärkare mer än A4988. Utöver allt detta lägger den här nya drivrutinen till ett nytt 1/32 mikrostegläge (1/16 för A4988) för att kunna flytta stegmotoraxeln mer exakt.

annars de är ganska lika. Till exempel kan båda nå höga driftstemperaturer utan problem. Därför, om du följer med dem med en liten kylfläns, mycket bättre (många modeller har redan den), speciellt om du ska använda den över 1A.

Om inkapslingen når höga temperaturer bör du som försiktighetsåtgärd stänga av den. Det skulle vara trevligt att konsultera datablad av den modell du har köpt och se den maximala temperaturen vid vilken den kan fungera. Att lägga till en temperatursensor bredvid drivrutinen för att övervaka temperaturen och använda en krets som avbryter operationen om den når den gränstemperaturen rekommenderas starkt ...

DRV8825 har skydd mot problem överström, kortslutning, överspänning och övertemperatur. Därför är de mycket pålitliga och motståndskraftiga enheter. Och allt för ett ganska lågt pris i specialbutiker där du hittar den här komponenten.

Mikrosteg

mikrosteg

Med tekniken för mikrostegsteg som är lägre än det nominella steget kan uppnås av stegmotorn du ska använda. Dela upp turen i fler delar för att kunna gå långsammare eller mer exakt. För att göra detta varieras strömmen som appliceras på varje spole genom att emulera ett analogt värde med tillgängliga digitala signaler. Om perfekta sinusformade analoga signaler uppnås och 90 ° ur fas med varandra, skulle önskad rotation uppnås.

Men naturligtvis kan du inte få den analoga signalen, för vi arbetar med digitala signaler. Det är därför dessa bör behandlas för att försöka simulera den analoga signalen genom små hopp i den elektriska signalen. Motorns upplösning beror på detta: 1/4, 1/8, 1/16, 1/32, ...

För att välja den upplösning du vill ha måste du styra modulens M0-, M1- och M2-stift. Stiften är anslutna till jord eller GND genom uppdragningsmotstånd, så om ingenting är anslutet kommer de alltid att vara LÅGA eller 0. För att ändra detta värde måste du tvinga värdet 1 eller HÖG. De värdena M0, M1, M2 de som måste följa upplösningen är:

  • Fullt steg: Låg, Låg, Låg
  • 1/2: Hög, Låg, Låg
  • 1/4: Låg, Hög, Låg
  • 1/8: Hög, Hög, Låg
  • 1/16: Låg, Låg, Hög
  • 1/32: alla andra möjliga värden

pinout

DRV8825 stift ut

El DRV8825-drivrutinen har ett enkelt anslutningsschema, men att ha tillräckligt med stift kan vara lite komplicerat för de mindre experterna. Du kan se det på bilden ovan, men se till att placera modulen ordentligt när du tittar på stiften, eftersom det är vanligt att göra misstag och ta den inverterad, vilket resulterar i en dålig anslutning och till och med skada.

Como rekommendation att ansluta drivrutinenrekommenderas att du justerar och kalibrerar enheten ordentligt genom att följa stegen nedan för korrekt användning och inte för att skada den:

  1. Anslut drivrutinen till spänningen utan motor ansluten eller mikrosteg.
  2. Mät med en multimeter spänningen som finns mellan GND och potentiometern.
  3. Justera potentiometern tills det är rätt värde.
  4. Nu kan du stäng av strömmen.
  5. Just nu kan du anslut motor. Och anslut strömmen till dykaren igen.
  6. Med multimetermåttet intensiteten mellan föraren och motorn steg för steg så kan du göra en finjustering av potentiometern.
  7. Stäng av strömmen igen och nu kan du ansluta den till Arduino.

Om du inte ska använda mikrosteg kan du justera regulatorns intensitet upp till 100% av motorns märkström. Men om du ska använda den måste du sänka denna gräns, eftersom värdet som sedan cirkulerar kommer att vara högre än det uppmätta ...

l298n
Relaterad artikel:
L298N: modul för styrning av motorer för Arduino

Integration med Arduino

ARduino och DRV8825 schematisk

För att använda DRV8825-drivrutinen med Arduino, anslutningen är ganska enkel som du kan se högst upp i detta elektroniska schema från Fritzing:

  • VMOT: ansluten till ström upp till 45v maximalt.
  • GND: mark (motor)
  • SLP: vid 5v
  • RST: vid 5v
  • GND: till mark (logik)
  • STP: till Arduino-stift 3
  • DIR: till Arduino pin 2
  • A1, A2, B1, B2: till stegmotor (motor)

När den väl är ansluten och korrekt justerad är koden för dess kontroll också enkel. Till exempel, för att styra en stegmotor kan du använda följande kod i Arduino IDE:

const int dirPin = 2;
const int stepPin = 3;
 
const int steps = 200;
int stepDelay;
 
void setup() {
   // Configura los pines como salida
   pinMode(dirPin, OUTPUT);
   pinMode(stepPin, OUTPUT);
}
 
void loop() {
   //Se pone una dirección y velocidad
   digitalWrite(dirPin, HIGH);
   stepDelay = 250;
   // Se gira 200 pulsos para hacer vuelta completa del eje
   for (int x = 0; x < 200; x++) {
      digitalWrite(stepPin, HIGH);
      delayMicroseconds(stepDelay);
      digitalWrite(stepPin, LOW);
      delayMicroseconds(stepDelay);
   }
   delay(1000);
 
   //Ahora se cambia la dirección de giro y se aumenta la velocidad
   digitalWrite(dirPin, LOW);
   stepDelay = 150;
   //Se hacen dos vueltas completas
   for (int x = 0; x < 400; x++) {
      digitalWrite(stepPin, HIGH);
      delayMicroseconds(stepDelay);
      digitalWrite(stepPin, LOW);
      delayMicroseconds(stepDelay);
   }
   delay(1000);
}

Jag rekommenderar att du också provar några kodexempel som du hittar bland exemplen som följer med Arduino IDE och försöker ändra värden för att lära dig hur det påverkar motorn.

till mer om stegmotorer, deras kontroll och Arduino-programmering, rekommenderar jag ladda ner vår programmeringskurs gratis.


3 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   Jesus sade

    Hej, jag bygger en hemlagad CNC med drv8825, min fråga är om jag kan sätta nema 23 2.8a-motorer eftersom de är något billigare än 2.5a, skulle jag ha ett problem? Tack

    1.    Isaac sade

      Hej Jesus,
      Tack för att du läste oss. När det gäller din fråga, håll ett öga på föraren du ska använda för att göra den kompatibel med dessa motorer. Fallet på DRV8825 är upp till maximalt 2.5A. Se för att se TB6600, som kan gå upp till 3.5A om jag minns rätt ...
      Hälsningar!

  2.   Rodolfo sade

    Salaudos. Vad är värdet på den elektrolytiska kondensatorn som finns i motorns strömförsörjning. Tack.