Analogdan dijitale dönüşüm, gömülü elektroniklerde çok önemli bir görevdir, çünkü sensörlerin çoğu analog değerler olarak çıktı sağlar ve bunları yalnızca ikili değerleri anlayan mikrodenetleyiciye beslemek için onları Dijital değerlere dönüştürmemiz gerekir. Bu nedenle, analog verileri işleyebilmek için mikrodenetleyicilerin Analogdan Dijitale Dönüştürücüye ihtiyacı vardır.
Bazı mikrodenetleyiciler Arduino, MSP430, PIC16F877A gibi dahili ADC'ye sahiptir, ancak bazı mikrodenetleyicilerde 8051, Raspberry Pi vb. Aşağıda farklı mikrodenetleyicilere sahip çeşitli ADC örneklerini bulabilirsiniz:
- Arduino Uno'da ADC Nasıl Kullanılır?
- Raspberry Pi ADC Eğitimi
- ADC0808 ile 8051 Mikrodenetleyici arasında arayüz oluşturma
- AVR Mikrodenetleyiciyi kullanarak 0-25V Dijital Voltmetre
- STM32F103C8'de ADC nasıl kullanılır
- MSP430G2'de ADC nasıl kullanılır
- ARM7 LPC2148'de ADC nasıl kullanılır
- MPLAB ve XC8 ile PIC Mikroişlemcinin ADC Modülünü Kullanma
Bu eğitimde, PCF8591 ADC / DAC modülünün Arduino ile nasıl arayüzleneceğini kontrol edeceğiz.
Gerekli Bileşenler
- Arduino UNO
- PCF8591 ADC Modülü
- 100K Pot
- Jumper Kabloları
PCF8591 ADC / DAC Modülü
PCF8591, 8 bit analogdan dijitale veya 8 bit dijitalden analoğa dönüştürücü modüldür, yani her bir pin 256'ya kadar analog değerleri okuyabilir. Ayrıca kart üzerinde sağlanan LDR ve termistör devresine sahiptir. Bu modülün dört analog girişi ve bir analog çıkışı vardır. I 2 C iletişimi üzerinde çalışır, bu nedenle seri saat ve seri veri adresi için SCL ve SDA pinleri vardır. 2.5-6V besleme gerilimi gerektirir ve düşük bekleme akımına sahiptir. Modül üzerindeki potansiyometre düğmesini ayarlayarak da giriş voltajını değiştirebiliriz. Tahtada ayrıca üç jumper bulunmaktadır. J4, termistör erişim devresini seçmek için bağlanır, J5, LDR / foto direnç erişim devresini seçmek için bağlanır ve J6, ayarlanabilir voltaj erişim devresini seçmek için bağlanır. Bu devrelere erişmek için şu atlama tellerinin adreslerini kullanmanız gerekir: J6 için 0x50, J5 için 0x60 ve J4 için 0x70. Kart üzerinde D1 ve D2-D1 çıkış gerilim yoğunluğunu ve D2 besleme geriliminin yoğunluğunu gösteren iki LED vardır. Çıkış veya besleme voltajı ne kadar yüksekse, LED D1 veya D2'nin yoğunluğu o kadar yüksek olur. Bu LED'leri ayrıca VCC veya AOUT pininde bir potansiyometre kullanarak da test edebilirsiniz.
PCF8591 ADC / DAC Modülünü Arduino ile Arayüz
Programın tamamı ve çalışma videosu bu eğitimin sonunda verilmiştir.
Öncelikle I 2 C haberleşme ve LCD ekran için kütüphane tanımlamamız gerekiyor.
#Dahil etmek
Sonra bazı makroları tanımlayın. Birinci makro, IC için veri yolunun adresini tanımlamak içindir ve ikinci makro, pottan girişin verildiği modülün birinci giriş pininin adresini tanımlamak içindir.
#define PCF8591 (0x90 >> 1) #define AIn0 0x00
Daha sonra Arduino ile LCD'nin pin bağlantılarını tanımlayın ve analog pin üzerinden aldığımız değeri başlatın.
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd (rs, en, d4, d5, d6, d7); int Değer = 0;
Şimdi kurulum fonksiyonuna gelelim. Burada, ilk satırda I 2 C iletişimini başlattık. İkinci satırda, analog değerleri yazdırdığımız LCD ekranını başlattık. 16x2 LCD ile Arduino arasında arayüz oluşturma hakkında daha fazla bilgiyi burada bulabilirsiniz.
geçersiz kurulum () { Wire.begin (); lcd.begin (16,2); }
In döngü fonksiyonu, birinci çizgisi PCF8591 başlar, yani iletim başlayacak. İkinci satır IC'ye analog ölçümü ilk analog giriş pininde yapmasını söyler. Üçüncü satır gönderimi sonlandırır ve dördüncü satır ölçülen verileri analog pinden alır.
geçersiz döngü () { Wire.beginTransmission (PCF8591); Wire.write (AIn0); Wire.endTransmission (); Wire.requestFrom (PCF8591, 1);
Sonraki bölümde, analog pinden okunan değeri daha önce tanımlanan Değer değişkenine yerleştirin. Sonraki satırlarda, bu değeri LCD'ye yazdırın.
Değer = Wire.read (); lcd.print ("ADC Değeri ="); lcd.print (Değer); gecikme (500); lcd.clear ();}
Sonunda kodu Arduino'ya yükleyin ve çalıştırın. Analog değerler LCD ekranda görünmeye başlayacaktır. Tencere topuzunu ayarlayın ve değerlerde kademeli değişimi göreceksiniz.