Hola a todos, tengo un proyecto el cual con el pic16f84a se tiene que controlar las grados de un servomotor a Rb0 por ejemplo: si presiono pulsador en Ra0 el servo se va a 0º y si vuelvo a presionar el mismo pulsador se vaya a 30º y así hasta 180º y con otro pulsador en Ra1 vaya de 180º a 150º y asi hasta 0º.
Tengo esta programación (c) pero lo que hace es ir de 135º y -135º sin parar, agradecería mucho su ayuda en la programación la lograr lo postulado anteriormente, un saludo.
Simulación:
Ver el archivo adjunto Servomotor.zip
Tengo esta programación (c) pero lo que hace es ir de 135º y -135º sin parar, agradecería mucho su ayuda en la programación la lograr lo postulado anteriormente, un saludo.
Código:
#include <16F84a.h>
#use delay(clock=4000000)
#fuses NOWDT,NOPROTECT,
int retardo;
void main()
{ retardo=5;
WHILE(input(PIN_a0))
{
output_high(PIN_B0);
output_high(PIN_B1);
}
do{
if(!input(pin_a1)&&(input(pin_a1)))
{
OUTPUT_HIGH(PIN_B0);
OUTPUT_LOW(PIN_B1);
delay_ms(500); }
if(input(pin_a0)&&(!input(pin_a1)))
{
OUTPUT_LOW(PIN_B0);
OUTPUT_HIGH(PIN_B1);
delay_ms(retardo); }}while(true);
}
Simulación:
Ver el archivo adjunto Servomotor.zip
Última edición por un moderador: