def __init__(self, clk, dio): self.clk = clk self.dio = dio self.brightness = 0x0f GPIO.cleanup() self.SetupGpio(self.clk, GPIO.OUT) self.SetupGpio(self.dio, GPIO.OUT) GPIO.output(self.clk, GPIO.LOW) GPIO.output(self.dio, GPIO.LOW) GPIO.direction(self.clk, GPIO.IN) GPIO.direction(self.dio, GPIO.IN)
def stop(self): GPIO.direction(self.dio, GPIO.OUT) self.bit_delay() GPIO.direction(self.clk, GPIO.IN) self.bit_delay() GPIO.direction(self.dio, GPIO.IN) self.bit_delay()
def SetupGpio(self, pin, mode): try: GPIO.setup(pin, mode) except: GPIO.direction(pin, mode)
def write_byte(self, b): # 8 Data Bits for i in range(8): # CLK low GPIO.direction(self.clk, GPIO.OUT) self.bit_delay() GPIO.direction(self.dio, GPIO.IN if b & 1 else GPIO.OUT) self.bit_delay() GPIO.direction(self.clk, GPIO.IN) self.bit_delay() b >>= 1 GPIO.direction(self.clk, GPIO.OUT) self.bit_delay() GPIO.direction(self.clk, GPIO.IN) self.bit_delay() GPIO.direction(self.clk, GPIO.OUT) self.bit_delay() return
def start(self): GPIO.direction(self.dio, GPIO.OUT) self.bit_delay()