58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
|
#!/usr/bin/env python3
|
||
|
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
|
||
|
# SPDX-License-Identifier: MIT
|
||
|
|
||
|
import digitalio
|
||
|
import board
|
||
|
|
||
|
from adafruit_rgb_display.rgb import color565
|
||
|
from adafruit_rgb_display import st7789
|
||
|
|
||
|
# Configuration for CS and DC pins for Raspberry Pi
|
||
|
cs_pin = digitalio.DigitalInOut(board.CE0)
|
||
|
dc_pin = digitalio.DigitalInOut(board.D25)
|
||
|
reset_pin = None
|
||
|
BAUDRATE = 64000000 # The pi can be very fast!
|
||
|
# Create the ST7789 display:
|
||
|
display = st7789.ST7789(
|
||
|
board.SPI(),
|
||
|
cs=cs_pin,
|
||
|
dc=dc_pin,
|
||
|
rst=reset_pin,
|
||
|
baudrate=BAUDRATE,
|
||
|
width=135,
|
||
|
height=240,
|
||
|
x_offset=53,
|
||
|
y_offset=40,
|
||
|
)
|
||
|
|
||
|
backlight = digitalio.DigitalInOut(board.D22)
|
||
|
backlight.switch_to_output()
|
||
|
backlight.value = True
|
||
|
buttonA = digitalio.DigitalInOut(board.D23)
|
||
|
buttonB = digitalio.DigitalInOut(board.D24)
|
||
|
buttonA.switch_to_input()
|
||
|
buttonB.switch_to_input()
|
||
|
|
||
|
buttonAToggle = False
|
||
|
buttonBToggle = False
|
||
|
|
||
|
# Main loop:
|
||
|
while True:
|
||
|
if buttonA.value and buttonB.value:
|
||
|
backlight.value = False # turn off backlight
|
||
|
else:
|
||
|
backlight.value = True # turn on backlight
|
||
|
if buttonB.value and not buttonA.value: # just button A pressed
|
||
|
display.fill(color565(255, 0, 0)) # red
|
||
|
if buttonA.value and not buttonB.value: # just button B pressed
|
||
|
display.fill(color565(0, 0, 255)) # blue
|
||
|
if not buttonA.value and not buttonB.value: # none pressed
|
||
|
display.fill(color565(0, 255, 0)) # green
|
||
|
|
||
|
if buttonA.value != buttonAToggle:
|
||
|
print("buttonA toggle state")
|
||
|
buttonAToggle = buttonA.value
|
||
|
if buttonB.value != buttonBToggle:
|
||
|
print("buttonB toggle state")
|
||
|
buttonBToggle = buttonB.value
|