#python #if-statement #raspberry-pi #gpio
#python #оператор if #raspberry-pi #gpio
Вопрос:
Я пытаюсь сгенерировать последовательность импульсов (используя raspberry pi zero w) и прочитать эту последовательность импульсов (используя модуль аналого-цифрового преобразователя AD1015). Ниже показан мой код.
import RPi.GPIO as GPIO
import time
import Adafruit_ADS1x15
import RPi.GPIO as GPIO
import time
import Adafruit_ADS1x15
GPIO.setwarnings(False)
ADC = Adafruit_ADS1x15.ADS1015()
GPIO.setmode(GPIO.BCM)
GPIO.setup(4,GPIO.OUT)
GAIN = 1
print('Reading ADS1x15values, press Ctrl C to quite')
print('|{0:>6}|'.format(*range(1)))
print('-'*37)
while(1):
GPIO.output(4,GPIO.HIGH)
time.sleep(5)
GPIO.output(4,GPIO.LOW)
time.sleep(5)
A = GPIO.output(4)
if (A == True):
for i in range(1):
values = [0]*1
values[i] = ADC.read_adc(i,gain=GAIN)
print('|{0:>6}|'.format(*values))|
time.sleep(0.5)
else:
for i in range(1):
values[i] = ADC.read_adc(i,gain=GAIN)
print('|{0:>6}|'.format(*values))
time.sleep(0.5)
time.sleep(0.1)
Моя проблема в том, что после компиляции этого кода он не дает в результате аналогового преобразования в цифровое чтение. Ниже показан мой результат после компиляции.
После компиляции дан результат
Кто-нибудь может помочь мне поработать над этим?
Комментарии:
1. что касается меня, у вас неправильные отступы, и вы пытаетесь напечатать его после цикла
while(1)
, но этот цикл никогда не закончится. Вы должны запустить его внутри циклаwhile(1)
, или вам придется запускать циклwhile(1)
в отдельном потоке.
Ответ №1:
Если вы хотите сгенерировать последовательность импульсов, почему бы вам не проверить это: https://gpiozero.readthedocs.io/en/stable/migrating_from_rpigpio.html ?выделите = pwm #pwm-широтно-импульсная модуляция
Затем проверьте, можете ли вы прочитать адрес I2C вашего датчика с помощью этого: https://linux.die.net/man/8/i2cdetect
Затем вам нужно прочитать техническое описание АЦП, чтобы узнать, какой регистр вы можете прочитать. Установите библиотеку SMBU2 и используйте следующие функции: https://smbus2.readthedocs.io/en/latest /