Dc motorun hızını potansiyometre ile istediğim kadar yavaşlatamıyorum

Kodla Büyü

lazanya

Site Gezgini
Mesajlar
97
https://www.motorobit.com/urun/6v-60rpm-12mm-reduktorlu-dc-motor-vidali-milli aldım. Masa tenisi top atma projem var, fakat motor çok hızlı dönüyor. ardunio ve potansiyometre ile deniyorum, bir noktadan sonra ani hız artışı(maksimuma) yapıyor. yavaş yavaş yükselme olmuyor. tüm dc motorlarda aynı olay. 55 rpm işimi görür demiştim ama bu bile hızlı geldi. yavaşlatmada nasıl bir yöntem izlemeliyim. video linkini de atıyorum bilgi sahibi iseniz yanıt bekliyorum. Elektronikte ve motor özelliklerinde teknik kelime bilgim yok, çözüm varsa basit anlatılırsa sevinirim.

 
Hocam potansiyometreyi hiç kontrol ettin mi? Sanki sen potu boşa çeviriyor gibi gözüküyorsun videoda. Diyelim ki pot 270 derece dönüyor, potun toplam dirençte 10k olsun. Her bir derecede 10k/270 dan yaklaşık 37 ohm luk bir direnç elde ediyor olman gerekir. Ama koruma direncin yoksa ki yok gibi görünüyor potu yakmış olabilirsin. Bu da potun hatalı ölçüm yapmasına neden olur. Öncelikle bir multimetre ile yoksa arduinodan analog ölçüm yapıp arduino ide seri penceresinden gözlemleyerek ölçmelisin. Eğer siz potu çevirdikçe doğrusal olarak direnci de artıyor veya azalıyorsa potta sıkıntı yok demektir. Bir de sanki siz pota dokunur dokunmaz motor mir miktar hareketleniyor gibi. Elinizdeki statik elektriğin pot ölçümünü etkileyebileceğini unutmayın. Plastik bir aparat kullanabilirsiniz.

upload_2020-8-7_6-28-3.png

Yukarıdakine benzer bir motor sürücü kullanıyorsunuz sanırım. Hangi çıkışı kullanıyorsanız (motorA veya motorB) ona göre enA veya enB jumperını söküp buradan potansiyometreden aldığınız ölçüm doğrultusunda analog voltaj (0-255 arası pwm sinyal) uyguluyorsunuz değil mi? Videoda tam göremedim de emin olayım diye sordum. Not: bu arada arduinoyu işin içine hiç sokmadan potu doğrudan motor sürücünün enA / enB pininede bağlayabilir, pottan yaptığınız ölçümü doğrudan motor sürücüye aktarabilirsiniz diye düşünüyorum (daha önce hiç denemedim ama).
 
Hocam pwm 0-255 kullandıysanız onu analog 0-1023 olarak değiştirin. Onun haricinde motor sürücüyü ne ile besliyorsunuz? 9v veya 4'lü pilse düşük değerlerde dönemede sorun olabilir. Lipo pil kullanırsanız sorununuz düzelebilir.
 
Öncelikle cevap verdiğiniz için teşekkür ediyorum.

Hocam potansiyometreyi hiç kontrol ettin mi?
Pot B10K

Potansiyometereyi multimetre ile ölçtüm, kademe var. Video linkleri aşağıda.

Pot 1 https://yadi.sk/i/odXVpQFCTk0xTQ

Pot 2 https://yadi.sk/i/nbFXSkCuESpPew

Yukarıdakine benzer bir motor sürücü kullanıyorsunuz sanırım. Hangi çıkışı kullanıyorsanız (motorA veya motorB) ona göre enA veya enB jumperını söküp buradan potansiyometreden aldığınız ölçüm doğrultusunda analog voltaj (0-255 arası pwm sinyal) uyguluyorsunuz değil mi?

Evet, motor sürücüm bu. 12 volt adaptör bağladım olmadı, 6 volt adaptör bağlı şu an.

Hocam pwm 0-255 kullandıysanız onu analog 0-1023 olarak değiştirin.

Bunu deneyeceğim.

Onun haricinde motor sürücüyü ne ile besliyorsunuz?

12 volt adaptör bağladım olmadı, 6 volt adaptör bağlı şu an.

Bir de sanki siz pota dokunur dokunmaz motor mir miktar hareketleniyor gibi. Elinizdeki statik elektriğin pot ölçümünü etkileyebileceğini unutmayın. Plastik bir aparat kullanabilirsiniz.

Ben onu şöyle algıladım. Pot u çevirirken bir noktaya kadar motorda hiç hareket yok, sonra aniden o noktadan sonra son hızla dönüyor. Sanki pot anahtar görevi görüyor gibi, kademeli sürmüyor yani. Statik olayını da dikkate alacağım.
 
Son düzenleme:
kodum bu;
Kod:
//infinite Xpro
//This code is to control the speed of a DC motor by a potentiometer using l298n driver
//We read the value from the analog input, calibrate it then inject to the module

int in1 = 5;        //Declaring where our module is wired 
int in2 = 6;
int ConA = 7;     // Don’t forget this is a PWM DI/DO   
int speed1;

void setup() {
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);   
}



void loop() {


  digitalWrite(in1, LOW);            //Switch between this HIGH and LOW to change direction
  digitalWrite(in2, HIGH);
  speed1 = analogRead(A0);
  speed1 = speed1 * 0.2492668622;      //We read thea analog value from the potentiometer calibrate it
  analogWrite(ConA, speed1);            // Then inject it to our motor
}
 
Hocam yanlışım yoksa conA 7 nolu pinde o da pwm pini değil ona analog değer yolluyorsunuz o da analog değer oluşturamıyor. 7. pindeki kabloyu 9. pine çekin kodda da 9 yapın tekrar deneyin.
 
Hocam yanlışım yoksa conA 7 nolu pinde o da pwm pini değil ona analog değer yolluyorsunuz o da analog değer oluşturamıyor. 7. pindeki kabloyu 9. pine çekin kodda da 9 yapın tekrar deneyin.
hocam projeme devam edebilirim artık, çok teşekkür ederim.
serkan ve berkay kardeşime de ilgilerinden dolayı ayrıca teşekkür ediyorum. Sağlıcakla kalın, covidsiz günler dilerim.
 
dc motor belli bi volt/gerilimden sonra dönmeye başlar. pwm (0-255 arası) değer gönderdiğinde yaklaşık olarak 100 değerine kadar dönmez. bu da 2,5 -3 volta denk gelir. 100 den sonra dönmeye başlar ve 255 e kadar hızı artar.
motorun dönme hızı yüksek geliyorsa araya dişli koyarak yavaşlatılabilir.
 
dc motor belli bi volt/gerilimden sonra dönmeye başlar. pwm (0-255 arası) değer gönderdiğinde yaklaşık olarak 100 değerine kadar dönmez. bu da 2,5 -3 volta denk gelir. 100 den sonra dönmeye başlar ve 255 e kadar hızı artar.
motorun dönme hızı yüksek geliyorsa araya dişli koyarak yavaşlatılabilir.
55 rpm lik motor aldım hocam, o işimi görecek. problem yanlış pini kullanmam. tşk
 
Geri
Üst