Ardiuno ile dc motor kontrolü

engkpc

Üye
Katılım
21 Eki 2019
Mesajlar
2
Puanları
1
Yaş
48
Merhaba arkadaşlar. Bir konuda yardıma ihtiyacım var.


12 volt ile çalışan dc motoru çalıştırmak için butona basıp çalıştırmam gerekiyor.
Butonu kapattığımda ise motor tam tersine bir saniye dönüp durmasını istiyorum.
Pot ise motor hızını ayarmak için.
Motoru sürmek için L293B kullanablirmiyim?
tinkercad ile yapıyorum ama gerçekte tam istediğim gibi çalışmadı.
Motora 7 volt civarı geliyor ve hep çalışıyor buton bir işe yaramıyor . Kod ise aşağıda.

#define pot A0

int motor1 = 5;
int motor2 = 6;

int buton = 3;

void setup()
{
pinMode(motor1, OUTPUT);
pinMode(motor2, OUTPUT);
pinMode(buton, INPUT);
}

void loop()
{
int butondurum = digitalRead(buton);
int potdurum = analogRead(pot);
int motoryazdir = map(potdurum, 0, 1023, 0, 255);
analogWrite(motor1, LOW);
analogWrite(motor2, LOW);
if (butondurum == 1)
{
while (true)
{
analogWrite(motor1, motoryazdir);
analogWrite(motor2, LOW);
butondurum = digitalRead(buton);
if (butondurum == 0)
{
break;
}
}
analogWrite(motor1, LOW);
analogWrite(motor2, motoryazdir);
delay(500);
analogWrite(motor1, LOW);
analogWrite(motor2, LOW);

}
else
{
analogWrite(motor1, LOW);
analogWrite(motor2, LOW);
}
}
 
Bu sürücünün çalısma mantıgı EN girişinden pwm uygulayacaksın,pwm in darbe bosluk oranının ne olacagını analog olarak okudugun pot ile alacaksın.In1 pozıtıfe cektinmi bir yöne,In2 yi pozitife çektinmi diger yöne döner.
Yapacagın testlerde öncelikle senin atayacagın hız ile motoru pwm ile çalıştırmaya çalış,daha sonra analog degeri okuyup pwm e ata.Yani sırası ile testlerini yaparak nerede yanlış yaptıgını anla.
 
Yanıtlarınız için teşekkür ederim. Bu kodu başka forumda yazmışlardı bana o zaman kod da hatalar var entegrenin 1. ayağını arduinonun pwm pinlerine bağlayım kodda değişiklikler yapmak lazım.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…