La mayor parte de las magnitudes con las que hemos trabajado hasta ahora han sido magnitudes digitales o binarias; es decir, que sólo pueden tener dos estados: 0-1, encendido-apagado, presionado-liberado, cierto-falso. El potenciómetro multivuelta que incluye el Shield suministra, al pin A0 de Arduino, un voltaje comprendido entre 0 y 5 voltios, que podemos modificar girando su cursor y pasar por todos los valores posibles. Se trata de una magnitud analógica que será digitalizada por Arduino y transformada en un número entero entre 0 y 1023.
Para leer ese valor analógico usaremos la instrucción analogRead(A0);
En el programa siguiente leemos el valor suministrado por el potenciómetro y lo mostramos en el Monitor Serie.
/* * potenciometro.ino * Este programa muestra en el Monitor Serie el valor leído en el pin A0 * (el que está conectado al potenciómetro). La instrucción utilizada es * analogRead(A0); * El resultado será un número entero entre 0 y 1023, que se corresponde * con un voltaje entre 0 y 5 voltios. */ void setup() { pinMode(A0, INPUT); //pin A0 como entrada Serial.begin(9600); } void loop() { Serial.println(analogRead(A0)); delay(500); }
Ahora haremos que se encienda el Led D1 (pin 13) cuando el valor del potenciómetro esté comprendido entre 400y 450, quedando apagado en caso contrario.
/*
* potenciometroLed.ino
* Este programa enciende el LED D1 (pin 13) si el valor leido del
* potenciómetro (pin A0) esté comprendido entre 400 y 450. En caso
* contrario el LED permanecerá apagado.
*/
int valorPot; //variable para guardar el valor obtenido
//en la lectura del potenciómetro
void setup() {
pinMode(A0, INPUT); //pin A0 como entrada
pinMode(13, OUTPUT); //pin 13 salida
digitalWrite(13, HIGH); //apagamos LED
Serial.begin(9600);
}
void loop() {
valorPot = analogRead(A0); //leemos el pin A0
if((valorPot > 400) && (valorPot < 450)) { //si >400 y <450
digitalWrite(13, LOW); //encendemos LED
}else{ //en caso contrario
digitalWrite(13, HIGH); //lo apagamos
}
Serial.println(valorPot); //motramos el valor leído
delay(100);
}
1.- Realizar un programa que encienda el LED 4 cuando la lectura del potenciómetro sea mayor de 500 y, además, el LED 3 si supera 550.
2.- Ahora tenemos que encender los LEDs 3 y 4 si la lectura está comprendida entre 500 y 550. Además, añadimos los LEDs 1 y 2 entre 600 y 650 y, finalmente, hacemos sonar el zumbador si se superan los 700.