Bu eğitimde Arduino Uno'dan 5V değişken voltaj kaynağı geliştireceğiz. Bunun için ADC (Analogdan Dijitale Dönüştürme) ve PWM (Darbe Genişlik Modülasyonu) özelliğini kullanacağız.
İvmeölçer gibi bazı dijital elektronik modüller 3.3V voltajda ve bazıları 2.2V üzerinde çalışır. Hatta bazıları daha düşük voltajlarda çalışır. Bununla her biri için bir düzenleyici alamayız. Bu yüzden burada 0,05V çözünürlükte 0-5 volt arasında voltaj çıkışı sağlayacak basit bir devre yapacağız. Böylece, diğer modüller için doğru şekilde voltaj sağlayabiliriz.
Bu devre 100mA'ya kadar akımlar sağlayabilir, bu nedenle bu güç ünitesini sensör modüllerinin çoğu için sorunsuz bir şekilde kullanabiliriz. Bu devre çıkışı, AA veya AAA şarj edilebilir pilleri şarj etmek için de kullanılabilir. Ekran yerindeyken sistemdeki güç dalgalanmalarını kolayca görebiliriz. Bu değişken güç kaynağı ünitesi, voltaj programlama için düğme arabirimi içerir. Çalışma ve devre aşağıda açıklanmıştır.
Donanım: Arduino Uno, Güç kaynağı (5v), 100uF kapasitör (2 adet), buton (2 adet), 1KΩ direnç (3 adet), 16 * 2 karakter LCD, 2N2222 transistör.
Yazılım: Atmel studio 6.2 veya AURDINO her gece.
Devre Şeması ve Çalışma Açıklaması
Arduino kullanılarak değişken gerilim birimi için devre diyagramı aşağıda gösterilmiştir.
Çıkıştaki voltaj tamamen doğrusal değildir; gürültülü olacak. Gürültü kapasitörlerini filtrelemek için şekilde gösterildiği gibi çıkış terminallerine yerleştirilir. Buradaki iki düğme voltaj artışı ve azaltma içindir. Gösterge ünitesi, OUTPUT terminallerindeki voltajı gösterir.
Çalışmaya başlamadan önce Arduino UNO'nun ADC ve PWM özelliklerine bakmamız gerekiyor.
Burada OUTPUT terminalinde sağlanan voltajı alıp Arduino'nun ADC kanallarından birine besleyeceğiz. Dönüşümden sonra bu DİJİTAL değeri alacağız ve voltajla ilişkilendirip sonucu 16 * 2 ekranda göstereceğiz. Ekrandaki bu değer, değişken voltaj değerini temsil eder.
ARDUINO, şekilde gösterildiği gibi altı ADC kanalına sahiptir. Bunlardan herhangi biri veya tümü analog voltaj için giriş olarak kullanılabilir. UNO ADC 10 bit çözünürlüktedir (yani (0- (2 ^ 10) 1023) arasındaki tam sayı değerleri) Bu, 0 ile 5 volt arasındaki giriş voltajlarını 0 ile 1023 arasındaki tam sayı değerlerine eşleyeceği anlamına gelir. (5/1024 = 4.9mV) birim başına.
Burada UNO'nun A0'ını kullanacağız.
|
Öncelikle UNO ADC kanallarının varsayılan referans değeri 5V'tur. Bu, herhangi bir giriş kanalında ADC dönüşümü için maksimum 5V giriş voltajı verebileceğimiz anlamına gelir. Bazı sensörler 0-2.5V arasında voltaj sağladığından, 5V referans ile daha az doğruluk elde ederiz, bu nedenle bu referans değerini değiştirmemizi sağlayan bir talimatımız var. Yani referans değerini değiştirmek için elimizde (“analogReference ();”) Şimdilik olarak bırakıyoruz.
Varsayılan olarak, 10 bit olan maksimum kart ADC çözünürlüğünü elde ederiz, bu çözünürlük komut kullanılarak değiştirilebilir ("analogReadResolution (bit);"). Bu çözünürlük değişikliği bazı durumlarda kullanışlı olabilir. Şimdilik olarak bırakıyoruz.
Şimdi yukarıdaki koşullar varsayılan olarak ayarlanmışsa, "analogRead (pin)" işlevini doğrudan çağırarak "0" kanalının ADC'sinden değeri okuyabiliriz; burada "pin", analog sinyali bağladığımız pini temsil eder, bu durumda "A0" olacaktır.
ADC'den gelen değer "float VOLTAGEVALUE = analogRead (A0)" şeklinde bir tamsayı olarak alınabilir; ", Bu komut ile ADC'den sonraki değer" VOLTAGEVALUE "tamsayısında saklanır.
UNO'nun PWM'si, PCB kartı üzerinde "~" ile simgelenen pinlerden herhangi birinde elde edilebilir. UNO'da altı PWM kanalı vardır. PIN3'ü amacımız için kullanacağız.
analogWrite (3, VALUE); |
Yukarıdaki koşuldan, PWM sinyalini doğrudan ilgili pinden alabiliriz. Parantez içindeki ilk parametre, PWM sinyalinin pin numarasını seçmek içindir. İkinci parametre görev oranını yazmak içindir.
UNO'nun PWM değeri 0'dan 255'e değiştirilebilir. En düşük "0" ile en yüksek "255" ile. Görev oranı olarak 255 ile PIN3'te 5V alacağız. Görev oranı 125 olarak verilirse PIN3'te 2,5V alacağız
Daha önce belirtildiği gibi, UNO'nun PIN4 ve PIN5'ine bağlı iki düğme vardır. Basıldığında PWM'nin görev oranı değeri artacaktır. Diğer düğmeye basıldığında PWM'nin görev oranı değeri azalır. Bu yüzden PIN3'te PWM sinyalinin görev oranını değiştiriyoruz.
PIN3'teki bu PWM sinyali, NPN transistörünün tabanına beslenir. Bu transistör, bir anahtarlama cihazı görevi görürken vericisinde değişken bir voltaj sağlar.
Tabandaki değişken görev oranı PWM ile emitör çıkışında değişken voltaj olacaktır. Bununla birlikte elimizde değişken bir voltaj kaynağımız var.
Gerilim çıkışı, kullanıcının gerilim çıkışını görmesi için UNO ADC'ye beslenir.