Está en la página 1de 2

Vamos a empezar con el mein nuestra principal vamos a crear unas variables locales que sean

utilizadas dentro main la vamos a llamar límite mínimo y límite máximo Vamos a configurar el
pwm a los 500khz ya habíamos visto que el timer 2 entonces debe ser configurado de esta
manera Ya vimos los cálculos y vamos a decirle al pic que vamos a utilizar los dos pwms Entonces
configuramos el ccp1 como si fuera un p w m colocamos pwm guion bajo y lo mismo en ese ccp2
le vamos a decir que también va a ser configurado con pwm configuramos Entonces en puerto a
le ponemos 007 simplemente le estamos diciendo que estas tres pines del puerto será
configurados como entradas y simplemente inicializamos aquí los ángulos en el valor mínimo
seamos que el valor mínimo es 30 entonces ambos ángulos están inicializado entre 3o vamos
entonces con el ciclo infinito con este way esto se repite infinitamente mientras nuestro
microcontrolador se encuentra energizado lo primero que vamos a hacer es preguntar si se desea
controlar el servo uno o el servo2 entonces vamos a preguntar sí bit test change si estamos
preguntando aquí estamos preguntando si ha sido pulsado el botón del cambio del seleccionador
del motor vamos a suponer que fue pulsado el botón esperamos 200 milisegundos para evitar el
rebote de este sistema mecánico.

una vez paso el revote entonces esto se conoce como la función anti rebote nos vamos a quedar
en un while entonces venimos a un while y preguntamos Exactamente lo mismo que preguntamos
Aquí está el botón presionado el botón de cambio está presionado y nos quedamos en este whyle
sin hacer nada esto con que objetivo con que él se va a quedar ahí quieto hasta que usted no
suelta Ese botón se va a quedar si usted no soltar el se va a quedar aquí haciendo nada hasta que
usted tenga la voluntad de soltar a que el botón una vez soltaste el botón Ahí sí vamos a
seleccionar el servo y el recordemos que esto es una forma de hacer un If Else Qué es lo mismo
que aquí con if elfs pero eso es la forma más bonita de hacerlo Qué se hace en una única línea
entonces sabemos que la variable ser que ya la habíamos creado como una variable global del tipo
int que está inicializado en 1 Entonces el servo va a preguntar servo = 1 en este momento eso es
verdad sí es verdad Entonces él va a ser lo que hay acá sí es verdad Entonces qué va a decir ac ervo
póngalo cómo dos ya va a convertir en serio en dos o sea para que se cambie al otro servo y pueda
controlar el otro servo si es mentira Si es falso pues hace lo que hay aquí si es falso es porque
servoeste momento es 2 y entonces lo va a poner en 1 entonces simplemente con esta extrusión
estamos cambiando en la variable sérvo estamos poniendo un uno al estamos poniendo en dos
simplemente para controlar alguno de los dos servos que tenemos en este ejemplo
Entonces por el botón del ángulo positivo nuevamente la instrucción de preguntar por un Bit sí Bit
test Plus recordamos que Plus es cómo se llama nuestro botón del puerto a,0 entonces Sí fue
digitado aquí el botón Pues aplicamos el código antirrebote que simplemente esperar retardo de
200 mili segundos para evitar el rebote Qué es provocado por eso sistemas mecánicos la vez pasó
pues el rebote vamos a preguntar bueno Cuál de los dos servomotores es el que quieres controlar
si en este momento servomotores es uno entonces vamos a incrementar el ángulo uno que es el
ángulo del servomotor uno por el contrario si fuera el sol motor 2 simplemente el ángulo 2 vemos
que estés ángulo uno y ángulo 2 incrementemos el ángulo dos cualquiera de los dos dependiendo
de Cuál es el cerdo que estamos controlando en este momento por último nos hace falta
preguntar por el botón del ángulo negativo que hace que el servomotor se vaya hacia el otro lado
es exactamente lo mismo que hacemos aquí, pregunta por el botón negativo espera el rebote y
simplemente si es el servo uno pues disminuyó resta el ángulo 1 y si es el servo 2 pues disminuyó
resta el ángulo dos a la vez pues ya hemos aumentado incrementado los ángulos o decrementado.

Pues nos hace falta validar esos ángulos que quiere decir convalidar estos ángulos validar los
ángulos quiere decir que realmente los ángulos siempre estén entre el valor mínimo y el valor
máximo que no se vayan a sobrepasar esos valores porque como vemos aquí estamos
constantemente por ejemplo incrementando un ángulo y si lo dejamos sin validar Pues él va a
seguir incrementando constantemente nosotros Entonces tenemos que pararlo o simplemente
para que llegue hasta el límite máximo que lo habíamos definido aquí como 65 o simplemente
vamos a hacer en estas 4 instrucciones los dos primeros es para validar el servo el servomotor y las
otras dos para el servo motor di ustedes están viendo aquí estamos haciendo un If Else como ya lo
vimos en una sola línea Entonces por ejemplo el ángulo 1 le va a pregunta el ángulo uno está
menor que el límite mínimo si está menor entonces hágalo que acá si está menor que el límite
mínimo y así con el ángulo 1 y 2

También podría gustarte