Using the Mini EncoderC Hat ・ 使用 Mini EncoderC Hat
M5StackのMini EncoderC Hatをコントローラーに接続する最小構成。配線とBOMつき。
この構成をエディタで開く・編集する →| 部品 | 役割 | ポート | リンク・価格 |
|---|---|---|---|
| AtomS3 | Controller | grove_i2c, i2c, spi, gpio, usb_c | official page — $15.5 |
| Mini EncoderC Hat | hat | i2c, other:RGB LED | official page |
M5Stack AtomS3とMini EncoderC HatをI2Cで接続する、最小構成のビルドガイドです。エンコーダーの回転やボタン押下をAtomS3で読み取り、内蔵RGB LEDを制御できます。
# M5Stack AtomS3 + Mini EncoderC Hat (I2C)
# Wiring: EncoderC Hat -> AtomS3 Grove Port (Port.A, I2C)
import time
from machine import Pin, I2C
from m5stack import lcd
# I2C setup for AtomS3 Grove port (Port.A: SDA=32, SCL=33)
i2c = I2C(0, sda=Pin(32), scl=Pin(33), freq=400000)
# Mini EncoderC Hat I2C address (default 0x41)
ENCODER_ADDR = 0x41
# Register addresses (from M5Stack docs)
REG_ENC_COUNT = 0x00 # 2 bytes, signed
REG_ENC_SWITCH = 0x02 # 1 byte, 0=not pressed, 1=pressed
REG_LED_COLOR = 0x03 # 3 bytes, RGB (0xRRGGBB)
def read_encoder():
data = i2c.readfrom_mem(ENCODER_ADDR, REG_ENC_COUNT, 2)
count = (data[0] << 8) | data[1]
if count > 32767:
count -= 65536
return count
def read_switch():
data = i2c.readfrom_mem(ENCODER_ADDR, REG_ENC_SWITCH, 1)
return data[0]
def set_led_color(r, g, b):
i2c.writeto_mem(ENCODER_ADDR, REG_LED_COLOR, bytes([r, g, b]))
# Initial LED off
set_led_color(0, 0, 0)
prev_count = 0
prev_switch = 0
while True:
count = read_encoder()
switch = read_switch()
lcd.clear()
lcd.print('Count: %d' % count, 10, 20)
lcd.print('Switch: %d' % switch, 10, 50)
if switch == 1 and prev_switch == 0:
lcd.print('Pressed!', 10, 80)
set_led_color(255, 0, 0) # Red on press
elif switch == 0 and prev_switch == 1:
set_led_color(0, 0, 0) # Off on release
prev_count = count
prev_switch = switch
time.sleep(0.1)
この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。
この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。
エディタで開く →UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。