Adafruit_CircuitPython_EPD/examples/epd_shieldtest.py
2025-05-14 14:20:31 +00:00

74 lines
1.9 KiB
Python

# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
# EInk Shield test
import time
import board
import busio
import digitalio
from analogio import AnalogIn
from adafruit_epd.epd import Adafruit_EPD
from adafruit_epd.il91874 import Adafruit_IL91874
# create the spi device and pins we will need
spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)
ecs = digitalio.DigitalInOut(board.D10)
dc = digitalio.DigitalInOut(board.D9)
srcs = digitalio.DigitalInOut(board.D8) # can be None to use internal memory
# give them all to our driver
print("Creating display")
display = Adafruit_IL91874(
176,
264,
spi, # 2.7" Tri-color display
cs_pin=ecs,
dc_pin=dc,
sramcs_pin=srcs,
rst_pin=None,
busy_pin=None,
)
display.rotation = 1
def read_buttons():
with AnalogIn(board.A3) as ain:
reading = ain.value / 65535
if reading > 0.75:
return None
if reading > 0.4:
return 4
if reading > 0.25:
return 3
if reading > 0.13:
return 2
return 1
while True:
button = read_buttons()
if not button:
continue
print("Button #%d pressed" % button)
if button == 1:
print("Clear buffer")
display.fill(Adafruit_EPD.WHITE)
display.display()
if button == 2:
print("Draw Rectangles")
display.fill_rect(5, 5, 10, 10, Adafruit_EPD.RED)
display.rect(0, 0, 20, 30, Adafruit_EPD.BLACK)
display.display()
if button == 3:
print("Draw lines")
display.line(0, 0, display.width - 1, display.height - 1, Adafruit_EPD.BLACK)
display.line(0, display.height - 1, display.width - 1, 0, Adafruit_EPD.RED)
display.display()
if button == 4:
print("Draw text")
display.text("hello world", 25, 10, Adafruit_EPD.BLACK)
display.display()
time.sleep(0.01)