Arduino ile DC Motor Sürme

Arduino ile L293D motor sürücü entegre yardımıyla DC motorları iki yönde hareket ettirme, durdurma ve frenleme uygulaması

Arduino ile L293D motor sürücü entegre yardımıyla DC motorları iki yönde hareket ettirme, durdurma ve frenleme uygulaması

Bağlantılar:

L293D VCC - Arduino +5V
L293D GND - Arduino GND
L293D VS - Battery(+)
L293D GND - Battery (-)

L293D Input1 - Arduino D2
L293D Input2 - Arduino D3
L293D Input3 - Arduino D4
L293D Input4 - Arduino D5
L293D Enable1 - Arduino D6
L293D Enable2 - Arduino D7

Proje kodu:

#define IN_1 2
#define IN_2 3
#define IN_3 4
#define IN_4 5
#define EN_1 6
#define EN_2 7

#define LEFT 0
#define RIGHT 1

#define STOP 0
#define FORWARD 1
#define BACKWARD 2
#define BRAKE 3

void setMotor(int motor, int direction)
{
  int pinIn1 = motor == LEFT ? IN_1 : IN_3;
  int pinIn2 = motor == LEFT ? IN_2 : IN_4;
  int pinEnable = motor == LEFT ? EN_1 : EN_2;
  
  digitalWrite(pinIn1, (direction & FORWARD));
  digitalWrite(pinIn2, (direction & BACKWARD));
  digitalWrite(pinEnable, (direction != STOP));
}

void setup()
{
  pinMode(IN_1, OUTPUT);
  pinMode(IN_2, OUTPUT);
  pinMode(IN_3, OUTPUT);
  pinMode(IN_4, OUTPUT);
  pinMode(EN_1, OUTPUT);
  pinMode(EN_2, OUTPUT);
  
  setMotor(LEFT, FORWARD);
  setMotor(RIGHT, BACKWARD);
  delay(2000);
  
  setMotor(LEFT, STOP);
  setMotor(RIGHT, STOP);
  delay(2000);
  
  setMotor(LEFT, BACKWARD);
  setMotor(RIGHT, FORWARD);
  delay(2000);
  
  setMotor(LEFT, BRAKE);
  setMotor(RIGHT, BACKWARD);
}

void loop() { }

 

Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git