TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: salto333 en 11 de Agosto de 2014, 12:31:21
-
Hola a todos , buceando un programa en arduino encontre una funcion MAP que
vincula valores de variables ( valor A = x minimo , valor A xx maximo , valor salida S minimo , valor salida S maximo )
muy piola para un sensor de temperatura que tiene valor a cero grados 120 ( bits ) y a 20 grados 350 ( bits ) y eso comanda
el pwm de calefaccion ( 20 c pwm 0 / 0 c pwm 255 ) , alguno de Ud tiene idea de como implementar esta funcion en picbasic ?
o viene alguna libreria auxiliar ? Desde ya , gracias a todos Saludos Rafael
-
Hola, son matemáticas... basta con que implementes la ecuación de la recta. ;-)
y = mx + b
-
En la pagina de Arduino está la respuesta, en referencias al lenguaje, específicamente ahi explican como funciona la funcion Map y literalmente es asi:
long map(long x, long in_min, long in_max, long out_min, long out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
la funcion map en arduino lleva la siguiente forma:
y = map(x, 1, 50, 50, 1);
esta guardaria en la variable y, el mapeo de la variable x. Los primeros dos digitos son el valor minimo y maximo de x , mientras que los otros dos son el minimo y maximo a la salida. Se pueden intercambiar asi: y=(X, minX, maxX, minMapeaado,maxMapeado) ó y=(X, maxX,minX, maxMapeado,minMapeaado).
Exitos
-
En PicBasic no tengo ni idea pero en Basic del PSI la función es como sigue:
Function map(x as Long, in_min as Long, in_max as Long, out_min as Long, out_max as Long) as Long
map = (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min
End Function
la llamada a la funcion map queda de la siguiente forma:
y = map(x, 1, 50, 50, 1)