While statement conditional
De ArduWiki
Placa aplicable
Todas.
Código
const byte sensor = A0;
const byte pulsador = 2;
const byte led = 9;
//Valores sensor
int min = 1023;
int max = 0;
int actual = 0;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(led, OUTPUT);
pinMode(pulsador, INPUT_PULLUP);
}
void calibra() {
// turn on the indicator LED to indicate that calibration is happening:
digitalWrite(LED_BUILTIN, HIGH);
actual = analogRead(sensor); //Lee sensor:
//Guarda maximo
if (actual > max) {
max = actual;
}
//Guarda minimo
if (actual < min) {
min = actual;
}
}
void loop() {
//Mientras esta pulsado calibramos sensor
while (digitalRead(pulsador) == LOW) {
calibra();
}
digitalWrite(LED_BUILTIN, LOW); //Fin de calibracion
sensorValue = analogRead(sensorPin); //Lee sensor
//Aplica calibracion de sensor
sensorValue = map(actual, min, max, 0, 255);
// in case the sensor value is outside the range seen during calibration
sensorValue = constrain(sensorValue, 0, 255);
analogWrite(led, sensorValue); //PWM al LED externo
}