Diferencia entre revisiones de «While statement conditional»
De ArduWiki
(→Vea también) |
(→Código) |
||
Línea 5: | Línea 5: | ||
== Código == | == Código == | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
+ | 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 | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revisión del 23:39 26 jun 2018
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
}