GPIO引脚在While循环中未打开

时间:2019-06-23 19:11:51

标签: python python-3.x raspberry-pi raspberry-pi3 gpio

我试图在一个while循环中控制pi上的GPIO引脚,该循环连接到激活一些peltier设备的电机控制器。该代码正在运行,但是GPIO连接实际上并未触发电动机控制器。什么也没发生,我有一个万用表,它表明电机控制器没有打开珀尔帖设备。

我们将print命令移到了函数中,以便可以查看该函数是否在实际被调用。除了GPIO连接没有触发硬件之外,其他一切似乎都工作正常。

import RPi.GPIO as GPIO
import time
import board
import busio
import digitalio
import adafruit_max31855
from sys import exit

GPIO.setmode(GPIO.BCM)
GPIO.setup(0, GPIO.OUT)
GPIO.setup(2, GPIO.OUT)
GPIO.setup(3, GPIO.OUT)
GPIO.setup(4, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
GPIO.setup(25, GPIO.OUT)
GPIO.setup(27, GPIO.OUT)

def heating():
    GPIO.output(0, False)
    GPIO.output(2, True)
    GPIO.output(3, False)
    GPIO.output(4, True)
    GPIO.output(22, False)
    GPIO.output(23, True)
    GPIO.output(24, False)
    GPIO.output(25, True)
    GPIO.output(27, True)
    print("Now Heating...")

def cooling():
    GPIO.output(0, True)
    GPIO.output(2, False)
    GPIO.output(3, True)
    GPIO.output(4, False)
    GPIO.output(22, True)
    GPIO.output(23, False)
    GPIO.output(24, True)
    GPIO.output(25, False)
    GPIO.output(27, False)
    print("Now Cooling...")

# User Input
desired_temp = int(input("Enter your desired temperature: "))

spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)
cs = digitalio.DigitalInOut(board.D5)

max31855=adafruit_max31855.MAX31855(spi, cs)

try:
    while True:
        tempC = max31855.temperature
        tempF = tempC * 9 / 5 + 32
        print('Temperature: {} C {} F '.format(tempC, tempF))
        time.sleep(0.05)
        if tempF <= desired_temp:
            heating()
        else:
            cooling()
finally:
    GPIO.cleanup()
    exit()

1 个答案:

答案 0 :(得分:0)

尝试逐步进行。得到一个供暖,一个供冷却。 也尝试使用LED来确定其是否向电机发出信号。