Невозможно прочитать действительное входное напряжение в Raspberry Pi с PCF8591

erickson уже объяснил, почему вы не можете этого сделать, но здесь некоторые решения:

Если вы хотите только извлечь элементы из своего базового списка, в принципе ваш метод приема должен быть объявлен как принимающий List<? extends BaseClass>.

Но если это не так, и вы не можете его изменить, вы можете обернуть список с помощью Collections.unmodifiableList(...), который позволяет возвращать список супертипа параметра аргумента. (Он избегает проблемы с типами, бросая UnsupportedOperationException при попытках вставки).

1
задан Nitesh Waghmare 23 January 2019 в 11:29
поделиться

1 ответ

Чтобы получить правильное значение, вы должны прочитать значение дважды. При первом считывании микросхема выполняет новое измерение и возвращает текущее значение в регистр (что не является правильным значением). Во втором чтении вы получите правильное значение:

import smbus
import time

address = 0x48  
A0 = 0x40
A1 = 0x41
A2 = 0x42
A3 = 0x43
bus = smbus.SMBus(1)

while True:
    bus.read_byte_data(address, A1)  # do the measurement but ignore the value
    value = bus.read_byte_data(address, A1)  # get the correct value
    #print(value)
    print("AOUT: %1.03f" %(value*3.3/255))
    time.sleep(0.2)
0
ответ дан Sebastian Stigler 23 January 2019 в 11:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: