Я пытаюсь управлять выводами GPIO на пи в пределах цикла while, который подключается к контроллеру мотора, который активирует некоторые устройства Пельтье. Код работает, но соединения GPIO фактически не запускают контроллеры двигателя. Ничего не происходит, и у меня есть мультиметр, который показывает, что контроллер мотора не включает устройства Пельтье.
Мы переместили команду печати в функцию, чтобы мы могли видеть, действительно ли функция вызывается. Кажется, все работает нормально, за исключением того, что соединения 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()