// Exemplo de monitoramento de tensões com Arduino
// Leitura da linha B+ (19-20V via divisor resistivo) e da linha de 5V
// Defina os pinos analógicos
const int pinBplus = A0; // Entrada do divisor resistivo
const int pin5V = A1; // Entrada direta da linha de 5V
// Valores dos resistores do divisor (exemplo: R1 = 10k, R2 = 2.5k)
const float R1 = 10000.0; // resistor superior
const float R2 = 2500.0; // resistor inferior
void setup() {
Serial.begin(9600);
}
void loop() {
// Leitura bruta do ADC (0–1023)
int rawBplus = analogRead(pinBplus);
int raw5V = analogRead(pin5V);
// Converte para tensão medida no pino (0–5V)
float vBplusPin = (rawBplus * 5.0) / 1023.0;
float v5V = (raw5V * 5.0) / 1023.0;
// Calcula a tensão real da linha B+ usando a fórmula do divisor
float vBplusReal = vBplusPin * ((R1 + R2) / R2);
// Mostra no Serial Plot ou Serial Monitor
Serial.print("B+ (real): ");
Serial.print(vBplusReal);
Serial.print(" V\t");
Serial.print("Linha 5V: ");
Serial.print(v5V);
Serial.println(" V");
delay(500); // meio segundo entre leituras
}
Como funciona:
- O Arduino lê até 5V.
- O divisor resistivo reduz os 20V para algo seguro (≈4V).
- No código, multiplicamos pelo fator (R1+R2)/R2 para recuperar o valor real.
- A linha de 5V pode ser lida diretamente sem divisor.
Zenilto Soluções em Tecnologia