Histéresis en Arduino
Dos umbrales evitan que la bomba castañetee en la línea.
// Hysteresis: two thresholds keep the pump from chattering.
const int SOIL_PIN = A0;
const int PUMP_PIN = 7;
const int DRY = 700;
const int WET = 500;
bool watering = false;
void setup() {
pinMode(PUMP_PIN, OUTPUT);
}
void loop() {
int soil = analogRead(SOIL_PIN);
if (!watering && soil > DRY) watering = true;
if (watering && soil < WET) watering = false;
digitalWrite(PUMP_PIN, watering ? HIGH : LOW);
delay(200);
}
Cómo funciona
DRYarma la bomba; soloWET, más bajo, la suelta.- La bandera
wateringsostiene la decisión entre lecturas. - Una bandera, dos ifs: el patrón clásico del termostato.
Palabras clave y builtins usados aquí
HIGHLOWOUTPUTboolconstfalseifintloopsetuptruevoid
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 421
- Tokens
- 100
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 92 segundos.
Paso 3 de 3 en Analógico; paso 9 de 27 en Fundamentos del lenguaje.