Start Elkretssimulator


Driva stegmotor med L293 eller TB6612 -shield

En användbar motorshield

Det finns 2 versioner av denna motor shield. Skillnaden är att version 1 är väldigt billig och klarar ca 1.2 A drivström och version 2 är lite dyrare och klarar 1.8 A drivström. Anslutningarna är detsamma.

L293 (Version 1)

Version 1 bygger på den välkända kretsen L293.


TB6612 (Version 2)

Version 2 bygger istället på kretsen TB6612. En intressant potentiellt användbar feature med denna shield är att den är stackbar. Det går alltså dunka in flera sådana här ovanpå varandra och därmed styra många stegmotorer.


Uppkoppling

Båda dessa shield går att använda på många olika sätt. Driva stegmotorer (2 stycken), dc-motorer (4 stycken) och det finns också utgång för att styra 2 servon. Detta gör denna shield klockren i ett mindre robotbygge.

Hursomhelst. För att koppla in en stegmotor kan man göra som nedan. Har du problem med att begripa vilka färger på din stegmotor som är A+ A- B+ B- så titta på denna sida där stegmotorns inkoppling är lite mer utförlig och skriv sedan ner vilken tråd som är vilken på ett papper eller fäst tejpbitar på trådarna där du skriver A+ A- B+ B- tydligt.



Det finns ett käckt bibliotek som hör till denna motor-shield och du hittar det här. Du klickar där det står clone or download och sedan download ZIP. Under skiss i arduino, välj inkludera bibliotek, lägg till ZIP-bibliotek. Surfa fram till filen du hämtade. Markera den och klicka på öppna, så läses modulen in. Nu kan du inkludera AFMotor.h i din kod.

#include <AFMotor.h>

// När du skapar din motor-klass så glöm inte
// att 1= inkoppling av stegmotor på M1/M2-sidan
// att 2= inkoppling av stegmotor på M3/M4-sidan
//
AF_Stepper motor(48, 1);

void setup() 
{
  Serial.begin(9600);
  Serial.println("Stepper test!");
  motor.setSpeed(50);  // 10 rpm 
}

void loop() 
{
  Serial.println("Single coil steps");
  motor.step(100, FORWARD, SINGLE); 
  motor.step(100, BACKWARD, SINGLE); 

  Serial.println("Double coil steps");
  motor.step(100, FORWARD, DOUBLE); 
  motor.step(100, BACKWARD, DOUBLE);

  Serial.println("Interleave coil steps");
  motor.step(100, FORWARD, INTERLEAVE); 
  motor.step(100, BACKWARD, INTERLEAVE); 

  Serial.println("Micrsostep steps");
  motor.step(100, FORWARD, MICROSTEP); 
  motor.step(100, BACKWARD, MICROSTEP); 
}