def backlight(status): """ control backlight """ #wiringPy.digital_write(pin_LIGHT, 1 - status) if status==0: GPIO.output(pin_LIGHT, GPIO.HIGH) else: GPIO.output(pin_LIGHT, GPIO.LOW)
def send(cmd,type): GPIO.output(pin_CS, GPIO.LOW) if(type == SEND_CHR): GPIO.output(pin_DC, GPIO.HIGH) else: GPIO.output(pin_DC, GPIO.LOW) SPIsendByte(cmd) GPIO.output(pin_CS, GPIO.HIGH)
def bitmap(arr, dc): """ write a sequence of bytes, either as data or command""" #wiringPy.digital_write(pin_DC, dc) #wiringPy.digital_write(pin_DC, dc) if dc==ON: GPIO.output(pin_DC, GPIO.HIGH) else: GPIO.output(pin_DC, GPIO.LOW) #str=struct.pack('B'*len(arr), *arr) #print(str) #print(arr); #for item in arr: # writeonebyte(item) #wiringPy.digital_write_serial_array(0, ) GPIO.bitbang(pin_CLK,pin_DIN,pin_CE,struct.pack('B'*len(arr), *arr))
def SPIsendByte(byteTosend): i = 0 for i in range(1,9): if (byteTosend & 0x80): GPIO.output(pin_MOSI, GPIO.HIGH) else: GPIO.output(pin_MOSI, GPIO.LOW) #sleep(0.00001) GPIO.output(pin_CLK, GPIO.LOW) #sleep(0.00001) GPIO.output(pin_CLK, GPIO.HIGH) byteTosend = byteTosend << 1 return
def init(CLK = 11, DIN = 10, DC = 23, RST = 24, LIGHT = 18, CE = 8, contrast = default_contrast): """ init screen, clearscreen """ #wiringPy.debug(0) #if wiringPy.setup_gpio() != 0: # raise IOError("Failed to initialize wiringPy properly") #fd = wiringPy.setup_bitbang(CE, DIN, CLK, 0) #if fd == -1: # raise IOError("Failed to initialize bitbang properly") GPIO.init() #pins = [CLK, DIN, DC, RST, LIGHT, CE] pins = [pin_CLK, pin_DIN, pin_DC, pin_RST, pin_LIGHT, pin_CE] #pin_CLK, pin_DIN, pin_DC, pin_RST, pin_LIGHT, pin_CE = pins for pin in pins: GPIO.setcfg(pin, GPIO.OUTPUT) GPIO.output(pin,GPIO.HIGH) #map(lambda p: , pins) # Reset the device GPIO.output(pin_RST, GPIO.LOW) time.sleep(0.1) GPIO.output(pin_RST, GPIO.HIGH) set_contrast(contrast) #command([0x26]) cls()
def init(): # SET CS HIGH GPIO.output(pin_CS, GPIO.HIGH) #Reset LCD GPIO.output(pin_RST, GPIO.LOW) sleep(1) GPIO.output(pin_RST, GPIO.HIGH) sleep(1) send(0x21,SEND_CMD) send(0xC8,SEND_CMD) send(0x04,SEND_CMD) send(0x40,SEND_CMD) send(0x12,SEND_CMD) send(0xE4,SEND_CMD)# Set Display offset line 1 send(0x45,SEND_CMD)# Set Display offset line 2: shiftet 5 pixels up and then use lines 1 to 6 send(0x20,SEND_CMD) send(0x08,SEND_CMD) send(0x0C,SEND_CMD) setContrast(DEFAULT_CONTRAST) clear() update()
def writeonebyte(data): GPIO.output(pin_CE, GPIO.LOW) #data=bit_reverse(data) for i in range(0,8): if testBit(data,i)!=0: GPIO.output(pin_DIN, GPIO.HIGH) #print("1") else: GPIO.output(pin_DIN, GPIO.LOW) #print("0") GPIO.output(pin_CLK, GPIO.LOW) #time.sleep(0.01) GPIO.output(pin_CLK, GPIO.HIGH) GPIO.output(pin_CE, GPIO.HIGH)