DC motorstyring med L293D

Beskrivelse:

Denne vejledning viser hvordan du kan styre en DC motors hastighed og omdrejningsretning, med en L293D motor driverkreds.

L293D har to kanaler, hvilket betyder den kan styre 2 DC motorer samtidig.

 

Komponenter du skal bruge

1 stk Arduino UNO

1 stk DC Motor

1 stk L293D Driver

1 stk 10K potentiometer

1 stk Pushbutton

1 stk Breadboard 400 pkt

Bundt JumperWires

1 stk Breadboard spændingsforsyning

1 stk 9V DC Spændingsforsyning (eller 9V batteri)

 

Sådan gør du:

Step 1: Forbind komponenter – Arduino og motor

ADVARSEL !!!!!!
DC-motoren trækker en stor startstrøm – Brug ekstern strømforsyning eller batteri så du ikke brænder din computers USB-port af.

 

Forbindelser:

L293D

  • PIN1(Enable1) — DigitalPin11(PWM)
  • PIN2(INPUT1) — DigitalPin10(PWM)
  • PIN3(OUTPUT1) — MOTOR PIN 1
  • PIN4(GND1) — Gnd
  • PIN6(OUTPUT2) — MOTOR PIN 2
  • PIN7(INPUT2) — DigitalPin9(PWM)
  • PIN8(12v) — 5v
  • PIN9(Vss3.3v) — 5v     /// Der står 3.3 I datablad, men den kan sagtens tåle 5 Volt

Potentiometer

  • Pin1– 5v på Arduino
  • Pin2(signal) — analogPIN0
  • Pin3 — Gnd på Arduino

Pushbutton (kontakt)

  • PIN 1= Gnd
  • PIN 2 = DigitalPIN7

 

Step 2: Skriv (evt. copy/paste) og upload Arduino kode

/*
Kode til L293D DC motor styring
*/

int enablePin = 1;
int in1Pin = 10;
int in2Pin = 9;
int switchPin = 7;
int potPin = 0;
int statusPin= 13;

void setup()

{

pinMode(in1Pin, OUTPUT);
pinMode(in2Pin, OUTPUT);
pinMode(enablePin, OUTPUT);
pinMode(switchPin, INPUT_PULLUP);
pinMode(statusPin,OUTPUT);

}

void loop()

{

digitalWrite(13,HIGH);                          // Turn ON internal LED – Located at the Arduino UNO board
int speed = analogRead(potPin) / 4;    // Replace this codeline to select other methods for controlling the speed
boolean reverse = digitalRead(switchPin);  // Read direction button – replace code if speed direction is changed otherwise
setMotor(speed, reverse); // Call function setMotor to control motor with the read input parameters

}

void setMotor(int speed, boolean reverse)

{

analogWrite(enablePin, speed);  // PWM signal at the enablePin at L293D
digitalWrite(in1Pin, ! reverse);     // Set IN1 at L293D to !reverse
digitalWrite(in2Pin, reverse);      // Set IN2 at L293D to reverse (opposite value of IN1)

}

 

Step 3: Afprøv

Drej på potentiometeret for at ændre hastigheden på motoren.
Tryk på pushbutton/kontakt for at ændre omløbsretning.

 

God fornøjelse

Her kan du finde L293D datasheet