Capítulo 5. Entradas analógicas

Imágenes

Códigos

Comunicación con el puerto de serie. Lectura de la tensión en un potenciómetro

void setup() {
//Inicializamos el puerto serie
Serial.begin(9600);
}
void loop() {
//Declaramos una variable en la que guardar el valor de la lectura
int valorLeido=analogRead(A0);
//Enviamos al puerto serie una línea con el valor de la variable
Serial.println(valorLeido);
//Esperamos medio segundo para dar legibilidad a nuestra pantalla
delay(500);
}

Activación de un led mediante un potenciómetro

void setup() {
//Declaramos el pin 13 como salida
pinMode(13,OUTPUT);
}
void loop() {
//Declaramos una variable en la que guardar el valor de la lectura
int valorLeido=analogRead(A0);
if (valorLeido<512){
//Por debajo del valor intermedio, apagamos el LED
digitalWrite(13,LOW);
}else{
//De lo contrario, encendemos
digitalWrite(13,HIGH);
}
//Fin de la comprobación. Se reinicia el bucle
}

Control de varios diodos girando un potenciómetro

//Declaración de variables
int rojo=11;
int amarillo=12;
int verde=13;
//En ocasiones podemos declarar variables sin asignarles un valor de entrada
int valorLeido;
void setup() {
//Declaramos los pines digitales como salidas
pinMode(rojo,OUTPUT);
pinMode(amarillo,OUTPUT);
pinMode(verde,OUTPUT);
}
void loop() {
valorLeido=analogRead(A0);
//comprobamos si la manecilla está en el tercio inferior de su recorrido
if (valorLeido<341){
digitalWrite(verde,HIGH);
digitalWrite(amarillo,LOW);
digitalWrite(verde,LOW);
}
//Si no es así, comprobamos si estamos en el tercio intermedio
else if (valorLeido<682){
digitalWrite(verde,LOW);
digitalWrite(amarillo,HIGH);
digitalWrite(verde,LOW);
}//Si esta condición tampoco se cumple, es que estamos en el último tercio
else{
digitalWrite(verde,LOW);
digitalWrite(amarillo,LOW);
digitalWrite(verde,HIGH);
}
}