- Darbe Genişliği Modülasyonu:
- Gerekli Malzeme
- Devre şeması
- Kod ve Açıklama
- Arduino ile DC Motorun Hız Kontrolü
DC motor, Robotik ve elektronik projelerinde en çok kullanılan motordur. DC motorun hızını kontrol etmek için, hızın sıcaklığa bağlı olarak otomatik olarak kontrol edilebilmesi gibi çeşitli yöntemlerimiz vardır, ancak bu projede DC motorun hızını kontrol etmek için PWM yöntemi kullanılacaktır. İşte bu Arduino Motor Hız Kontrol projesinde hız, potansiyometre düğmesi döndürülerek kontrol edilebilir.
Darbe Genişliği Modülasyonu:
PWM nedir? PWM kullanarak voltaj veya gücü kontrol edebileceğimiz bir tekniktir. Daha basit bir şekilde anlamak için, eğer bir motoru sürmek için 5 volt uyguluyorsanız, o zaman motor biraz hızda hareket eder, şimdi uygulanan gerilimi 2 kadar düşürürsek motora 3 volt uygularız, motor hızı da düşer. Bu konsept, projede PWM kullanarak gerilimi kontrol etmek için kullanılır. Bu yazımızda PWM'yi detaylı olarak anlattık. Ayrıca LED'in parlaklığını kontrol etmek için PWM'nin kullanıldığı bu devreyi kontrol edin: 1 Watt LED Dimmer.
% Görev döngüsü = (TON / (TON + TOFF)) * 100 Burada, T ON = kare dalganın YÜKSEK zamanı T OFF = LOW kare dalganın süresi
Şimdi, şekildeki anahtar belirli bir süre boyunca sürekli olarak kapatılırsa, motor bu süre boyunca sürekli olarak AÇIK olacaktır. Anahtar 8 ms süreyle kapatılırsa ve 10 ms'lik bir döngüde 2 ms için açılırsa, Motor yalnızca 8 ms'lik sürede AÇIK olacaktır. Şimdi 10 ms'lik bir süre boyunca ortalama terminal = Açma süresi / (Açma süresi + Kapatma süresi), buna görev döngüsü denir ve% 80'dir (8 / (8 + 2)), yani ortalama çıkış voltajı akü voltajının% 80'i olacaktır. Artık insan gözü motorun 8 ms açık ve 2 ms kapalı olduğunu göremiyor, bu nedenle DC Motor% 80 hızla dönüyormuş gibi görünecek.
İkinci durumda, anahtar 5 ms için kapatılır ve 10 ms'lik bir süre boyunca 5 ms için açılır, bu nedenle çıkıştaki ortalama terminal voltajı akü voltajının% 50'si olacaktır. Akü voltajının 5V ve görev döngüsünün% 50 olup olmadığını ve bu nedenle ortalama terminal voltajının 2,5V olacağını söyleyin.
Üçüncü durumda, görev döngüsü% 20'dir ve ortalama terminal voltajı, akü voltajının% 20'sidir.
Projelerimizin çoğunda Arduino ile PWM kullandık:
- PWM kullanarak Arduino Tabanlı LED Dimmer
- Arduino kullanarak Sıcaklık Kontrollü Fan
- Arduino kullanarak DC Motor Kontrolü
- Arduino ve TRIAC kullanarak AC Fan Hız Kontrolü
PWM'ye dayalı çeşitli projelerden geçerek PWM hakkında daha fazla bilgi edinebilirsiniz.
Gerekli Malzeme
- Arduino UNO
- DC motoru
- Transistör 2N2222
- Potansiyometre 100k ohm
- Kondansatör 0.1uF
- Breadboard
- Atlama Telleri
Devre şeması
PWM kullanarak Arduino DC Motor Hız Kontrolü için devre şeması aşağıdadır:
Kod ve Açıklama
Potansiyometre kullanan Arduino DC Motor Kontrolü için tam kod sonunda verilmiştir.
Aşağıdaki kodu olarak, potansiyometre çıkışı ve 12 değişken C1 ve C2 ve atanan analog pim A0 başlatıldı olan inci 'PWM' için Pin.
int pwmPin = 12; int pot = A0; int c1 = 0; int c2 = 0;
Şimdi, aşağıdaki kodda, A0 pinini giriş ve 12 (PWM pinidir) çıkış olarak ayarlayın.
geçersiz kurulum () { pinMode (pwmPin, OUTPUT); // pin 12'yi çıkış pinMode (pot, INPUT) olarak bildirir ; // A0 pinini girdi olarak bildirir }
Şimdi, void loop () içinde, analog değeri (A0'dan) analogRead (pot) kullanarak okuyoruz ve c2 değişkenine kaydediyoruz . Ardından c2 değerini 1024'ten çıkarın ve sonucu c1'e kaydedin. Daha sonra bu PWM pimi 12 yapmak th Arduino HIGH ve değeri bir gecikmeden sonra pim DÜŞÜK hale C1. Yine c2 değerindeki bir gecikmeden sonra döngü devam eder.
Analog değerin 1024'ten çıkarılmasının nedeni, Arduino Uno ADC'nin 10 bit çözünürlük olmasıdır (yani 0 - 2 ^ 10 = 1024 değerindeki tamsayı değerleri). Bu, 0 ile 5 volt arasındaki giriş voltajlarını 0 ile 1024 arasındaki tamsayı değerlerine eşleyeceği anlamına gelir. Dolayısıyla, anlogValue girişini (5/1024) ile çarparsak, giriş voltajının dijital değerini alırız. Arduino'da ADC girişini nasıl kullanacağınızı buradan öğrenin.
boşluk döngüsü () { c2 = analogRead (pot); c1 = 1024-c2; digitalWrite (pwmPin, YÜKSEK); // pin 12'yi ayarlar YÜKSEK gecikmeMicroseconds (c1); // c1 uS (yüksek zaman) digitalWrite (pwmPin, LOW) için bekler ; // pin 12'yi ayarlar LOW delayMicroseconds (c2); // c2 uS'yi bekler (düşük süre) }
Arduino ile DC Motorun Hız Kontrolü
Bu devrede, DC motorun hızını kontrol etmek için, PWM sinyalinin görev döngüsünü değiştirmek için 100K ohm potansiyometre kullanıyoruz. 100K ohm potansiyometre 12 bağlanır Arduino UNO ve DC motor analog giriş pimi A0 bağlı olan inci (PWM pin) Arduino pin. Arduino programının çalışması, voltajı analog pin A0'dan okuduğu için çok basittir. Analog pindeki voltaj, potansiyometre kullanılarak değiştirilir. Gerekli bazı hesaplamaları yaptıktan sonra görev döngüsü ona göre ayarlanır.
Örneğin, analog girişe 256 değer beslersek, YÜKSEK süre 768 ms (1024-256) ve DÜŞÜK süre 256 ms olacaktır. Bu nedenle, görev döngüsünün% 75 olduğu anlamına gelir. Gözlerimiz bu kadar yüksek frekanslı salınımı göremiyor ve motor% 75 hızda sürekli AÇIK gibi görünüyor. Böylece Arduino kullanarak Motor Hız Kontrolünü bu şekilde gerçekleştirebiliriz.