Time.sleep() обнуляет показания фоторезистора на Raspberry Pi

У меня есть Raspberry Pi 3 и фоторезистор, светодиоды, резисторы, макет и т. Д. Теперь я наблюдал странное явление. Когда я запускаю следующий код, все показания датчика освещенности обнуляются.

import RPi.GPIO as GPIO
from time import sleep

class lightSensor():
    def __init__(self, min_light):
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(17, GPIO.OUT)
        self.min_light = min_light

    def main(self):
        GPIO.setup(18, GPIO.OUT)
        GPIO.output(18, GPIO.LOW)
        sleep(0.5)
        GPIO.setup(18, GPIO.IN)

        self.reading = 0
        while (GPIO.input(18) == GPIO.LOW):
            self.reading += 1

        print("Light Reading:", self.reading)
        if self.reading > self.min_light:
           GPIO.output(17, GPIO.HIGH)
        else:
           GPIO.output(17, GPIO.LOW)

light_sensor = lightSensor(min_light=600)

while True:
    try:
        light_sensor.main()
        sleep(1)

    except KeyboardInterrupt:
        GPIO.cleanup()

Затем я удалил вызов sleep(1) из кода. Это делает вывод кода нормальным. Тем не менее, это исправление довольно раздражает, так как показания быстрые. Как я мог это исправить?

0 ответов

Другие вопросы по тегам