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

Raspberry Pi ile ADC ve DAC Uygulaması

4 min read
0
0
287

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…

 

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Umut Kazanç
Daha Fazla Göster -  Raspberry Pi

Bir Cevap Yazın

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

Bak Bakalım ?

Raspberry Pi Zero W ve Web Cam ile IP Kamera Yapımı

Merhaba Arkadaşlar; Bu uygulamada sizlere raspberry pi ile ip camera yapımından bahsedeceğ…