Skip to main content

map() – Adaptar señales – Ejemplo con Arduino Nº 13

Con la función map(), podemos adaptar un valor de un rango determinado a otro con un rango diferente, es decir, podemos “escalar” una señal a nuestra conveniencia. En el ejemplo siguiente, vas a adaptar una señal de entrada analógica, que va de 0 a 1023, a una señal también analógica, pero esta vez con un margen de valores que va de 0 a 255. osea que cuando la señal de entrada vale cero la señal de salida también valdrá cero, pero cuando la señal de entrada sea 1023 la señal de salida tomará un valor de 255, y así proporcionalmente para todos los valores intermedios.

Además de todo lo anterior, colocarás un LED en la salida analógica del pin número 9, y utilizarás el monitor serie para ver los valores, tanto el valor de entrada (0-1023), como el valor de salida(0-255).

HARDWARE NECESARIO:

Para realizar este circuito necesitarás:

  • Tarjeta Arduino o Genuino
  • Potenciómetro
  • Led rojo
  • Resistencia de 220 ohmios
  • Protoboard
  • Cables de conexión

CIRCUITO:

Para montar este ejemplo utilizarás cualquiera de los circuitos que ya has utilizado antes, para trabajar con entradas analógicas

CÓDIGO:

En este programa la placa Arduino está constantemente leyendo el valor de la entrada analógica, y mediante la función map(valor, MinimoValorEntrada, MaximoValorEntrada, MinimoValorSalida, MaximoValorSalida), escalaremos el valor de la variable y lo mostraremos en la salida 9.

El programa definitivo queda así:

const int PinEntradaAnalogico=A0;

const int PinSalidaAnalogico=9;

int ValorLeido=0;

int ValorSalida=0;

void setup()

{

Serial.begin(9600);

}

void loop()

{

ValorLeido=analogRead(PinEntradaAnalogico);

ValorSalida=map(ValorLeido,0,1023,0,255);

analogWrite(PinSalidaAnalogico,ValorSalida);

Serial.print(“sensor = “);

Serial.print(ValorLeido);

Serial.print(“\t output = “);

Serial.println(ValorSalida);

delay(2);

}

 

Deja un comentario

Tu dirección de correo electrónico no será publicada.