Countdown timer ・ 倒计时器
OLED表示とブザーアラーム付きのカウントダウンタイマー。
この構成をエディタで開く・編集する →| 部品 | 役割 | ポート | リンク・価格 |
|---|---|---|---|
| M5Stack Core2 | Controller | grove_i2c, grove_analog, grove_uart, mbus | official page — $46.9 |
| Unit OLED | OLED Display | grove_i2c | official page — $10.95 |
| Unit Buzzer | Buzzer | grove_analog | official page — $4.5 |
M5Stack Core2とOLEDユニット、ブザーユニットで作るカウントダウンタイマーです。OLED画面に残り時間を表示し、時間が来たらブザーが鳴ります。
# M5Stack Core2 + Unit OLED (I2C) + Unit Buzzer (PWM)
# Wiring: OLED -> Core2 red Port.A (I2C), Buzzer -> Core2 black Port.B (analog/GPIO)
import time
from machine import Pin, SoftI2C, PWM
from m5stack import lcd
import ssd1306 # OLED driver (SH1107 compatible)
# I2C for OLED (Port.A: scl=22, sda=21)
i2c = SoftI2C(scl=Pin(22), sda=Pin(21))
oled = ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3c)
# Buzzer on Port.B (GPIO 36)
buzzer = PWM(Pin(36), freq=4000, duty=512) # 4KHz, 50% duty
COUNTDOWN_SECONDS = 10 # change this to set countdown time
oled.fill(0)
oled.text('Countdown:', 0, 0)
oled.show()
for i in range(COUNTDOWN_SECONDS, -1, -1):
oled.fill_rect(0, 16, 128, 16, 0) # clear number area
oled.text(str(i), 0, 16)
oled.show()
time.sleep(1)
# Time's up: beep and display message
oled.fill(0)
oled.text("Time's up!", 0, 0)
oled.show()
buzzer.duty(512) # start buzzer
time.sleep(1)
buzzer.duty(0) # stop buzzer
# Cleanup
oled.poweroff()
buzzer.deinit()
この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。
この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。
エディタで開く →UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。