16. DC motor speed direction with L293D

Mål: Att kunna ändra riktning samt styra hastigheten hos en likströmsmotor.

Teori: En likströmsmotor drar mera ström än en Arduino klarar av. Dessutom är motorer s.k. induktiva last som har en tendens att skapa störningar och skadliga spänningstoppar. L293D är lättstyrd och har inbyggd skyddsmekanism mot överhettning och spänningstoppar. Mikrokretsen är därför perfekt för det här arbetet.

Koppling: Var noggrann med kopplingen och försiktig med L293D mikrokretsen. Statisk elektricitet kan förstöra mikrokretsar så urladda dig själv t.ex. genom att röra vid ett batteri (värmeelement)


 

fritzing kopplingsschema

16 dc motor speed direction with L293D


arduino koden

int input1 = 9; 
int input2 = 10;  
int enable1 = 11; 

void setup()
{
  pinMode(enable1, OUTPUT);
  pinMode(input1, OUTPUT);
  pinMode(input2, OUTPUT);
  digitalWrite(enable1, LOW); 
}
void loop() 
{
  // vrider motorn medsols
  digitalWrite(input1, HIGH);
  digitalWrite(input2, LOW);
  // ökar hastigheten genom PWM
  for(int SPEED = 40 ; SPEED <= 255; SPEED++) 
  {
    analogWrite(enable1, SPEED);
    delay(10); 
  }
  delay(200);
  // sänker hastigheten genom PWM
  for(int SPEED = 255 ; SPEED >= 40; SPEED--) 
  {
    analogWrite(enable1, SPEED);
    delay(10); 
  }
  delay(200);
  // vrider motorn motsols
  digitalWrite(input1, LOW);
  digitalWrite(input2, HIGH);
  // ökar hastigheten genom PWM
  for(int SPEED = 40 ; SPEED <= 255; SPEED++) 
  {
    analogWrite(enable1, SPEED);
    delay(10); 
  }
  delay(200);
  // sänker hastigheten genom PWM
  for(int SPEED = 255 ; SPEED >= 40; SPEED--) 
  {
    analogWrite(enable1, SPEED);
    delay(10); 
  }
  delay(200);
}


 

Leave a comment