Boas...
Escrevi um pequeno código para recriar um movimento tipo radial para usar nos conhecidos sistemas pan/tilt, que usam dois servo-motores, um para o eixo dos xx e outro para o eixo dos yy.
#include <Servo.h>
#define VSPEED 8
#define HSPEED 10
#define UP 1
#define DOWN 0
Servo horservo; // create servo object to control a servo
Servo verservo; // a maximum of eight servo objects can be created
int verpos = 0; // variable to store the vertical servo position
int horpos = 0; // variable to store the horizontal servo position
void setup(){
horservo.attach(9); // attaches the horizontal servo on pin 9 to the servo object
verservo.attach(8); // attaches the vertical servo on pin 9 to the servo object
horservo.write(90);
verservo.write(0);
Serial.begin(9600);
}
void Print_Data(){
Serial.print("Vert Pos: ");
Serial.print(verpos);
Serial.print(",");
Serial.print("Hor Pos ");
Serial.print(horpos);
Serial.print('\n');
}
void motion_1(){
for(; horpos < 180; horpos += 2){
horservo.write(horpos);
if(verpos < 90){
verservo.write(++verpos);
delay(VSPEED);
}
else if (verpos > 0){
verservo.write(--verpos);
delay(VSPEED);
}
delay(HSPEED);
Print_Data();
}
for(; horpos > 0; horpos -= 2){
horservo.write(horpos);
if(verpos < 90){
verservo.write(--verpos);
delay(VSPEED);
}
else if (verpos > 0){
verservo.write(--verpos);
delay(VSPEED);
}
delay(HSPEED);
Print_Data();
}
}
void motion_2(){
for(pos = start_pos; pos != end_pos; )
}
void loop(){
motion_1();
}
O código está a funcionar, não sei se está perfeito ou não, mas para já serve! No entanto, alguém com que eu estava a conversar, disse-me que o meu código podia ser simplificado e deu-me algumas pistas:
Estas foram as pistas! Será que me conseguem ajudar???
↧