L298N Motor Sürücü

Gokrtl

Gökhan Kartal (TeknoDay)
Staff member
Katılım
27 Şubat 2019
Mesajlar
11,228
Çok uğraşmaktan mıdır nedir her zaman çalıştırdığım motor sürücüyü çalıştıramıyorum.

karistirici değişkeni içindeki "20" değerini analogWrite(E1, karistirici); şeklinde gönderiyorum ama motor çalışmıyor.
Sonradan E1 değişkenini serial ekrana yazdırayım bakalım ne çıkacak dedim, 700 küsür değer okuyor.
Nanonun 9 nolu pwm pinine bağlı bu pin.
Bana biri mantıklı bir şey söylesin :(

motor sürücü.PNG
 

Ekler

  • Nokia5110MenuRotary.ino
    12.6 KB · Görüntüleme: 108
Son düzenleme:
Analogwrite pine pwm uygular.
Analogread analog sinyal okur. Pwm okumaz sanırım. Aynı değeri görmemen normal...
 
Analogwrite pine pwm uygular.
Analogread analog sinyal okur. Pwm okumaz sanırım. Aynı değeri görmemen normal...
zaten motoru sürmek için pwm uygulamam lazım.
0-255 arası motoru sürebilmem gerek. Normalde 30 değerinde ilk hareketi gerçekleştirmesi lazım. Enkoderi çevirdikçe de devir artması lazım.
Burada şunu fark ettim. Motor 255'e kadar hiç devir almıyor, 255'egeldiğinde full gaz dönüyor.

Ek olarak:
"biber gerçektir..."
Bunun espri olduğu konusunda ciddi şüphelerim var. Öyle olsa da olmasa da bir şey anlamadım.
 
Bana biri mantıklı bir şey söylesin

Ne öğrenmiştik lisede felsefe dersinde, Aristoteles doğru bilgiye (!) ulaşmak için bir yöntem bulmuştu, “düz mantık” olarak ta bilinirdi; Gerçekler acıdır, biber de acıdır, O halde gerçek “biber”dir.

---

Mantıklı birşey istemişsin bende söyledim :)


Pwm konusunda ise; osilaskobun var bağla 9 numaralı çıkışa pwm durumuna bak. Analog Read olmaz.
 
Ne öğrenmiştik lisede felsefe dersinde, Aristoteles doğru bilgiye (!) ulaşmak için bir yöntem bulmuştu, “düz mantık” olarak ta bilinirdi; Gerçekler acıdır, biber de acıdır, O halde gerçek “biber”dir.

---

Mantıklı birşey istemişsin bende söyledim :)
Hayret yav, bu adamdan bana hiç bahsetmediler lisede. Sen kolejde okudun ellaham. Bizimkisi devlet okuluydu. Hocalar kesin tanıyordur onu da bize tanıştırmaya lüzum görmedi demek ki :D

Pwm konusunda ise; osilaskobun var bağla 9 numaralı çıkışa pwm durumuna bak. Analog Read olmaz.
Osiloskopluk bir durum var mı bilmiyorum. Bana kodda sıkıntı var gibi geliyor.
255 verince full çalışıyor ama 254 verince sadece ince bir sinyal sesi var.
Nanoyu değiştim düzelmedi, sonra tüm kodu silip sadece motor sürücü kodlarını attım, o zaman düzgün çalıştı.
Mevcut duruma göre 600 satır kodun içinde bir yerlerde çakışma var ama bulamıyorum. Hatta kodun tamamını atayım belki bir bakan çıkar.
 
Benim bildiğim eğer pin analog pin ise, analogWrite oradaki DAC'a bir değer yazar ve pinde ona karşılık gelen analog bir voltaj olur. Eğer pin dijital ve PWM özellikli ise digitalWrite orada ilgili duty cycle ile PWM çıkmasını sağlar, analogWrite da aynı şeye sebep olabilir ondan emin değilim. Eğer pin dijital ve PWM özelliği yok ise, sadece 0 ve 255 bir etki gösterir ve pinde 0 veya Vcc olur.

Osiloskopla bakmak lazım. Herşeyin tam olarak senin beklediğin gibi olduğunu teyit etmek önemlidir, sistem normal çalışsa bile kontrol etmek lazım.
 
Benim bildiğim eğer pin analog pin ise, analogWrite oradaki DAC'a bir değer yazar ve pinde ona karşılık gelen analog bir voltaj olur. Eğer pin dijital ve PWM özellikli ise digitalWrite orada ilgili duty cycle ile PWM çıkmasını sağlar, analogWrite da aynı şeye sebep olabilir ondan emin değilim. Eğer pin dijital ve PWM özelliği yok ise, sadece 0 ve 255 bir etki gösterir ve pinde 0 veya Vcc olur.

