Using the Module Fan v1.1 ・ 使用 Module Fan v1.1
M5StackのModule Fan v1.1をコントローラーに接続する最小構成。配線とBOMつき。
この構成をエディタで開く・編集する →| 部品 | 役割 | ポート | リンク・価格 |
|---|---|---|---|
| M5Stack Core2 | Controller | grove_i2c, grove_analog, grove_uart, mbus | official page — $46.9 |
| Module Fan v1.1 | module | grove_i2c, mbus | official page — $11.5 |
M5Stack Core2とModule Fan v1.1をスタッキングして、ファンの速度をI2Cで制御できるようにする組み立てガイドです。ファンモジュールはCore2のM-Busに直接積み重ねるだけで配線不要。I2C経由でPWM制御でき、内蔵温度センサーで自動運転も可能です。
# M5Stack Core2 + Module Fan v1.1 (I2C control)
# Wiring: Module Fan stacked on Core2 via M-Bus (I2C)
import time
from machine import Pin, I2C
from m5stack import lcd
# I2C bus for M-Bus (Port.A is also I2C, but M-Bus uses internal I2C)
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)
FAN_ADDR = 0x18
# Register addresses (from Module Fan datasheet)
REG_FAN_SPEED = 0x00 # 0-100 (PWM duty cycle %)
REG_TEMP = 0x01 # temperature in Celsius (read only)
REG_STATUS = 0x02 # status byte
def set_fan_speed(speed):
"""Set fan speed 0-100"""
i2c.writeto_mem(FAN_ADDR, REG_FAN_SPEED, bytes([speed]))
def read_temperature():
"""Read temperature in Celsius"""
data = i2c.readfrom_mem(FAN_ADDR, REG_TEMP, 1)
return data[0]
# Test: spin fan at 50% for 5 seconds
lcd.clear()
lcd.print('Module Fan Test', 10, 20)
set_fan_speed(50)
lcd.print('Fan: 50%', 10, 60)
time.sleep(5)
set_fan_speed(0)
lcd.print('Fan: 0%', 10, 60)
time.sleep(1)
# Read temperature
temp = read_temperature()
lcd.print('Temp: %d C' % temp, 10, 100)
print('Test complete')
この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。
この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。
エディタで開く →UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。