Merhaba, bu yazımızda Raspberry Pi üzerinde oluşturacağımız LCD arayüzü ile GPIO pinlerinin nasıl kontrol edileceğini basit bir örnek ile yapacağız. Raspberry pi üzerindeki GPIO-3 nolu pini oluşturacağımız arayüz ile kontrol edeceğiz. Aşağıdaki videodan uygulamanın çalışmasını izleyebilirsiniz.
Gerekli malzemeler;
- Raspberry pi 3
- LED
- 330Ω direnç

Bu uygulamada python3 programlama dilini kullanacağız. Arayüz oluşturmak için kullanacağımız modül ise PyQt5 dir. Öncelikle PyQt5 modülünü raspberry pi’ye yüklemek için aşağıdaki komutları kullanıyoruz.
1 2 |
sudo apt-get update sudo apt-get install qt5-default pyqt5-dev pyqt5-dev-tools |
Kurulum bittikten sonra IDLE3 uygulamasını veya başka bir python IDE’sini açarak aşağıdaki kodları yazalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#-*-coding:utf-8-*- import sys import RPi.GPIO as GPIO import time from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication, QLabel GPIO.setmode(GPIO.BOARD) GPIO.setup(3, GPIO.OUT) class Example(QMainWindow, QLabel): def __init__(self): super().__init__() self.initUI() def initUI(self): etiket = QLabel('<font color="black" size="+1">Lamba kontrol butonları</font>', self) etiket.resize(etiket.sizeHint()) etiket.move(10, 10) btn1 = QPushButton("ON", self) btn1.move(30, 50) btn2 = QPushButton("OFF", self) btn2.move(150, 50) btn1.clicked.connect(self.ONClicked) btn2.clicked.connect(self.OFFClicked) self.statusBar() self.setGeometry(300, 300, 290, 150) self.setWindowTitle('Led Kontrol') self.show() def ONClicked(self): GPIO.output(3,1) sender = self.sender() self.statusBar().showMessage(sender.text() + ' Led yandı') def OFFClicked(self): GPIO.output(3,0) sender = self.sender() self.statusBar().showMessage(sender.text() + ' Led söndü') if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) |
Yukarıdaki kodları çalıştırdığımızda herhangi bir hata veya eksiklik yoksa GPIO kontrolü için arayüz penceresi gelecektir.