def __init__(self, _disp_sck = board.SCK, _disp_mosi = board.MOSI, _disp_miso = board.MISO, _disp_cs = board.D5, _disp_dc = board.D6, adress = 94):
        # Only create the joywing module member when we're aren't being imported by Sphinx
        if ("__module__" in dir(digitalio.DigitalInOut) and
                digitalio.DigitalInOut.__module__ == "sphinx.ext.autodoc"):
            return
        
        #SPI
        self._disp_sck = _disp_sck
        self._disp_mosi = _disp_mosi
        self._disp_miso = _disp_miso
        # DS and CS pins
        self._disp_cs = _disp_cs
        self._disp_dc = _disp_dc
        
        #I2C
        self._i2c = busio.I2C(board.SCL, board.SDA)
        self._seesaw = ss.Seesaw(self._i2c, adress)
        self._backlight_pin = pwm.PWMOut(self._seesaw, 5)
        self._disp_rst = dio.DigitalIO(self._seesaw, 8)
        self._disp_spi = busio.SPI(clock=board.SCK, MOSI=board.MOSI, MISO=board.MISO)
        
        # pylint: disable=bad-whitespace
        self._BUTTON_RIGHT = const(7)
        self._BUTTON_DOWN = const(4)
        self._BUTTON_UP = const(2)
        self._BUTTON_LEFT = const(3)
        self._BUTTON_B = const(9)
        self._BUTTON_A = const(10)
        self._BUTTON_SEL = const(11)
        # pylint: enable=bad-whitespace
        self._button_mask = const((1 << self._BUTTON_RIGHT) |
                            (1 << self._BUTTON_DOWN) |
                            (1 << self._BUTTON_UP) |
                            (1 << self._BUTTON_LEFT) |
                            (1 << self._BUTTON_B) |
                            (1 << self._BUTTON_A) |
                            (1 << self._BUTTON_SEL))
        self._seesaw.pin_mode_bulk(self._button_mask, self._seesaw.INPUT_PULLUP)

        # initilise stuff
        # start backlight in off position
        self._backlite = (self._backlight_pin)
        self._backlite.duty_cycle = 0xffff

        # setup the display as a car named "disp"
        self._disp = ST7735R(self._disp_spi, cs=digitalio.DigitalInOut(self._disp_cs), dc=digitalio.DigitalInOut(self._disp_dc),
                       rst=(self._disp_rst), rotation=3)
        self._disp.y_offset = 24
        # clear screen
        self._clear()
# SPDX-FileCopyrightText: 2021 John Park
# SPDX-License-Identifier: MIT

# I2C rotary encoder multiple test example.
# solder the A0 jumper on the second QT Rotary Encoder board

import board
from adafruit_seesaw import seesaw, rotaryio, digitalio, neopixel

qt_enc1 = seesaw.Seesaw(board.I2C(), addr=0x36)
qt_enc2 = seesaw.Seesaw(board.I2C(), addr=0x37)

qt_enc1.pin_mode(24, qt_enc1.INPUT_PULLUP)
button1 = digitalio.DigitalIO(qt_enc1, 24)
button_held1 = False

qt_enc2.pin_mode(24, qt_enc2.INPUT_PULLUP)
button2 = digitalio.DigitalIO(qt_enc2, 24)
button_held2 = False

encoder1 = rotaryio.IncrementalEncoder(qt_enc1)
last_position1 = None

encoder2 = rotaryio.IncrementalEncoder(qt_enc2)
last_position2 = None

pixel1 = neopixel.NeoPixel(qt_enc1, 6, 1)
pixel1.brightness = 0.2
pixel1.fill(0xFF0000)

pixel2 = neopixel.NeoPixel(qt_enc2, 6, 1)
# SPDX-License-Identifier: MIT
"""I2C rotary encoder NeoPixel color picker and brightness setting example."""
import board
from rainbowio import colorwheel
from adafruit_seesaw import seesaw, neopixel, rotaryio, digitalio

# For use with the STEMMA connector on QT Py RP2040
# import busio
# i2c = busio.I2C(board.SCL1, board.SDA1)
# seesaw = seesaw.Seesaw(i2c, 0x36)

seesaw = seesaw.Seesaw(board.I2C(), 0x36)

encoder = rotaryio.IncrementalEncoder(seesaw)
seesaw.pin_mode(24, seesaw.INPUT_PULLUP)
switch = digitalio.DigitalIO(seesaw, 24)

pixel = neopixel.NeoPixel(seesaw, 6, 1)
pixel.brightness = 0.5

last_position = -1
color = 0  # start at red

while True:

    # negate the position to make clockwise rotation positive
    position = -encoder.position

    if position != last_position:
        print(position)
示例#4
0
from animatedgif import AnimatedGif
import numpy  # pylint: disable=unused-import
from adafruit_seesaw import seesaw, rotaryio, digitalio as ss_digitalio
from adafruit_rgb_display import st7789

seesaw = seesaw.Seesaw(board.I2C(), addr=0x36)

seesaw_product = (seesaw.get_version() >> 16) & 0xFFFF
print("Found product {}".format(seesaw_product))
if seesaw_product != 4991:
    print(
        "Wrong firmware loaded? Make sure you have a rotary encoder connected."
    )

seesaw.pin_mode(24, seesaw.INPUT_PULLUP)
button = ss_digitalio.DigitalIO(seesaw, 24)
encoder = rotaryio.IncrementalEncoder(seesaw)

# Change to match your display
BUTTON_UP = board.D23
BUTTON_DOWN = board.D24

# Configuration for CS and DC pins (these are PiTFT defaults):
cs_pin = digitalio.DigitalInOut(board.CE0)
dc_pin = digitalio.DigitalInOut(board.D25)


def init_button(pin):
    digital_button = digitalio.DigitalInOut(pin)
    digital_button.switch_to_input(pull=digitalio.Pull.UP)
    return digital_button