/*
STM32F103C8T6 - Voltímetro básico (Multímetro casero)
Conexión:
- A0 -> punto medio del divisor de voltaje
- GND -> tierra del circuito
- Punta positiva -> fusible -> divisor (100k + 10k)
- Punta negativa -> GND
Visualización:
- Serial Monitor en PC
*/
const int pinADC = A0;
// Ajuste según tu divisor (100k + 10k)
float R1 = 100000.0; // 100k
float R2 = 10000.0; // 10k
void setup() {
Serial.begin(115200); // comunicación con PC
pinMode(pinADC, INPUT);
}
void loop() {
// 1. Leer ADC (0 - 4095 en STM32)
int lectura = analogRead(pinADC);
// 2. Convertir a voltaje del ADC (0 - 3.3V)
float volt_adc = (lectura * 3.3) / 4095.0;
// 3. Recalcular voltaje real de entrada
float volt_in = volt_adc * ((R1 + R2) / R2);
// 4. Enviar a PC
Serial.print("ADC: ");
Serial.print(lectura);
Serial.print(" | Voltaje: ");
Serial.print(volt_in);
Serial.println(" V");
delay(500);
}Loading
stm32-bluepill
stm32-bluepill