Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr Merhaba Arkadaşlar; Bu uygulamada sizlere ADS1115 de 4 kanal adc okumasını QT de form da nasıl göstereceğiz onu anlatacağım. Öncelikle normal konsol ekranından ziyade formda göstermek bu tür uygulamalarda yani sürekli ekrana veri tazeleme olayında konsol yetersiz kalabiliyor. O yüzden görsel form üzerinden daha akıcı oluyor. Daha önceki yazılarımda QT kurulumunu anlatmıştım inceleyebilirsiniz. Yeni proje açarak isim verip cihazı seçip projemizi oluşturalım. İlk önce wiringPi kütüphanesini QT ye ekleyelim. LIBS += -L/usr/local/lib -lwiringPi LIBS += -L/usr/local/lib -lwiringPiDev INCLUDEPATH += /usr/local/include Daha sonra mainwindow.h dosyasına wiringPi ve Qtimer ı ekliyoruz. #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QTimer> #include <wiringPiI2C.h> #include <ads1115.h> #include <wiringPi.h> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); QTimer *timer; private slots: void Timer_1(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H Şimdi gelelim ui dosyamızı yani formu hazırlamaya; Ekrana; 4 adet Progress bar 8 adet LCD Number 5 Adet Label ekliyoruz. Uğraşmak istemeyenler için proje dosyasını indirebilirler. ADS1015 mainwidow.cpp yi açıp aşağıdaki kodu ekliyoruz int AN[4]; float Volt[4]; void InitHW() { wiringPiSetup(); ads1115Setup(100,0×48); } MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); InitHW(); timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(Timer_1())); timer->start(50); } MainWindow::~MainWindow() { timer->stop(); delete ui; } void MainWindow::Timer_1() { for(int i=0;i<4;i++) { AN[i] = (int16_t) analogRead(100+i); Volt[i] = AN[i] * (4.096 / 32768); } ui->progressBar->setValue(AN[0]); ui->progressBar_2->setValue(AN[1]); ui->progressBar_3->setValue(AN[2]); ui->progressBar_4->setValue(AN[3]); ui->lcdNumber_2->display(Volt[0]); ui->lcdNumber_4->display(Volt[1]); ui->lcdNumber_6->display(Volt[2]); ui->lcdNumber_8->display(Volt[3]); } Kodu incelersek, ilk önce wiringPi setup ve ADS setup yaparak ADS nin adresini belirtiyoruz. Daha sonra timer i hazırlayıp 50ms için başlatıyoruz. Timer ın içerisine ise analog değerleri okuyup onları hesapladıktan sonra progressbar a ve lcd number a yazıyoruz. işlem bu kadar kodu derleyip çalıştırdığımızda ise değerleri okumuş olacağız. Bir başka uygulamada görüşmek üzere, Kolay gelsin…