Bu eğitimde , Arduino UNO'ya bir DC motor arabirimi oluşturacağız ve PWM (Darbe Genişliği Modülasyonu) konseptini kullanarak hızını kontrol edeceğiz. Bu özellik, UNO'da sabit voltaj üzerinden değişken voltaj elde etmek için etkinleştirilmiştir. PWM yöntemi burada açıklanmıştır; Şekilde gösterildiği gibi basit bir devre düşünün.
Şekil ise butona basılırsa motor dönmeye başlayacak ve butona basılana kadar hareket halinde olacaktır. Bu baskı süreklidir ve şeklin ilk dalgasında temsil edilir. Bir durumda, düğmeye 8 ms basıldığını ve 10 ms'lik bir döngü boyunca 2 ms süreyle açıldığını düşünürseniz, bu durumda motor, düğmeye yalnızca 8 ms basıldığında tam 9V pil voltajını deneyimlemeyecektir, bu nedenle RMS terminal voltajı motor 7V civarında olacaktır. Bu düşürülmüş RMS voltajı nedeniyle, motor daha düşük bir hızda dönecektir. Şimdi 10 ms'lik bir süre boyunca ortalama açılma = Açma süresi / (Açma süresi + Kapatma süresi), buna görev döngüsü denir ve% 80'dir (8 / (8 + 2)).
İkinci ve üçüncü durumlarda, düğmeye birinci duruma kıyasla daha da az basılır. Bu nedenle, motor terminallerindeki RMS terminal voltajı daha da azalır. Bu düşük voltaj nedeniyle motor hızı daha da azalır. Hızdaki bu düşüş, motor terminal voltajının motoru döndürmek için yeterli olmayacağı bir noktaya kadar devam eden görev döngüsü ile devam eder.
Böylece, PWM'nin motor hızını değiştirmek için kullanılabileceği sonucuna varabiliriz.
Daha ileri gitmeden önce H-BRIDGE'i tartışmamız gerekiyor. Şimdi bu devrenin başlıca iki işlevi vardır, birincisi bir DC motoru düşük güç kontrol sinyallerinden sürmek ve diğeri DC motorun dönüş yönünü değiştirmektir.
Şekil 1
şekil 2
Hepimiz biliyoruz ki bir DC motor için dönme yönünü değiştirmek için motorun besleme geriliminin kutuplarını değiştirmemiz gerekir. Bu yüzden kutupları değiştirmek için H köprüsünü kullanıyoruz. Şimdi yukarıdaki şekil 1'de dört anahtarımız var. Şekil 2'de gösterildiği gibi, motorun A1 ve A2'yi döndürmesi için kapalıdır. Bu nedenle akım, şekil 3'ün 2. bölümünde gösterildiği gibi motordan sağdan sola akar. Şimdilik motorun saat yönünde döndüğünü düşünün. Şimdi A1 ve A2 anahtarları açılırsa, B1 ve B2 kapalıdır. Motordan geçen akım, 1. sayfada gösterildiği gibi soldan sağa doğru akar. Figure3'ün bir parçası. Akım akışının bu yönü birincinin tersidir ve bu nedenle motor terminalinde ilkine zıt bir potansiyel görürüz, böylece motor saatin tersi yönde döner. H-BRIDGE böyle çalışır. Bununla birlikte, düşük güçlü motorlar bir H-BRIDGE IC L293D ile çalıştırılabilir.
L293D, düşük güçlü DC motorları çalıştırmak için tasarlanmış bir H-BRIDGE IC'dir ve şekilde gösterilmiştir. Bu IC, iki h-köprüsünden oluşur ve böylece iki DC motoru çalıştırabilir. Böylece bu IC, robotun motorlarını mikrodenetleyicinin sinyallerinden sürmek için kullanılabilir.
Şimdi daha önce tartışıldığı gibi, bu IC, DC motorun dönüş yönünü değiştirme yeteneğine sahiptir. Bu, INPUT1 ve INPUT2'deki voltaj seviyelerini kontrol ederek elde edilir.
PIN'i Etkinleştir |
Giriş Pimi 1 |
Giriş Pimi 2 |
Motor Yönü |
Yüksek |
Düşük |
Yüksek |
Sağa dönün |
Yüksek |
Yüksek |
Düşük |
Sola çevirin |
Yüksek |
Düşük |
Düşük |
Dur |
Yüksek |
Yüksek |
Yüksek |
Dur |
Yukarıdaki şekilde gösterildiği gibi, saat yönünde dönüş için 2A yüksek ve 1A düşük olmalıdır. Benzer şekilde saat yönünün tersi için 1A yüksek ve 2A düşük olmalıdır.
Şekilde gösterildiği gibi, Arduino UNO'nun 6PWM kanalı vardır, bu nedenle bu altı pinden herhangi birinde PWM (değişken voltaj) elde edebiliriz. Bu eğitimde PIN3'ü PWM çıkışı olarak kullanacağız.
Donanım: ARDUINO UNO, güç kaynağı (5v), 100uF kapasitör, LED, düğmeler (iki adet), 10KΩ direnç (iki adet).
Yazılım: arduino IDE (Arduino her gece).
Devre şeması
Devre, yukarıda gösterilen devre şemasına göre devre tahtasına bağlanır. Ancak LED terminallerinin bağlanması sırasında dikkat edilmelidir. Düğmeler bu durumda sıçrama etkisi gösterse de, önemli hatalara neden olmaz, bu yüzden bu sefer endişelenmemize gerek yok.
UNO'nun PWM'si kolaydır, normal durumlarda PWM sinyali için bir ATMEGA kontrol cihazı kurmak kolay değildir, doğru bir sinyal için birçok kayıt ve ayar tanımlamamız gerekir, ancak ARDUINO'da tüm bunlarla uğraşmak zorunda değiliz.
Varsayılan olarak, tüm başlık dosyaları ve yazmaçları ARDUINO IDE tarafından önceden tanımlanmıştır, onları çağırmamız yeterlidir ve bu, uygun pimde bir PWM çıkışına sahip olacağız.
Şimdi uygun bir pimde bir PWM çıkışı elde etmek için üç şey üzerinde çalışmamız gerekiyor,
|
Öncelikle altı pinden PWM çıkış pinini seçmemiz gerekiyor, ondan sonra bu pini çıkış olarak ayarlamamız gerekiyor.
Daha sonra, "analogWrite (pin, value)" işlevini çağırarak UNO'nun PWM özelliğini etkinleştirmemiz gerekir. Burada 'pin', PWM çıkışına ihtiyacımız olan pin numarasını temsil eder, onu '3' olarak koyarız. Yani PIN3'te PWM çıkışı alıyoruz.
Değer, 0 (her zaman kapalı) ile 255 (her zaman açık) arasında, AÇIK duruma getirme görev çevrimidir. Bu sayıyı butona basarak artırıp azaltacağız.
UNO'nun maksimum "8" çözünürlüğü vardır, bu nedenle 0-255 arası değerler daha ileri gidemez. Ancak, “analogWriteResolution ()” komutunu kullanarak PWM'nin çözünürlüğünü azaltabilir, parantez içinde 4-8 arasında bir değer girerek değerini dört bit PWM'den sekiz bit PWM'ye değiştirebiliriz.
Anahtar, DC motor için dönüş yönünü değiştirmektir.