Using the Hat ADC ・ 使用 Hat ADC
M5StackのHat ADCをコントローラーに接続する最小構成。配線とBOMつき。
この構成をエディタで開く・編集する →| 部品 | 役割 | ポート | リンク・価格 |
|---|---|---|---|
| AtomS3 | Controller | grove_i2c, i2c, spi, gpio, usb_c | official page — $15.5 |
| Hat ADC | hat | i2c | official page — $10.95 |
AtomS3とHat ADCをI2C接続で組み合わせ、0~12Vのアナログ電圧を高精度(16ビット)で測定できる簡易的な電圧計測システムです。Hat ADCはADS1100チップを搭載し、I2Cアドレス0x48で通信します。
# M5Stack AtomS3 + Hat ADC (ADS1100) voltage meter
# Wiring: Hat ADC -> AtomS3 Grove Port (I2C)
# I2C address: 0x48
import time
from machine import Pin, I2C
from m5stack import lcd
# Initialize I2C on AtomS3's Grove port (Port.A)
i2c = I2C(0, scl=Pin(1), sda=Pin(2), freq=400000) # AtomS3 SCL=G1, SDA=G2
# ADS1100 I2C address
ADS1100_ADDR = 0x48
def read_ads1100():
# Read 2 bytes from ADC
data = i2c.readfrom(ADS1100_ADDR, 2)
# Combine bytes: MSB first, 16-bit signed
raw = (data[0] << 8) | data[1]
# Convert to signed (16-bit)
if raw >= 0x8000:
raw -= 0x10000
# Convert to voltage: reference = 2.048V, gain = 1, 16-bit
# Voltage = raw * 2.048 / 32768
voltage = raw * 2.048 / 32768.0
# Scale to input range 0-12V (voltage divider on Hat ADC)
# Hat ADC divides input by ~5.86 (12V / 2.048V)
input_voltage = voltage * 5.86
return input_voltage
while True:
try:
v = read_ads1100()
lcd.clear()
lcd.print('Voltage: {:.3f} V'.format(v), 10, 20)
except Exception as e:
lcd.clear()
lcd.print('Error: ' + str(e), 10, 20)
time.sleep(1)
この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。
この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。
エディタで開く →UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。