Conectando un MCP42X1 a la frambuesa pi

0

Estoy intentando programar mi frambuesa pi en una maceta digital mcp42X1. Lo tengo conectado y trabajando, el único problema es que no puedo hacer funcionar el segundo bote. Aquí hay un foro de un solo formulario: Potenciómetro digital (MCP4131) con Raspberry Pi

El problema es mi comando desde el pi hasta el segundo potenciómetro digital, no estoy seguro de cómo crear la secuencia binaria adecuada. Aquí está la hoja de datos y la página 48 inicia las secuencias de comandos binarias y he estado tratando de que funcione durante un mes.

Aquí está mi código:

    import time import RPi.GPIO as GPIO

SPI_CS_PIN = 8 SPI_CLK_PIN = 11 SPI_SDISDO_PIN = 10 # mosi


GPIO.setmode(GPIO.BCM) GPIO.setup(SPI_CS_PIN, GPIO.OUT) GPIO.setup(SPI_CLK_PIN, GPIO.OUT) GPIO.setup(SPI_SDISDO_PIN, GPIO.OUT)

def set_value_Alpha(value):
    GPIO.output(SPI_CS_PIN, True)

    GPIO.output(SPI_CLK_PIN, False)
    GPIO.output(SPI_CS_PIN, False)

    b = '00' + '{0:014b}'.format(value)
    for x in range(0, 16):
#        print(b)
        GPIO.output(SPI_SDISDO_PIN, int(b[x]))

        GPIO.output(SPI_CLK_PIN, True)
        GPIO.output(SPI_CLK_PIN, False)

    GPIO.output(SPI_CS_PIN, True)

def set_value_Beta(value):
    GPIO.output(SPI_CS_PIN, True)

    GPIO.output(SPI_CLK_PIN, False)
    GPIO.output(SPI_CS_PIN, False)

    b = '01' + '000100' + '{0:08b}'.format(value)
    for x in range(0, 16):
        print(b)
        GPIO.output(SPI_SDISDO_PIN, int(b[x]))

        GPIO.output(SPI_CLK_PIN, True)
        GPIO.output(SPI_CLK_PIN, False)

    GPIO.output(SPI_CS_PIN, True)

while True:
    set_value_Alpha(120)
    set_value_Beta(0)

Así que set_value_Alpha (valor) es el primer pot y funciona, set_value_Beta (valor) es el segundo y parece que no puedo obtener la secuencia correcta. Cualquier ayuda será apreciada.

    
pregunta deltafee

0 respuestas

Lea otras preguntas en las etiquetas