17. Uso de la función Map
Función map() en Arduino
📌 Introducción
La función map() es una herramienta muy útil en Arduino que nos permite cambiar el rango de valores de una variable. En este tutorial aprenderás cómo utilizarla con un ejemplo práctico de control de parpadeo de un LED mediante un potenciómetro.
🎯 ¿Qué es la función map()?
La función map() convierte un valor de un rango original a un nuevo rango especificado. Nos ahorra tener que hacer manualmente una regla de tres para esta conversión.
Sintaxis:
valor_mapeado = map(valor, fromLow, fromHigh, toLow, toHigh);Parámetros:
valor: La variable que queremos convertirfromLow: Límite inferior del rango originalfromHigh: Límite superior del rango originaltoLow: Límite inferior del nuevo rangotoHigh: Límite superior del nuevo rango
💡 Ejemplo Práctico: Control de parpadeo de LED con potenciómetro
Componentes necesarios:
Arduino UNO (o similar)
1 LED
1 potenciómetro
1 resistencia de 220Ω para el LED
Cables de conexión
Esquema de conexión:
Conecta el potenciómetro:
Un extremo a 5V
El otro extremo a GND
Terminal central al pin analógico A0
Conecta el LED:
Ánodo (patilla larga) al pin 8 a través de una resistencia
Cátodo (patilla corta) a GND
Código:
// Definición de pines
const int pinLED = 8;
const int pinPot = A0;
// Variables
int valorPot;
int tiempoDelay;
void setup() {
pinMode(pinLED, OUTPUT); // Configurar pin 8 como salida
// No es necesario configurar el pin del potenciómetro como entrada
// porque los pines analógicos son entradas por defecto
}
void loop() {
// Leer el valor del potenciómetro (0-1023)
valorPot = analogRead(pinPot);
// Convertir el rango 0-1023 a 50-250 milisegundos
tiempoDelay = map(valorPot, 0, 1023, 50, 250);
// Controlar el parpadeo del LED
digitalWrite(pinLED, HIGH);
delay(tiempoDelay);
digitalWrite(pinLED, LOW);
delay(tiempoDelay);
}Explicación del código:
Leemos el valor del potenciómetro que varía entre 0 y 1023
Usamos
map()para convertir este valor al rango de 50-250 milisegundosUtilizamos este valor para controlar el tiempo de parpadeo del LED
🔍 ¿Cómo funciona la conversión?
Cuando el potenciómetro está en 0:
map()devuelve 50msCuando el potenciómetro está en 1023:
map()devuelve 250msLos valores intermedios se convierten proporcionalmente
✅ Prueba y verificación
Después de cargar el código:
Gira el potenciómetro completamente hacia un lado: el LED parpadeará lentamente (250ms)
Gira el potenciómetro completamente hacia el otro lado: el LED parpadeará rápidamente (50ms)
Los valores intermedios producirán velocidades de parpadeo intermedias
🧠 Aplicaciones adicionales
La función map() es útil para:
Controlar servomotores con potenciómetros
Ajustar la intensidad de LEDs con sensores de luz
Convertir lecturas de sensores a valores comprensibles
Crear interfaces de control proporcional
📝 Conclusión
La función map() es una herramienta esencial en Arduino que simplifica la conversión de valores entre diferentes rangos. Con este conocimiento, puedes crear proyectos más interactivos y precisos.
¡Experimenta con diferentes rangos y aplicaciones para dominar completamente esta función
Comentarios
Publicar un comentario