Paso 9: Sensor de voltaje de batería
Fácilmente puede utilizar la función AnalogRead para medir una tensión. Por desgracia, sólo puede medir tensiones de hasta 5V. Así que hay hacer un divisor de tensión para reducir el voltaje a algo que se puede medir. Para hacer uno, necesitas dos resistencias. Uno de ellos debe ser dos veces el valor de la otra. Conecte un cable de la resistencia más grande a la línea de + 12V de la batería. Conecte el otro cable de la resistencia más grande a uno de los pines analógicos en modo de entrada. También Conecte uno de los cables de la resistencia más pequeña a este mismo pin analógico. Luego conecte el otro cable de la resistencia más pequeña que el terminal negativo de la batería o el pin GND de Arduino. Luego puede utilizar la función AnalogRead para medir una tensión como un entero entre 0 y 1023. Para convertir esto en voltios puede utilizar la fórmula: V = AnalogRead * 0.0049 * R/r demayor tamañomás pequeño. Aquí es un ejemplo de cómo podría utilizar esta configuración para controlar el voltaje de la batería y desconecte la fuente cuando la batería está baja. Las resistencias solicitadas son 10K y 4.7K.
int RelayPin = 13; controlador relé conectado al pin digital 13
int analogPin = 3; Centro de voltaje dividido conectado al pin analógico 3
int val = 0; variable para almacenar el valor leído
void setup()
{
pinMode (RelayPin, salida); pone el pin digital como salida
}
void loop()
{
Val = analogRead(analogPin); leer la entrada de pin
Si //if (val < 720) voltaje de la batería es inferior a 11
con las solicitadas resistencias de 10K y 4.7K, el divisor del voltaje se torna 11V 3.5167V
Esto es leído por la función analogRead como 720
{
digitalWrite (RelayPin, bajo); se apaga la fuente si la pila es inferior a 11V
}
Si //if (val > 785) voltaje de la batería es mayor que 12
con las solicitadas resistencias de 10K y 4.7K, el divisor de voltaje se convierte 12V en 3.8364V
Esto es leído por la función analogRead como 785
{
digitalWrite (RelayPin, alto); se enciende la fuente si la pila es mayor que 12V
}
Delay(60000); espera un minuto
}