Conversor AD y puerto USB

Como ya sabemos desde el pin A0 al A5 podemos meter una señal analógica y que nuestro Arduino la interprete. Con ciertas limitaciones.

El máximo son 5 voltios y su resolución es de 10 bits. Es decir, cuando tengamos 5 voltios a la entrada tendremos como resultado 1024, y si tenemos 0 voltios tendremos como resultado 0. Ésto nos da un paso de 0,005 voltios.

A su vez sabemos que la placa es capaz de enviar y recibir datos por USB. En éste programa usaremos ésa capacidad para ver el resultado.

A la  entrada analógica pondremos un potenciómetro conectado a +5 y GND, conformando un divisor de tensión para que la salida intermedia de un rango de 5 a 0 voltios. Éste será el funcionamiento generalizado de cualquier sensor, pero lo podemos manipular.

Vamos con el programa:

void setup(){
 pinMode(2,INPUT); //el pin 2 es input
 pinMode(13,OUTPUT); //el pin 13 output
 Serial.begin(9600); //mandar cosas por USB, a cierta velocidad (bits/s)
}
void loop(){
 double lecturas[4]; //declaramos un vector de 5 posiciones
 double mandar; //y una variable flotante
 if(digitalRead(2)==LOW){ //si apretamos el boton y dejamos que el pin 2 se conecte a tierra
 Serial.println("leyendo"); //mandas esto por USB
 for(int x=0;x<5;x++){ //y lees 5 veces
 lecturas[x]=analogRead(0); //el puerto analógico AN0 y lo vas guardando en el vector
 delay(100); //con un pequeño delay para que le dé tiempo
 }
 mandar=5*(lecturas[0]+lecturas[1]+lecturas[2]+lecturas[3]+lecturas[4])/(5*1024.0); //hacemos un promedio de las lecturas
 Serial.print(mandar); //y mandamos el resultado por USB
 }
}

Las instrucciones nuevas son:

Serial.begin(bauds) -> Inicializa el puerto serie (USB) para el envío de datos a una cierta cantidad de bits por segundo (bauds).

Serial.println(var) o Serial.println("text") -> Envía por el puerto USB una variable o un texto. También se puede utilizar Serial.print(var) para que no haga un salto de línea.

analogRead(pin) -> lee el pin analógico seleccionado, en éste caso 0, A0, y devuelve un número entre 0 y 1023.

He procesado el resultado de la lectura analógica para que muestre, en vez de un número entre 0 y 1024, un determinado valor de la tensión que está entrando por el pin analógico.

El resultado lo podéis ver en vuestro monitor serie, que se encuentra en la pestaña Herramientas -> Monitor Serial del software de arduino.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *