Medir tensións con Arduino
Xa é sabido que Arduino dispón dunha serie de entradas analóxicas que serven para medir voltaxes externos, pero están limitadas a un máximo de 5 V (3,3V nas placas ESP32). Si se lle aplica unha tensión maior, danase a placa.
Como o ADC de Arduino é de 10 bits, o resultado de analogRead será un número entre 0 e 1023 (210=1024).
Mediante este código de exemplo, leese o valor na entrada A0 (0 a 1023) e convertese a voltaxe (0 a 5 V):
float lectura;
float volt;
void setup() {
Serial.begin(9600);
pinMode(A0,INPUT);
}
void loop() {
lectura = analogRead(A0);
volt = lectura /1023 * 5.0;
Serial.println(volt);
}
Pero, que ocurre cando se quere medir unha tensión maior que 5V?
Hai que usar un divisor de tensión.
Poñamos por exemplo que se quere medir a tensión da instalación eléctrica dun coche. Tendo en conta que a tensión máxima de saída do alternador é duns 14 voltios, e dando un marxe de seguridade, podese establecer a tensión máxima a medir como 18 V.

Aplicando a fórmula do divisor, resulta: R2 = 5/13 R1
Un par de valores válidos sería:: R1 = 12k e R2 = 4k7
Outra vez a partir da fórmula do divisor calcúlase o valor de tensión da instalación a partir da tensión medida no pin analóxico do arduino:
float lectura;
float volt;
void setup() {
Serial.begin(9600);
pinMode(A0,INPUT);
}
void loop() {
lectura = analogRead(A0);
volt = (lectura /1023 * 5.0) * (16700.0/4700.0);
Serial.println(volt);
}
Tarefa:
Deseñar e programar un voltímetro 0V - 30 V con arduino .
Probalo cas fontes grandes do taller, pero antes quero revisar eu o circuíto para evitar fumes.
Comprobar como de fiable é a medida.