Gerekli malzemeler:
- Arduino UNO
- Breadboard
- L293D motor sürücü entegresi
- 1 kΩ direnç
- 10 kΩ potansiyometre
- 1 adet push buton
- 9V DC motor
- İki ucu erkek jumper kablo
- 9V DC adaptör veya 9V pil
Daha önceki DC motor uygulamamızda, 1 adet transistör kullanarak motorumuzla sadece hız kontrolü yapmıştık. Fakat yön kontrolü yapabilmemiz için bir motor sürücü entegresine ihtiyacımız var. L293D entegresi, 2 adet DC motor veya 1 adet step motor sürmek için kullanılan oldukça popüler bir entegredir.
Bu entegrenin input 1 ve input 2 girişleri, motorun döneceği yönü; enable pini ise hangi çıkışların aktif olacağını kontrol ediyor. Enable pinine uygulayacağımız PWM sinyal, motorların hızını değiştirmemize olanak sağlıyor.
Bu entegreyi kullanarak hazırladığımız devre şemamız:

Kodumuz:
int enablePin = 11;
int in1Pin = 10;
int in2Pin = 9;
int butonPin = 7;
int potPin = 0;
void setup()
{
pinMode(in1Pin, OUTPUT);
pinMode(in2Pin, OUTPUT);
pinMode(enablePin, OUTPUT);
pinMode(butonPin, INPUT);
}
void loop()
{
int hiz = analogRead(potPin) / 4;
boolean ters = digitalRead(butonPin);
motorCalistir(hiz, ters);
}
void motorCalistir(int hiz, boolean ters)
{
analogWrite(enablePin, hiz);
digitalWrite(in1Pin, ! ters);
digitalWrite(in2Pin, ters);
}
Entegremizin enable bacağına analogWrite() fonksiyonu sayesinde PWM sinyal göndererek hız kontrolü yapmış oluyoruz. Butona bastığımızda input 1 ve input 2 pinlerine giden sinyaller tersine çevriliyor. Böylece motorun döndüğü yön ters çevrilmiş oluyor.
Kaynak: Bu yazı Kerem İZGÖL’ün https://maker.robotistan.com/arduino-dersleri-14-dc-motor-hiz-ve-yon-kontrolu/ adresindeki yazısından alınmıştır. Kendisine teşekkür ederiz.







