Schematic + Code Updates

- ESP32-S3 Komplett
- MC4728 Komplett + Test Skript
This commit is contained in:
Erik Tóth
2025-10-11 11:00:04 +02:00
parent 30a4c327ba
commit 7c4b2c1bac
39 changed files with 22195 additions and 16053 deletions

View File

@@ -0,0 +1,57 @@
#include <Wire.h>
#include <Adafruit_MCP4728.h>
#define BAUDRATE 115200
#define I2C_SDA 15
#define I2C_SCL 16
#define I2C_FREQ 400000
#define DAC_MAX 4095
#define DAC_MIN 0
#define VREF_mV 5000
Adafruit_MCP4728 mcp;
static uint16_t value_mV = VREF_mV;
uint16_t voltage(uint16_t mV)
{
return map(mV, 0, VREF_mV, DAC_MIN, DAC_MAX);
}
void setup()
{
Serial.begin(BAUDRATE);
delay(1000);
Serial.print("\n\r--- ESP32-S3 + MCP4728 DAC Test ---");
Wire.begin(I2C_SDA, I2C_SCL);
Wire.setClock(I2C_FREQ);
Serial.print("\n\rInitialisiere MCP4728...");
uint8_t attempts = 0;
while (!mcp.begin())
{
Serial.print(".");
delay(100);
}
Serial.print("\n\rErfolgreich verbunden!");
mcp.setChannelValue(MCP4728_CHANNEL_A, 0, MCP4728_VREF_INTERNAL, MCP4728_GAIN_2X);
Serial.print("\n\rDAC-Kanal A auf 0 gesetzt");
delay(1000);
}
void loop()
{
value_mV = 200;
bool success = mcp.setChannelValue(MCP4728_CHANNEL_A, voltage(value_mV));
if (success) Serial.printf("DAC A = %u -> mV: %u\r\n", voltage(value_mV), value_mV);
else Serial.println("Schreibfehler am MCP4728!");
delay(200);
//value_mV = value_mV > 0 ? value_mV/2 : VREF_mV;
}