L293D Motorstuurprogramma

Een motorstuurprogramma is een chip met geïntegreerde schakeling die meestal wordt gebruikt om motoren in autonome robots te besturen. Motor driver fungeert als interface tussen Arduino en de motoren. De meest gebruikte IC's voor motoraandrijvingen zijn van de L293-serie, zoals L293D, L293NE, enz. Deze IC's zijn ontworpen om 2 gelijkstroommotoren tegelijkertijd te besturen. L293D bestaat uit twee H-bruggen. H-bridge is het eenvoudigste circuit voor het regelen van een motor met een lage stroomsterkte. We verwijzen alleen naar het motorstuurprogramma IC als L293D. L293D heeft 16 pinnen.

Stap 1: Onderdelenlijst

1) L293D IC

2) 4 1 microfarad-condensator

3) 6 mannelijke pennen

4) 12 Volt batterij of bron

5) Draden of vrouwelijke stopcontacten

6) 2 motoren

7) Arduino (Any) om de driver te testen

8) Computer met Arduino IDE

9) Diversen zoals soldeerbout, soldeerdraad enz

Stap 2: Schematisch en werkend

De L293D is een 16-pins IC met acht pinnen aan elke kant, bedoeld voor het besturen van een motor. Er zijn 2 INPUT-pinnen, 2 OUTPUT-pinnen en 1 ENABLE-pin voor elke motor. L293D bestaat uit twee H-bruggen. H-bridge is het eenvoudigste circuit voor het regelen van een motor met een lage stroomsterkte.

Pin nr. - Pin kenmerken

  • 1 - Schakel 1-2 in, wanneer dit HOOG is, zal het linkerdeel van de IC werken en als het laag is, zal het linkerdeel niet werken.
  • 2 - INPUT 1, wanneer deze pin HOOG is, zal de stroom door output 1 stromen
  • 3 - UITGANG 1, deze pin moet worden aangesloten op een van de aansluitingen van de motor
  • 4, 5 - GND, grondpennen
  • 6 - OUTPUT 2, deze pin moet worden aangesloten op een van de aansluitingen van de motor
  • 7 - INPUT 2, wanneer deze pin HOOG is, zal de stroom door output 2 stromen
  • 8 - VCC2, dit is de spanning die aan de motor wordt geleverd.
  • 16 - VCC1, dit is de stroombron voor de IC. Deze pin moet dus worden geleverd met 5 V
  • 15 - INPUT 4, wanneer deze pin HOOG is, zal de stroom door output 4 stromen
  • 14 - UITGANG 4, deze pin moet worden aangesloten op een van de aansluitingen van de motor
  • 13, 12 - GND, grondpennen
  • 11 - UITGANG 3, deze pin moet worden aangesloten op een van de aansluitingen van de motor
  • 10 - INPUT 3, wanneer deze pin HOOG is, zal de stroom door output 3 stromen
  • 9 - Schakel 3-4 in, als dit HOOG is, zal het rechter deel van de IC werken en als het laag is, zal het rechter deel niet werken.

Waarom 4 gronden in het IC?

Het motorstuurprogramma IC heeft te maken met zware stromen. Door zoveel stroom wordt de IC verhit. We hebben dus een koellichaam nodig om de verwarming te verminderen. Daarom zijn er 4 grondpennen. Wanneer we de pinnen op PCB solderen, krijgen we een enorm metallisch gebied tussen de gronden waar de warmte kan worden afgegeven.

Waarom condensatoren?

De gelijkstroommotor is een inductieve belasting. Het ontwikkelt dus een back-EMF wanneer deze wordt geleverd door een spanning. Er kunnen spanningsfluctuaties optreden tijdens het gebruik van de motor, bijvoorbeeld wanneer we plotseling een achteruit nemen terwijl de motor in een bepaalde richting bewoog. Op dit punt is de spanningsfluctuatie vrij hoog en dit kan de IC beschadigen. Daarom gebruiken we vier condensatoren die de extreme variatie in stroom helpen dempen.

Stap 3: werkingsmechanisme en Arduino-code

Afhankelijk van de waarden van de Input en Enable draaien de motoren nu met de klok mee of tegen de klok in met volledige snelheid (wanneer Enable HIGH is) of met minder snelheid (wanneer Enable is voorzien van PWM). Laten we aannemen voor Left Motor wanneer Enable is HOOG en Input 1 en Input 2 zijn respectievelijk HOOG en LAAG, dan beweegt de motor met de klok mee.

Arduino-code die ik heb gebruikt om te testen: -

// Testen van de DC-motoren met
// L293D // Definieer pinnen // Motor A int enableA = 2; int MotorA1 = 4; int MotorA2 = 5; // Motor B int inschakelenB = 3; int MotorB1 = 6; int MotorB2 = 7; ongeldige setup () {Serial.begin (9600); // configureer pin modes pinMode (enableA, OUTPUT); pinMode (MotorA1, OUTPUT); pinMode (MotorA2, OUTPUT); pinMode (enableB, OUTPUT); pinMode (MotorB1, OUTPUT); pinMode (MotorB2, OUTPUT); } void loop () {// motor A Serial.println ("Enabling Motors") inschakelen; digitalWrite (enableA, HIGH); digitalWrite (enableB, HIGH); vertraging (1000); // iets doen Serial.println ("Motion Forward"); digitalWrite (MotorA1, LOW); digitalWrite (MotorA2, HIGH); digitalWrite (MotorB1, LOW); digitalWrite (MotorB2, HIGH); vertraging (3000); Serial.println ("Beweging achteruit"); digitalWrite (MotorA1, HIGH); digitalWrite (MotorA2, LOW); digitalWrite (MotorB1, HIGH); digitalWrite (MotorB2, LOW); vertraging (3000); Serial.println ("Motoren stoppen"); // stop digitalWrite (enableA, LOW); digitalWrite (enableB, LOW); vertraging (3000); }

Verwante Artikelen