Osiloskopla bakmak lazım. Herşeyin tam olarak senin beklediğin gibi olduğunu teyit etmek önemlidir, sistem normal çalışsa bile kontrol etmek lazım.
Birazdan olmazsa osiloskop ile bakayım ama sorunun kodun karmaşıklığından kaynaklı oldu kesin gibi. Çünkü iki nano bir uno daki çeşitli pwm pinlerini denedim. Eğer kodun tamamını yüklersem çalışmıyor, ama tüm kodu silip sadece sürücü kodunu yüklersem çalışıyor.
Sanki birisi bütün pwm pinleri nprmal pin gibi davransın diye komut yazmış gibi. 0 dan 254'e kadar çalışmıyor, 255 verince full çalışıyor.
 
İşte hazır kütüphane kullanmanın zararları. Adam arka planda işlemcinin yapılandırmasını kim bilir nasıl değiştiriyor. Bence hiç kütüphane kullanmadan yap işi. Hem öğretici olur, hem de ayakların altından halı çekme efekti olmaz :katil2:
 
İşte hazır kütüphane kullanmanın zararları. Adam arka planda işlemcinin yapılandırmasını kim bilir nasıl değiştiriyor. Bence hiç kütüphane kullanmadan yap işi. Hem öğretici olur, hem de ayakların altından halı çekme efekti olmaz :katil2:
Kütüphane kullanmadan ekranı yapılandırmak çok fazla uğraştırır. Baksana hazır kod ile 1 haftadır uğraşıyorum. Elimde işleyişi sağlam kod olduğuna göre ekran kütüphanesini değiştirmeyi deneyebilirim ama. Yada aklımda iki seçenek ve buna bağlı 2 soru var.
1- Analag pin kullansam olur mu?
2- Bir pini kod ile pwm olması konusunda ikna edebilir miyiz? Pwm olmaya zorla gibi. Hani windows da var ya arkaplan da bir şey çalışırken kapar komutu verince zorla kapatılsın mı diye soruyor, onun gibi işte :D
 
Analog pinler analog voltaj seviyeleri üretir, 0.78 V, 3.41 V gibi. Ama L298N ye analog voltaj değil, PWM sinyal vermek gerekiyor.

İki şekilde PWM elde edebiliyorsun bir işlemciden. Hardware PWM ve software PWM. Eğer "bir pinin PWM özelliği var" deniyorsa, burada kastedilen, o pin bir timer çevre birimi ile ilişkili ve doğrudan hardware tarafından PWM üretiliyor. Eğer bir pinin PWM özelliği yoksa, senin yazılımsal oarak o pinde PWM sinyali üretmen lazım. Bu da hem yoğun işlemci zamanı yer, hem de üretilen PWM'in peryodu ve duty cycle'ı sürekli oynar, kaliteli bir PWM olmaz. Mesela LED sürersen LED parlaklığında farkedilebilir değişimler olur. Servo sürüyorsan servoda sürekli küçük değişimler olur. Motor sürüyorsan motor devrinde küçük değişimler olur.
 
Osiloskop ile bakmaya çalıştım ama tam anlayamadım.
Videonun sağ altında Serial monitör var. Oradan değerler ile oynadığımı görebilirsiniz. Oradaki değerlerin 5'er adım şeklinde değişmesine rağmen osiloskop da bir şey görünmüyor. Taa ki değer 255 olana kadar.

 
Katili buldum. TimerOne Kütüphanesi.
Tahminimce bu timer kütüphanesi tüm pwm çıkışları kapatıp, tüm gücünü enkoder için ayırıyor.
Aristoteles den daha mantıklı bir şey söyledim. Tarihe geçer miyim? @Endorfin35+ :katil2:

timerOne Library.PNG


Bu kütüphaneyi kapatınca motor çalışıyor ama bu seferde encoder devre dışı kalıyor.
Ya başka timer fonksiyonu bulacağım, yada kendim yazacağım. Tabi becerebilirsem.

timer initialize.PNG
timer fonksiyon.PNG
 
Tamam Buldum.
analogWrite(enA, motorDeger); yerine küphane kodunu kullanıp Timer1.pwm(enA, motorDeger); yazmak gerekiyormuş.
Yalnız burada da şöyle ufak bir problem çıktı. Motorun en düşük 30 değerinde hareketlenip, 255 de tam gaz dönmesi gerek ama benim motor 150 de harekete başlıyor ve 255 de tam gaza ulaşmıyor. Burada da sanırım Timer1.initalize(1000); fonksiyonu sıkınıtı çıkarıyor. Buradaki 1000 değeri ile oynayabiliyorum ama bakalım enkodere etkisi ne olacak? Buraya kadar geldik, gerisini de çözeriz. Olmadı 4 vurup 1 sayarız :katil2:
 

Çevrimiçi personel

Forum istatistikleri

Konular
5,883
Mesajlar
100,319
Üyeler
2,491
Son üye
djkop

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top