¡Bienvenido a una nueva entrada del curso de programación con Arduino!
En esta entrada vamos a utilizar nuestra placa Arduino y un par de cables para crear un voltímetro. Es fácil, muy rápido de hacer, y aunque tenga ciertas limitaciones con respecto a los voltímetros convencionales, es útil.
Lista de materiales
- ZUM BT-328, placa Arduino o compatible.
- Dos trozos de cable de unos 15 centímetros o cables jumper
Conexiones Eléctricas
En este caso conectaremos el cable de color negro al pin GND de Arduino y el otro cable a una entrada analógica, en nuestro caso A0. En la imagen podéis ver las conexiones:
Limitaciones
Podemos leer solo valores positivos de tensión entre 0 y 5 Voltios.
El código
Como siempre, comenzamos declarando las variables globales del programa:
1 2 |
int pinSonda = A0; float escala = 100; //100 para voltios, 0.1 para milivoltios |
En este caso, solo hay un cable conectado a la entrada analógica A0, que utilizaremos a modo de sonda, es decir, será con este cable con el que mediremos la tensión. Además, creamos la variable escala, que podremos modificar para obtener la lectura en voltios, si igualamos la variable a 100 o en milivoltios, si la igualamos a 0.1, más adelante veremos por qué hay que aplicar estos valores.
Después, en la función setup, inicializamos el programa:
1 2 3 4 5 6 7 |
void setup(){ Serial.begin(19200); pinMode(pinSonda, INPUT); } |
En este caso, iniciamos la comunicación serie a 19200 bauds/segundo ya que es la velocidad de comunicación del módulo bluetooth incluido en las placas ZUM BT-328, ya que utilizamos este mismo ejemplo para crear un voltímetro con Protocoder. También marcamos como entrada, INPUT, el pin donde hemos conectado el cable que actuará como sonda.
A continuación, en la función loop:
1 2 3 4 5 6 7 8 9 10 11 |
void loop(){ float lectura = analogRead(pinSonda); lectura = map(lectura, 0, 1023, 0, 500); float voltaje = lectura/escala; Serial.println(voltaje); delay(500); } |
En primer lugar creamos la variable lectura, y almacenamos el valor leído del pinSonda por la función analogRead y utilizamos la función map para transformar el valor de la lectura analógica, de 0 a 1023, hasta 0 a 500.
Después creamos la variable de tipo float voltaje donde aplicaremos el factor de escala. Si dividimos entre 100 obtendremos el valor de 0 a 5 voltios, pero si dividimos entre 0.1 aumentaremos la escala y obtendremos el valor en milivoltios. Dependiendo de el tipo de medida que queramos realizar puede interesarnos utilizar una escala u otra.
Por último, aplicamos un pequeño delay de 0.5 segundos, para facilitar la lectura de los datos en pantalla.
Como ejercicio puedes modificar el programa para mostrar el voltaje medio medido durante un periodo de tiempo determinado.
¡Hasta la próxima!