Bom dia!

Estou precisando muito de ajuda, estou tentando fazer uma aranha, estou recém conseguindo fazer girar o servo

o problema é que estou usando 3 servo motores 2 giram para um mesmo lado e outro inversamente

o problema, é que não consigo fazer eles voltar para a posição, pois tem que ficar incrementando e decrementando para "andar" , antes tinha conseguindo fazer 2 girar para um lado e outro para outro e parar agora nem isso

vou mandar meu programa, se eu alguem puder me ajudar... to usando o ccs, e o proteus

#include <16f877a.h>
#FUSES NOWDT
#FUSES XT
#use delay(clock=4M)
#define led pin_a2
#define led1 pin_a3
#define SERVO_FRENTE pin_b0
#define SERVO_MEIO pin_b1
#define SERVO_ATRAS pin_b2
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)


int16 x=2000;
int16 y=2000;
float flag=0;

void main(){

while(true) {

output_high(pin_b0); //liga os 2 servos
output_high(pin_b2);
delay_us(x);
output_low(pin_b0);
output_low(pin_b2);
delay_us(x-2000);

output_high(pin_b1); // liga o outro servo
delay_us(y);
output_low (pin_b1);
delay_us(2000-y);



if(input(pin_b6)) {

output_toggle(led);
for(flag=0;flag>=2610;flag+=1) {
if(x<=540){
x=x+100;
x++;
}
if(y>=2610) {
y=y-100;
y--;
}
delay_ms(10);
}

for(flag=2610;flag>=0;flag-=1){
if(x>=2610) {
x=x-100;
x--;
}
delay_ms(10);
if(y<=540){
y=y+100;
y++;
}
delay_ms(10);

}
printf("\f%ld %ld ",x,y);
if (x>=2610)x=2610;
if(x<=540) x=540;
if(y>=540)y=2610;
if(y<=2610) y=540;





}


}


}

Exibições: 144

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço