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