- Gerekli Bileşenler
- PCF8591 ADC / DAC Modülü
- Raspberry Pi'de I2C pinleri
- Raspberry Pi ile PCF8591 ADC / DAC Modülünü Arayüz
- Analogdan Dijitale Dönüştürme (ADC) için Python programı
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ü Raspberry Pi ile nasıl arayüzleyeceğimizi öğreneceğiz .
Gerekli Bileşenler
- Ahududu pi
- PCF8591 ADC Modülü
- 100K Pot
- Jumper Kabloları
En son Raspbian işletim sistemi yüklü Raspberry Pi'ye sahip olduğunuz ve macun gibi bir terminal yazılımı kullanarak Pi'ye nasıl SSH yapacağınızı bildiğiniz varsayılmaktadır. Raspberry Pi'de yeniyseniz, Raspberry Pi'yi kullanmaya başlamak için bu makaleyi izleyin. Yine de herhangi bir sorunla karşılaşırsanız, yardımcı olabilecek tonlarca Raspberry Pi Öğreticisi vardır.
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ırve J6, ayarlanabilir voltaj erişim devresini seçmek için bağlanır. 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.
Raspberry Pi'de I2C pinleri
Raspberry Pi ile PCF8591'i kullanmak için yapılacak ilk şey Raspberry Pi I2C port pinlerini bilmek ve Raspberry pi'de I2C portunu yapılandırmaktır.
Raspberry Pi 3 Model B + 'nın Pin Şeması aşağıdadır ve I2C pinleri GPIO2 (SDA) ve GPIO3 (SCL) bu eğitimde kullanılmıştır.
Raspberry Pi'de I2C'yi Yapılandırma
Raspberry Pi'de varsayılan olarak I2C devre dışı bırakılmıştır. Bu yüzden önce etkinleştirilmesi gerekir. Raspberry Pi'de I2C'yi etkinleştirmek için
1. Terminale gidin ve sudo raspi-config yazın.
2. Şimdi Raspberry Pi Yazılım Yapılandırma Aracı görünür.
3. Arayüz seçeneklerini seçin ve ardından I2C'yi etkinleştirin.
4. I2C'yi etkinleştirdikten sonra Pi'yi yeniden başlatın.
Raspberry Pi kullanarak PCF8591'in I2C Adresini Tarama
Artık PCF8591 IC ile iletişime başlamak için Raspberry Pi'nin I2C adresini bilmesi gerekir. Adresi bulmak için önce PCF8591'in SDA ve SCL pinini Raspberry Pi'nin SDA ve SCL pinine bağlayın. Ayrıca + 5V ve GND pinlerini de bağlayın.
Şimdi terminali açın ve bağlı I2C cihazının adresini bilmek için aşağıdaki komutu yazın, sudo i2cdetect –y 1 veya sudo i2cdetect –y 0
I2C adresini bulduktan sonra şimdi devreyi kurma ve PCF8591'i Raspberry Pi ile kullanmak için gerekli kütüphaneleri kurma zamanı.
Raspberry Pi ile PCF8591 ADC / DAC Modülünü Arayüz
Raspberry Pi ile PCF8591'in Arayüzünün devre şeması basittir. Bu arayüz örneğinde, analog pinlerin herhangi birinden analog değerleri okuyup Raspberry Pi terminalinde göstereceğiz. 100K pot kullanarak değerleri değiştirebiliriz.
VCC ve GND'yi Raspberry Pi'nin GPIO2 ve GPIO'suna bağlayın. Ardından, SDA ve SCL'yi sırasıyla GPIO3 ve GPIO5'e bağlayın. Son olarak AIN0 ile 100K pota bağlayın. Ayrıca Terminalde göstermek yerine ADC değerlerini görüntülemek için 16x2 LCD ekleyebilirsiniz. 16x2 LCD'yi Raspberry Pi ile arayüzleme hakkında buradan daha fazla bilgi edinin.
Analogdan Dijitale Dönüştürme (ADC) için Python programı
Programın tamamı ve çalışma videosu bu eğitimin sonunda verilmiştir.
Öncelikle, değerin yazdırılması arasında bir uyku süresi vermek için I 2 C veri yolu iletişimi ve zaman kitaplığı için smbus kitaplığını içe aktarın.
smbus içe aktarma süresi
Şimdi bazı değişkenleri tanımlayın. İlk değişken I 2 C veriyolunun adresini içerir ve ikinci değişken, birinci analog giriş pininin adresini içerir.
adres = 0x48 A0 = 0x40
Daha sonra, kütüphane smbus'un SMBus (1) fonksiyonunun bir nesnesini yaptık.
otobüs = smbus.SMBus (1)
Şimdi, içeri iken ilk satırı IC söyler birinci analog giriş pin analog ölçüm yapmak. İkinci satır, analog pinde okunan adresi değişken bir değerde depolar. Son olarak değeri yazdırın.
True iken: bus.write_byte (adres, A0) değer = bus.read_byte (adres) print (değer) time.sleep (0.1)
Şimdi nihayet python kodunu.py entension ile bir dosyaya kaydedin ve aşağıdaki komutu kullanarak kodu raspberry Pi terminalinde çalıştırın "
python dosyaadı.py
Kodu çalıştırmadan önce I 2 C iletişimini etkinleştirdiğinizden ve tüm pinlerin şemada gösterildiği gibi bağlandığından emin olun, aksi takdirde hataları gösterecektir. Analog değerler terminalde aşağıdaki gibi görünmeye başlamalıdır. Tencere topuzunu ayarlayın ve değerlerde kademeli değişimi göreceksiniz. Programı şurada çalıştırma hakkında daha fazla bilgi edinin
Tam python kodu ve Video aşağıda verilmiştir.