Page 74 - Programacion
P. 74
Y si quieres que tu programa quede
todavía más elegante, declara el pin
como una variable. Podrías declarar una
variable de tipo entero llamada pot y
asignarle un valor de cero, para indicar
que el potenciómetro está conectado al
pin cero de la entrada analógica.
#include <Servo.h>
Servo servo1;
int angulo;
int valpot;
int pot=0;
void setup()
Con esto comprendido, es hora de jugar
con los valores, aunque en este caso
solo serán los correspondientes a la
función map. Empieza con los valores
de cero a 180; cambia su ubicación,
escribiendo primero 180 y cero al final.
Veamos qué ocurre.
void loop()
{
{
valpot=analogRead(0);
angulo=map
(valpot,0,1023,180,0);
servo1.write(angulo);
delay(20);
servo1.attach(2);
}
void loop()
{
valpot=analogRead(pot);
angulo=map
(valpot,0,1023,0,180);
servo1.write(angulo);
delay(20);
}
Notarás que, con esto, cambiaste hacia
dónde gira el motor. Ahora cambia los
valores de cero a 1023 y observa qué
sucede.
void loop()
{
valpot=analogRead(0);
angulo=map
(valpot,1023,0,180,0);
servo1.write(angulo);
delay(20);
}
Si prestas atención, notarás que no
hemos modificado nada en el programa
que haga la acción que queremos: solo
hemos cambiado la forma en la que se
declaran las variables y en la que se
adquieren los datos. Este programa
nos permite ver mejor el uso de las
variables, que nos sirven para diferenciar
lo que está conectado; por eso usamos
palabras relacionadas con la acción que
hará o con el elemento a controlar (si
solo usáramos números, nos costaría
más trabajo ubicar dentro del programa
al que queremos modificar).
}
Como puedes ver, es otra opción
para cambiar el giro del servomotor.
También puede ayudarnos a limitar su
movimiento, ya que no es necesario que
escribamos “0-180”, sino que el rango
podría ser, por ejemplo, de 45 a 100
grados.
72