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 Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s