ARDUNIO İLE DC MOTOR KONTROL (L293D & PWM)

Yeni başlayan birisi olarak 1 saat kadar bir süreyle program yapısını kavrayabilirsiniz tabi C diline hakimseniz. Olayı gerçek resimlerle değil İSİS simülasyon programı ile göstermek istedim ki bu sizin programı anlamanız için daha iyi olacaktır. Kendi bilgisayarımda Proteus 8.0 kullanıyorum, kütüphaneme ardunio.lib dosyasını ekleyerek, gerçek bir Ardunio nuz olmadan İsis de simülasyonla bir miktar program öğrenmeniz mümkündür. Aşağıdaki resimde gördüğünüz gibi Ardunio Mega kullandım. L293D çift h köprü sistemine sahip motor sürücü ile bağlantı şekli standarttır. Ardunio programı ve proteus dosyası

Programda 1 ve 2. motor başlangıçta bir süre bekliyor sonra sola doğru yarı hızda bir süre dönecektir. Daha sonra ise sağa doğru aynı anda tam hızda dönecek ve program sonsuza kadar tekrarlayacaktır

int motor_1[] = {22,23}; //1. MOTOR 22 ve 23 DIJITAL PINLERINDEN KONTROL EDILECEK
int motor_2[] = {24,25}; //2. MOTOR 24 ve 25 DIJITAL PINLERINDEN KONTROL EDILECEK
int motor_1_pwm=6;
int motor_2_pwm=7;

void setup() {
pinMode(22, OUTPUT); //22,23,24,25 Dijital pinlerini çıkış olarak kullancağız
pinMode(23, OUTPUT);
pinMode(24, OUTPUT);
pinMode(25, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);

}

void loop() {
motor_dur();
delay(500);
motor1_sol_ileri();
motor2_sol_ileri();
delay(1000);
motor1_sag_ileri();
motor2_sag_ileri();
delay(1000);
}
void motor_dur(){ //motor_dur bir alt fonksiyondur ve motorun durmasını sağlar,
digitalWrite(motor_1[0],HIGH); //motorlara bağlı olan bütün pinleri HIGH yapar.(+5 Volt verir.)
digitalWrite(motor_1[1],HIGH);
digitalWrite(motor_2[0],HIGH);
digitalWrite(motor_2[1],HIGH);

}

void motor1_sol_ileri(){
analogWrite(motor_1_pwm,127); // motor sola yarı hızda dönecek

digitalWrite(motor_1[0], LOW);
digitalWrite(motor_1[1], HIGH);
}
void motor1_sag_ileri(){ // motor saga maksimum hızda dönecek
analogWrite(motor_1_pwm,255);
digitalWrite(motor_1[0], HIGH);
digitalWrite(motor_1[1], LOW);
}
void motor2_sol_ileri(){
analogWrite(motor_2_pwm,127); // motor sola yarı hızda dönecek

digitalWrite(motor_2[0], LOW);
digitalWrite(motor_2[1], HIGH);
}
void motor2_sag_ileri(){ // motor saga maksimum hızda dönecek
analogWrite(motor_2_pwm,255);
digitalWrite(motor_2[0], HIGH);
digitalWrite(motor_2[1], LOW);
}

Benzer Yazılar

YAZAR : Admin

Elektronik Mühendisi / E.Üni. Kalibrasyon Lab. Sorumlusu / Biyomedikal Kalibrasyon Laboratuvarı Sorumlu Müdürü (Sağ.Bak.) / X-Işınlı Görüntüleme Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.) / Ultrason-Doppler Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.) - Hatalı veya kaldırılmasını istediğiniz sayfaları diyot.net@gmail.com bildirin

BU YAZIYI DA İNCELEDİNİZ Mİ ?

Arduino ile led yakıp söndürme

Arduino Uno Kartı ile LED yakıp söndürmeyi inceleyeceğiz. Arduino kartımız 5V gerilimle çalışmaktadır. Eğer LED’imizi …

Bir cevap yazın