Python добавляет к списку только один данные за один раз из GPIO - PullRequest
0 голосов
/ 26 апреля 2018

так что я только начинаю с python и уточняю свои показания с тензодатчика, подключенного к малиновому пи. Вот код:

hx = HX711(5, 6)
hx.set_reading_format("LSB", "MSB")
hx.set_reference_unit(26.978)
hx.reset()
hx.tare()


while True:
    for i in range (15):
        val = int(hx.get_weight(5))
        newval = abs(round((float(val/1000)),1))        
        X = []
        X.append (newval)
        print ([X])
        hx.power_down()
        hx.power_up()

Я предполагаю, что получу список чтений за тот период времени, возможно, 4? Но я всегда получаю один. Данные определенно поступают достаточно часто, чтобы составить список, но мой список - это всегда только одни данные.

Я уверен, что я делаю что-то не так, пожалуйста, помогите, очень признателен.

1 Ответ

0 голосов
/ 26 апреля 2018

2 вещи, которые я заметил, что не так:

  1. вы использовали цикл for, не используя индекс ни в одной из инструкций, этот цикл for находится внутри цикла while.Это бессмысленно, так что убери это.
  2. вы инициализируете список X в каждой итерации, поэтому он имеет только одно значение.Вы можете поставить X = [] над циклом while.

Например:

hx = HX711(5, 6)
hx.set_reading_format("LSB", "MSB")
hx.set_reference_unit(26.978)
hx.reset()
hx.tare()


while True:
    X = []
    for i in range (15):
        val = int(hx.get_weight(5))
        newval = abs(round((float(val/1000)),1))        
        X.append (newval)
        hx.power_down()
        hx.power_up()
    print ([X])

покажет список из 15 значений

...