В данный момент я пытаюсь разрешить двум MCP3008 общаться через SPI с моим raspberry pi и скриптом Python. Потенциометр должен отправить определенное аналоговое значение на входной канал MCP3008.
Вот мои настройки Fritzing:
Схема макета
и вот схематический обзор:
Обзор схемы
Проводка SPI основана на стандартной схеме последовательного подключения, как показано на:
SPI Daisy Chain
Код Python, который я использую:
import spidev
import time
spi = spidev.SpiDev()
spi.open(0,0)
spi.max_speed_hz = 1000000
def read_spi(channel):
spidata = spi.xfer2([0,(8+channel)<<4,0])
return ((spidata[1] & 3) << 8) + spidata[2]
try:
while True:
channeldata = read_spi(0)
print (channeldata)
time.sleep(.1)
except KeyboardInterrupt:
spi.close()
Я получаю значения, но они сильно меняются с каждым возможным значением в диапазоне от 0 до 1023.
Я пробовал его с одним MCP3008, конечно, без гирляндного соединения, и оно работало нормально, поэтому я предполагаю, что оно как-то связано с неправильным гирляндным соединением или с адресацией MCP3008.
Можете ли вы, ребята, помочь мне? Большое спасибо !!
Приветствия
Devatu