Ana Sayfa Raspberry Pi Raspberry Pi ile ADC ve DAC Uygulaması

Raspberry Pi ile ADC ve DAC Uygulaması

4 min read
1
0
5,203

Merhaba Arkadaşlar,

Bu yazımda sizlere Raspberry Pi ile ADC ölçümünden bahsedeceğim. Bildiğiniz gibi Raspberry Pi nin ADC ölçüm için bir girişi bulunmamaktadır, bu yüzden çeşitli harici ADC modülleri ile bu işlem yapılır. Ben uygulamamda PFC8591 ADC DAC modülünü seçtim. Hatta uygulamayı daha iyi hale getirmek için Analog kanallara 2 Eksenli Joystick modülü bağladım. Pi tarafında ise QT Creator kullarak görsel bir form üzerinde değerleri bar şeklinde yansıttım.

İlk olarak modüllerin bağlantılarından bahsedeyim;

Şekildeki gibi PFC8591 modülün 4 adet analog girişleri ve bir adet analog çıkışı mevcuttur. Ben AN0 a üzerindeki LDR yi, AN3 e ise üzerindeki POT a jumperlardan seçtim. AN1 ve AN2 ye ise Joystick  modülünün X ve Y çıkışlarını verdim. Burada dikkat etmeniz gereken nokta Joystick modülündeki 5V girişidir. Buraya mutlaka raspberry den 3V a bağlamalısınız.

 

Uygulama programı indirmek için tıklayın. ADC1

Program oldukça basit, QT yi açıp .pro dosyası ile projemizi açıyoruz. mainwindow.cpp dosyasında kodlarımız mevcuttur. İlk olarak wiringPi ve I2C init ediliyor.

wiringPiSetup();
fd = wiringPiI2CSetup(PCF8591);

Daha sonra ADC işleminin sürekli okuma yapması için bir timer açıp onu bağlıyoruz. (5ms de bir okuma yapsın)

timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(Timer_1()));
timer->start(5);

ve daha sonra ise sırası 4 kanalı belirtilen adresler ile okuyup değişkenlere yazdıktan sonra progressBar lara güncelliyoruz. Aynı zamanda horizontalSlider deki değeri alıp DAC adresine yazıyoruz.

//Read AN0 LDR
wiringPiI2CReadReg8(fd, PCF8591 + AN0) ; // dummy read
ANOval = wiringPiI2CReadReg8(fd, PCF8591 + AN0);

//Read AN1 Xpot
wiringPiI2CReadReg8(fd, PCF8591 + AN1) ; // dummy read
AN1val = wiringPiI2CReadReg8(fd, PCF8591 + AN1);

//Read AN2 Ypot
wiringPiI2CReadReg8(fd, PCF8591 + AN2) ; // dummy read
AN2val = wiringPiI2CReadReg8(fd, PCF8591 + AN2);

//Read AN3 POT
wiringPiI2CReadReg8(fd, PCF8591 + AN3) ; // dummy read
AN3val = wiringPiI2CReadReg8(fd, PCF8591 + AN3);

// write to DAC reg, 0x04
wiringPiI2CWriteReg8 (fd, PCF8591 + DAC, DACval);

ui->progressBar->setValue(AN1val);
ui->progressBar_2->setValue(AN2val);
ui->progressBar_3->setValue(AN3val);
ui->progressBar_4->setValue(ANOval);

Sonra programı çalıştırdığımızda ekranda sürekli güncellenen değerleri görüyoruz, pot lar ile oynayıp çalışmasını izleyebilirsiniz.

https://www.youtube.com/watch?v=HyDxhZFu7rE

Kolay Gelsin…

 

  • Raspberry Pi IP Adresi Öğrenme

    Merhaba Arkadaşlar, bu yazımızda Raspberry Pi’nin IP adresini bulmayı göstereceğim. Raspbe…
  • Raspberry Pi İlk Kurulum

    Merhaba Arkadaşlar, bu yazımızda Raspberry Pi’ye Raspbian İşletimi Sistemi kurulumunu anla…
  • Raspberry Pi Giriş

    Raspberry Pi Nedir ? Raspberry Pi, Birleşik Krallıklardaki okullarda bilgisayar bilimini ö…
Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Umut Kazanç
  • Raspberry Pi IP Adresi Öğrenme

    Merhaba Arkadaşlar, bu yazımızda Raspberry Pi’nin IP adresini bulmayı göstereceğim. Raspbe…
  • Raspberry Pi İlk Kurulum

    Merhaba Arkadaşlar, bu yazımızda Raspberry Pi’ye Raspbian İşletimi Sistemi kurulumunu anla…
  • Raspberry Pi Giriş

    Raspberry Pi Nedir ? Raspberry Pi, Birleşik Krallıklardaki okullarda bilgisayar bilimini ö…
Daha Fazla Göster -  Raspberry Pi

1 Yorum

  1. Nursen

    31 Mayıs 2019 at 12:40

    Hocam bu yaptığınız işlemi ekg verisi işlemede nasıl kullanabilirim python dilinde yardımcı olur musunuz

    Reply

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

NodeMCU : DS18B20 ile Sıcaklık Web Server

Merhaba Arkadaşlar, Bu uygulamada sizlere ESP8266 da LUA ile DS18b20 yi okuyacağım.. Bunun…