map y constrain en Arduino
Reescala un rango sobre otro y recorta los bordes.
// map rescales one range onto another; constrain clips the edges.
const int KNOB_PIN = A1;
const int VENT_PIN = 6;
void setup() {
pinMode(VENT_PIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
int knob = analogRead(KNOB_PIN);
// 0-1023 counts onto 0-255 PWM, then clipped to a safe band.
int duty = map(knob, 0, 1023, 0, 255);
duty = constrain(duty, 20, 235);
analogWrite(VENT_PIN, duty);
Serial.println(duty);
delay(100);
}
Cómo funciona
map(knob, 0, 1023, 0, 255)lleva cuentas a ciclo PWM.constrain(duty, 20, 235)mantiene el extractor en su banda.- De perilla a ventilador en dos llamadas, sin aritmética a mano.
Palabras clave y builtins usados aquí
OUTPUTconstintloopsetupvoid
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 427
- Tokens
- 94
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 87 segundos.
Paso 2 de 3 en Analógico; paso 8 de 27 en Fundamentos del lenguaje.