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)
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