DAC Hat
以下产品受支持:
MicroPython 应用示例:
1# SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8from hardware import * 9from hat import DACHat 10 11 12label0 = None 13i2c0 = None 14hat_dac_0 = None 15 16 17v = None 18 19 20def btnA_wasClicked_event(state): # noqa: N802 21 global label0, i2c0, hat_dac_0, v 22 if v >= 0.1: 23 v = v - 0.1 24 hat_dac_0.set_voltage(v) 25 26 27def btnB_wasClicked_event(state): # noqa: N802 28 global label0, i2c0, hat_dac_0, v 29 if v < 3.3: 30 v = v + 0.1 31 hat_dac_0.set_voltage(v) 32 33 34def btnPWR_wasClicked_event(state): # noqa: N802 35 global label0, i2c0, hat_dac_0, v 36 v = 0 37 hat_dac_0.set_voltage(v) 38 39 40def setup(): 41 global label0, i2c0, hat_dac_0, v 42 43 M5.begin() 44 label0 = Widgets.Label("label0", 39, 109, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 45 46 BtnA.setCallback(type=BtnA.CB_TYPE.WAS_CLICKED, cb=btnA_wasClicked_event) 47 BtnB.setCallback(type=BtnB.CB_TYPE.WAS_CLICKED, cb=btnB_wasClicked_event) 48 BtnPWR.setCallback(type=BtnPWR.CB_TYPE.WAS_CLICKED, cb=btnPWR_wasClicked_event) 49 50 i2c0 = I2C(0, scl=Pin(26), sda=Pin(0), freq=100000) 51 hat_dac_0 = DACHat(i2c0) 52 v = 0 53 54 55def loop(): 56 global label0, i2c0, hat_dac_0, v 57 M5.update() 58 label0.setText(str(hat_dac_0.get_voltage())) 59 60 61if __name__ == "__main__": 62 try: 63 setup() 64 while True: 65 loop() 66 except (Exception, KeyboardInterrupt) as e: 67 try: 68 from utility import print_error_msg 69 70 print_error_msg(e) 71 except ImportError: 72 print("please update to latest firmware")
UiFlow2 应用示例:
class DACHat
Constructors
- class DACHat(i2c: I2C, address: int = 0x60, vdd: float = 5.0, vout: float = 3.3)
创建一个 DAC Hat 对象。
- 参数:
i2c – I2C 对象
address – DAC Hat 的 I2C 地址
vdd – DAC Hat 的 VDD 电压
vout – DAC Hat 的 VOUT 电压
UIFLOW2:

DACHat 类继承自 DACUnit 类,更多详情请参阅 unit.DACUnit.Methods。

