En este ejemplo te mostramos una técnica para calibrar la entrada de diferentes sensores con las placas Arduino/Genuino. En este ejemplo la placa toma lecturas de los sensores cada cinco segundos durante la puesta en marcha y lo que nos permite establecer los valores máximo y mínimo de nuestro sensor. Las lecturas de los sensores durante los primeros cinco segundos de la ejecución del sketch definen los valores mínimo y máximo esperados para las lecturas tomadas durante el programa.
Componentes y materiales
- Placa Arduino/Genuino
- 1 Sensor analógico
- 1 Resistencia de 10k ohm
- 1 Resistencia de 220 ohm
- 1 LEDs
- Cables de conexión
- 1 Protoboard
Esquema y montaje
Conectamos el sensor analógico (por ejemplo, potenciómetro, sensor de luz) a la entrada analógica 2. El LED lo conectamos en el pin digital 9.
Conectamos el LED al pin digital 9 con una resistencia limitadora de corriente de 220 ohmios en serie. Conectamos una fotorresistencia a 5V y luego al pin analógico 0 con una resistencia de 10K ohmios a tierra.
Código del proyecto para Arduino
Antes de la instalación, configuramos los valores iniciales para el mínimo y el máximo de la siguiente manera:
int sensorMin = 1023; // valor mínimo del sensor
int sensorMax = 0; // valor máximo del sensor
Durante el proceso de calibración se establece el valor mínimo que deseamos, guardándolo como el nuevo mínimo. Del mismo modo, se establece el valor, de la siguiente manera:
// // Calibrar durante los primeros cinco segundos
while (millis() < 5000) {
sensorValue = analogRead(sensorPin);
// Registrar el valor máximo del sensor
if (sensorValue > sensorMax) {
sensorMax = sensorValue;
}
// Registrar el valor mínimo del sensor
if (sensorValue < sensorMin) {
sensorMin = sensorValue;
}
}
Así, cualquier lectura que se toma, se puede asignar a la gama entre este mínimo y el máximo de esta manera:
// Aplicar la calibración para la lectura del sensor
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);
Código completo del proyecto para Arduino
const int sensorPin = A0; // configuramos el pin para el sensor
const int ledPin = 9; // configuramos el pin para el LED
// variables:
int sensorValue = 0; // Valor del sensor
int sensorMin = 1023; // valor mínimo del sensor
int sensorMax = 0; // valor máximo del sensor
void setup() {
// El LED se enciende para indicar el periodo de calibración
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
// // Calibrar durante los primeros cinco segundos
while (millis() < 5000) {
sensorValue = analogRead(sensorPin);
// Registrar el valor máximo del sensor
if (sensorValue > sensorMax) {
sensorMax = sensorValue;
}
// Registrar el valor mínimo del sensor
if (sensorValue < sensorMin) {
sensorMin = sensorValue;
}
}
// Señal para el fin de la calibración
digitalWrite(13, LOW);
}
void loop() {
// Leemos el sensor
sensorValue = analogRead(sensorPin);
// Aplicar la calibración para la lectura del sensor
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);
// en caso de que el valor del sensor está fuera del rango
// visto durante la calibración
sensorValue = constrain(sensorValue, 0, 255);
// se desvanecen el LED utilizando el valor de calibrado:
analogWrite(ledPin, sensorValue);
-
Cámara de doble lente para coche¡Oferta!
$70.00$65.00 -
Impresora 3D CREALITY ENDER-3¡Oferta!
$370.00$350.00 -
Rueda + Motor¡Oferta!
$4.00$3.75