Pro M5stack jednotky lze zakoupit různé rozšiřovací moduly, kdy pro generování analogových signálů můžeme použít například tento DAC modul. Tento modul obsahuje obvod MCP4725, který umožňuje generovat signály o velikosti 0-3,3 Voltů a s rozlišením 12 bitů.

Pro jeho spojení s M5stack deskou stačí propojit 4 vodiče. Připojíme GND s GND, VCC s pinem 5V a datové piny s I2C sběrnicí. U M5stack modulu pak stačí použít GROVE konektor a jednoduše propojit modul se senzorem.
Ukázkový program najdete níže, přičemž jeho popis můžete najít na videu, které je připojeno na konci návodu. Je v něm uvedena ukázka generování napětí 0-3,3 Voltů a jeho měření multimetrem:
// M5 stack a jednotka DAC
// Digitálně-analogový převodník MCP4725
// navody.dratek.cz
// připojení potřebných knihoven
#include <Wire.h>
// nainstalujte Adafruit knihovnu
// přes Manažer knihoven
#include <Adafruit_MCP4725.h>
#include <M5Stack.h>
// nastavení adresy zařízení
#define DAC_ADDR 0x60
// vytvoření objektu dac z knihovny
Adafruit_MCP4725 dac;
void setup() {
// zahájení komunikace s M5 stack jednotkou
M5.begin();
// zahájení komunikace s napájecím čipem M5stack
M5.Power.begin();
// nastavení velikosti a barvy textu
M5.Lcd.setTextFont(4);
M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK);
// výpis informace na displej
M5.Lcd.drawString("DAC MCP4725 Demo.", 25, 100, 4);
// zahájení komunikace s DAC čipem
dac.begin(DAC_ADDR);
// nastavení výstupního napětí na 0V,
// false nezapíše data do trvalé paměti,
// hodnoty můžou být 0-4095
dac.setVoltage(0, false);
}
void loop() {
// změna napětí na výstupu na různé hodnoty
dac.setVoltage(0, false);
delay(1000);
dac.setVoltage(1024, false);
delay(1000);
dac.setVoltage(2048, false);
delay(1000);
dac.setVoltage(3072, false);
delay(1000);
dac.setVoltage(4095, false);
delay(1000);
}
Sestřih ze streamu:
Celý záznam:
Na eshopu můžete tento M5stack modul zakoupit zde:
https://dratek.cz/arduino/20926-m5stack-esp32-grey-vyvojovy-kit-pro-iot.html
https://dratek.cz/arduino/20933-m5stack-dac-prevodnik-i2c.html