나는이 qt 크리에이터 GUI의 qlcdnumber 위젯에 라즈베리 파이 입력 핀 전압을 부분적으로 표시하는 코드를이 사이트의 많은 연구 질문과 함께 정리했다. 코드가 완벽하게 실행되고 gui가 팝업되고 핀 전압이 터미널에 인쇄되고 (일시적) 버튼이 gui에서 작동하여 다른 핀을 높게 또는 낮게 조정합니다. 오류는 없지만 신호는 GUI LCD에 표시되지 않습니다. 나는 성공할 수있는 모든 것을 연구했고 지금 나는 그것을 추측하고있는 것처럼 느낀다. 나는 어떤 입력과 지시도 감사 할 것이다. 나는 많은 것을 배웠지 만 여전히 도움이된다면 도움이 될 것입니다. 내가 여기lcdnumber 신호 및 슬롯
3.2.1 전체 코드는 다시 한번 모든 명령에 감사 Raspbian 및 QT4/Qt는 창조주을 사용하고 있습니다 : 다른 게시물에
import sys
import RPi.GPIO as GPIO
import time
import re
from PyQt4 import QtGui, uic, QtCore
import spidev
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
o2zero = 26
o2span = 19
cozero = 13
cospan = 6
co2zero = 5
co2span = 21
status = "nil"
o2_channel = 0
o2_temp_channel = 1
spi = spidev.SpiDev()
spi.open(0,0)
class MyWindow(QtGui.QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
uic.loadUi('mainwindow.ui', self)
self.o2_zero_up.clicked.connect(self.o2zeroup)
self.o2_zero_down.clicked.connect(self.o2zerodown)
self.o2_span_up.clicked.connect(self.o2spanup)
self.o2_span_down.clicked.connect(self.o2spandown)
self.co_zero_up.clicked.connect(self.cozeroup)
self.co_zero_down.clicked.connect(self.cozerodown)
self.co_span_up.clicked.connect(self.cospanup)
self.co_span_down.clicked.connect(self.cospandown)
self.co2_zero_up.clicked.connect(self.co2zeroup)
self.co2_zero_down.clicked.connect(self.co2zerodown)
self.co2_span_up.clicked.connect(self.co2spanup)
self.co2_span_down.clicked.connect(self.co2spandown)
self.close_button.clicked.connect(self.gpiocleanup)
self.thread = O2_Channel()
self.thread.o2_concentration.connect(self.onChangeValue)
self.thread.start()
self.show()
def onChangeValue(self, values):
o2_volts = values
def o2zeroup(self):
GPIO.setup(o2zero, GPIO.OUT)
GPIO.output(o2zero, 1)
def o2zerodown(self):
GPIO.setup(o2zero, GPIO.OUT)
GPIO.output(o2zero, 0)
def o2spanup(self):
GPIO.setup(o2span, GPIO.OUT)
GPIO.output(o2span, 1)
def o2spandown(self):
GPIO.setup(o2span, GPIO.OUT)
GPIO.output(o2span, 0)
def cozeroup(self):
GPIO.setup(cozero, GPIO.OUT)
GPIO.output(cozero, 1)
def cozerodown(self):
GPIO.setup(cozero, GPIO.OUT)
GPIO.output(cozero, 0)
def cospanup(self):
GPIO.setup(cospan, GPIO.OUT)
GPIO.output(cospan, 1)
def cospandown(self):
GPIO.setup(cospan, GPIO.OUT)
GPIO.output(cospan, 0)
def co2zeroup(self):
GPIO.setup(co2zero, GPIO.OUT)
GPIO.output(co2zero, 1)
def co2zerodown(self):
GPIO.setup(co2zero, GPIO.OUT)
GPIO.output(co2zero, 0)
def co2spanup(self):
GPIO.setup(co2span, GPIO.OUT)
GPIO.output(co2span, 1)
def co2spandown(self):
GPIO.setup(co2span, GPIO.OUT)
GPIO.output(co2span, 0)
def gpiocleanup(self):
GPIO.cleanup()
def closeEvent(self, event):
self.thread.stop()
self.thread.quit()
self.thread.wait()
self.thread.deleteLater()
print ("GPIO CleanUP")
GPIO.cleanup()
event.accept()
def ReadChannel(channel):
adc = spi.xfer2([1,(8+channel)<<4,0])
data = ((adc[1]&3) << 8) + adc[2]
return data
def ConvertVolts(data, places):
volts = (data * 3.3)/float(1023)
volts = round(volts,places)
return volts
class O2_Channel(QtCore.QThread):
o2_concentration = QtCore.pyqtSignal(int)
def __init__(self):
QtCore.QThread.__init__(self)
self.mRunning = True
def run(self):
while self.mRunning:
o2_level = ReadChannel(o2_channel)
o2_volts = ConvertVolts(o2_level,2)
print("{}".format(o2_volts))
self.o2_concentration.emit(o2_volts)
delay = .2
time.sleep(delay)
def stop(self):
self.mRunning = False
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())