Saudações. Estou finalizando meu primeiro projeto (robô aranha)e fiquei com duvida na programação do servo, achei um post legal que ensina para programar 1 e fazer ele repetir a ação, porem no meu são 8 servos e gostaria que eles movimenta-se aleatoriamente.

ps: O código copilou, porem os servos giram para um único lado e fica forçando para girar.

Código original

#include
 
Servo motor;
void setup()
{
motor.attach(3);
}
void loop()
{
int i;
for(i=0;i<180;i++) {
motor.write(i);
delay(10);
}
delay(1000);
for(i=180;i>0;i--) {
motor.write(i);
delay(10);
}
delay(1000);
}

O código que fiz:

#include <Servo.h>

Servo motor1;
Servo motor2;
Servo motor3;
Servo motor4;
Servo motor5;
Servo motor6;
Servo motor7;
Servo motor8;

void setup()
{
  motor1.attach(1);
  motor2.attach(2);
  motor3.attach(3);
  motor4.attach(4);
  motor5.attach(5);
  motor6.attach(6);
  motor7.attach(7);
  motor8.attach(8);
}
void loop()
{
  int i;
for (i=0;i<180;i++) {
  motor1.write(i);
  delay(10);
}
delay (1000);
for (i=45;i>0;i--) {
  motor1.write(i);
  delay(10);
 
}
  {
  delay(1000);
}
int i2;
for (i2=0;i2<180;i++) {
  motor2.write(i2);
  delay(10);
}
delay (1000);
for (i2=180;i2>0;i--) {
  motor2.write(i2);
  delay(10);
}
{
  delay(1000);
}
  int i3;
for (i3=0;i3<180;i++) {
  motor3.write(i3);
  delay(10);
}
delay (1000);
for (i3=180;i3>0;i--) {
  motor3.write(i3);
  delay(10);
}
 
  {
  delay(1000);
}
  int i4;
for (i4=0;i4<180;i++) {
  motor4.write(i4);
  delay(10);
}
delay (1000);
for (i4=45;i4>0;i--) {
  motor4.write(i4);
  delay(10);
 
}
{
  delay(1000);
}
  int i5;
for (i5=0;i5<180;i++) {
  motor5.write(i5);
  delay(10);
}
delay (1000);
for (i5=45;i5>0;i--) {
  motor5.write(i5);
  delay(10);
}
  {
  delay(1000);
}
  int i6;
for (i6=0;i6<180;i++) {
  motor6.write(i6);
  delay(10);
}
delay (1000);
for (i6=45;i6>0;i--) {
  motor6.write(i6);
  delay(10);
 
}
{
  delay(1000);
}

  int i7;
for (i7=0;i7<180;i++) {
  motor7.write(i7);
  delay(10);
}
delay (1000);
for (i7=45;i7>0;i--) {
  motor7.write(i7);
  delay(10);
 
}

{
  delay(1000);
}
  int i8;
for (i8=0;i8<180;i++) {
  motor8.write(i8);
  delay(10);
}
delay (1000);
for (i8=45;i8>0;i--) {
  motor8.write(i8);
  delay(10);
 
}
delay(1000);
}

Exibições: 408

Anexos

Responder esta

Respostas a este tópico

Por que nao posta uma foto do seu robô. Acho que vai ficar melhor para entender. No seu codigo entendi que vc aciona um servo por vez por tempo diferentes. Mas sem saber a função de cada servo não da para visualizar. Creio que você teria que criar alguma funçoes tipo ima para andar para frente. Outra para tras. Outra virar a direita. Esquerda e depois criar um funçao que chame as outras em ordem aleatória.

Esse é o projeto de qual eu falo.

Não tive tempo de procurar na net nenhum programa especifico mas creio que vc ja encontre pronto. Mas caso vc queira começar do zero entendeu o que propus.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço