LDR con Arduino
En esta práctica probamos el funcionamiento de un LDR conectado a un Arduino.
Circuito:
Código fuente:
/* Prueba de un LDR y un LED */
// Definimos los pines que usaremos.
const int ldrPin = 0;
const int ledPin = 8;
int valor; // Variable usada en los cálculos.
const int min = 530; // Valor mínimo obtenido en la entrada A0.
const int max = 960; // Valor máximo obtenido en la entrada A0.
void setup(){
Serial.begin(9600); // Inicializamos el puerto serie.
pinMode(ledPin, OUTPUT); // Definimos ledPin como salida.
}
void loop(){
valor = analogRead(ldrPin); // Leemos el valor del pin A0.
Serial.print ("Valor de entrada: ");
Serial.println(valor);
// Definimos los pines que usaremos.
const int ldrPin = 0;
const int ledPin = 8;
int valor; // Variable usada en los cálculos.
const int min = 530; // Valor mínimo obtenido en la entrada A0.
const int max = 960; // Valor máximo obtenido en la entrada A0.
void setup(){
Serial.begin(9600); // Inicializamos el puerto serie.
pinMode(ledPin, OUTPUT); // Definimos ledPin como salida.
}
void loop(){
valor = analogRead(ldrPin); // Leemos el valor del pin A0.
Serial.print ("Valor de entrada: ");
Serial.println(valor);
/* Esta función normaliza valor a un rango (a,b). Si valor es menor que a, el resultado de la función será a, si valor es mayor que b, el resultado de la función es b. De esta forma trabajaremos siempre con el margen de valores establecidos por min y max. */
valor = constrain(valor, min, max);
Serial.print ("Valor normalizado: ");
Serial.println(valor);
valor = constrain(valor, min, max);
Serial.print ("Valor normalizado: ");
Serial.println(valor);
/* Esta función mapea un número desde un rango hacia otro. Esto significa que valor con respecto al rango min-max será mapeado al rango 0-255. */
valor = map(valor, min, max, 0, 255);
analogWrite(ledPin, valor); // Escribimos el valor en el LED.
Serial.print ("Valor de salida: ");
Serial.println(valor);
Serial.println("");
delay(500);
}
valor = map(valor, min, max, 0, 255);
analogWrite(ledPin, valor); // Escribimos el valor en el LED.
Serial.print ("Valor de salida: ");
Serial.println(valor);
Serial.println("");
delay(500);
}
Comentarios
Publicar un comentario