collapse

* Links de Robótica

* Posts Recentes

Autor Tópico: smalluino problema  (Lida 2843 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline joao rexinho

  • Mini Robot
  • *
  • Mensagens: 183
  • http://sites.google.com/site/roboticaelectronica/
smalluino problema
« em: 23 de Abril de 2010, 18:02 »
Boas, recentemente adiquiri dois servo motores springrc  SM-S4303R para fazer um smalluino. Montei o, fiz o upload do código para o arduino duemilanove e os servos começaram a andar um para trás e outro para a frente e respondem aos ciclos do código :-\ :-\ :-\ O que esta a acontecer?????????Verifiquei as entradas e estão correctas, será problema do Arduino? :-\ :-\ :-\

Uploaded with ImageShack.us

Uploaded with ImageShack.us

Uploaded with ImageShack.us

Uploaded with ImageShack.us

Uploaded with ImageShack.us

Uploaded with ImageShack.us
Que tal está?
« Última modificação: 24 de Abril de 2010, 15:24 por joao rexinho »
http://sites.google.com/site/roboticaelectronica/home
Estudante de Engenharia Eletrônica e Telecomunicações em Aveiro

Offline AcidDagger

  • Mini Robot
  • *
  • Mensagens: 364
  • Make Bits, Making robotics in Portugal
    • Make Bits
Re: smalluino problema
« Responder #1 em: 23 de Abril de 2010, 19:02 »
provavelmente tens o os fios da alimentação trocados  ;)

Offline joao rexinho

  • Mini Robot
  • *
  • Mensagens: 183
  • http://sites.google.com/site/roboticaelectronica/
Re: smalluino problema
« Responder #2 em: 23 de Abril de 2010, 19:05 »
Acho que não
preto = GND
vermelho = VIN
branco = 11 PWN, 10 PWN
http://sites.google.com/site/roboticaelectronica/home
Estudante de Engenharia Eletrônica e Telecomunicações em Aveiro

Offline S Teixeira

  • Mini Robot
  • *
  • Mensagens: 21
Re: smalluino problema
« Responder #3 em: 23 de Abril de 2010, 19:06 »
É um problema de código.
Já me aconteceu o mesmo e o problema estava no código

Offline joao rexinho

  • Mini Robot
  • *
  • Mensagens: 183
  • http://sites.google.com/site/roboticaelectronica/
Re: smalluino problema
« Responder #4 em: 23 de Abril de 2010, 19:10 »
Podias indicar o problema pf? Já troquei a entrada para 6, 5 o motor fica a fazer barulho e anda muito devagar mas mesmo assim não responde aos ciclos.
Código: [Seleccione]
int motorEsq = 11;
int motorDrt = 10
;
void setup()
{
 pinMode(motorEsq, OUTPUT);
 pinMode(motorDrt, OUTPUT);
}
void loop()
{
 parado(4);
 frente(2);
 esquerda(6);
 tras(2);
 esquerda(6);
 direita(6);
}
void parado(int tempo){ // tempo = segundos/2
 for(int i = 0; i<tempo;i++){
  analogWrite(motorEsq, 127);
  analogWrite(motorDrt, 127);
  delay(500);
 }
}
void tras(int tempo){ // tempo = segundos/2
 for(int i = 0; i<tempo;i++){
  analogWrite(motorEsq, 152);
  analogWrite(motorDrt, 102);
  delay(500);
 }
}
void frente(int tempo){ // tempo = segundos/2
 for(int i = 0; i<tempo;i++){
  analogWrite(motorEsq, 102);
  analogWrite(motorDrt, 152);
  delay(500);
 }
}
void esquerda(int tempo){ // tempo = segundos/2
 for(int i = 0; i<tempo;i++){
  analogWrite(motorEsq, 102);
  analogWrite(motorDrt, 102);
  delay(500);
 }
}
void direita(int tempo){ // tempo = segundos/2
 for(int i = 0; i<tempo;i++){
  analogWrite(motorEsq, 152);
  analogWrite(motorDrt, 152);
  delay(500);
 }
}
http://sites.google.com/site/roboticaelectronica/home
Estudante de Engenharia Eletrônica e Telecomunicações em Aveiro

Offline S Teixeira

  • Mini Robot
  • *
  • Mensagens: 21
Re: smalluino problema
« Responder #5 em: 23 de Abril de 2010, 19:44 »
O código está correcto
Deve ser necessário ir a um dos motores e modificar-lhe o sentido de rotação
A folha técnica do motor explica como proceder e é muito fácil.

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: smalluino problema
« Responder #6 em: 23 de Abril de 2010, 19:47 »
Faz outro código, e brinca com os numeros do analogWrite, tive uns servos que para andar no mesmo sentido um tinha de estar 90, e o outro a 75  :o
e é mais fácil mexer nums numeros do que abrir o servo...

Offline S Teixeira

  • Mini Robot
  • *
  • Mensagens: 21
Re: smalluino problema
« Responder #7 em: 23 de Abril de 2010, 19:53 »
  neste endereço explica como alterar o sentido de rotação do servo da Paralax
http://www.parallax.com/dl/docs/prod/motors/crservo.pdf
Isto deverá resolver a questão
Não é necessário abrir o servo, é com uma chave de fenda que actua num pequeno parafuso
« Última modificação: 23 de Abril de 2010, 19:56 por S Teixeira »

Offline AcidDagger

  • Mini Robot
  • *
  • Mensagens: 364
  • Make Bits, Making robotics in Portugal
    • Make Bits
Re: smalluino problema
« Responder #8 em: 23 de Abril de 2010, 20:09 »
pois, experimenta codigos mais simples

Código: [Seleccione]
int motorEsq = 11;
int motorDrt = 10;

void setup()
{
 pinMode(motorEsq, OUTPUT);
 pinMode(motorDrt, OUTPUT);
}
void loop()
{
 
    digitalWrite(motorEsq, HIGH);  // Este pino HIGH, em conjunto com o de baixo LOW
    digitalWrite(motorDrt, HIGH);   // Fazem com que o motor da direita ande em frente
    delay (2000);
    digitalWrite(motorEsq, LOW);   // Este pino LOW, em conjunto com o de baixo HIGH
    digitalWrite(motorDrt, HIGH);  // Fazem com que o motor da esquerda ande em frente
    delay (1000);                    // Tempo que vai ficar a fazer esta função
    digitalWrite(motorEsq, HIGH);   // Este pino LOW, em conjunto com o de baixo HIGH
    digitalWrite(motorDrt, LOW);  // Fazem com que o motor da esquerda ande em frente
    delay (1000);
    digitalWrite(motorEsq, LOW);   // Este pino LOW, em conjunto com o de baixo HIGH
    digitalWrite(motorDrt, HIGH);  // Fazem com que o motor da esquerda ande em frente
    delay (1000);
    }

Offline AcidDagger

  • Mini Robot
  • *
  • Mensagens: 364
  • Make Bits, Making robotics in Portugal
    • Make Bits
Re: smalluino problema
« Responder #9 em: 23 de Abril de 2010, 20:11 »
Ja agora, como tas a alimentar os servos?

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: smalluino problema
« Responder #10 em: 23 de Abril de 2010, 20:30 »
Mas esse código é para motores dc com ponte H
EDIT: até não é, mas não funciona com um servo  :o
« Última modificação: 23 de Abril de 2010, 20:34 por amando96 »

Offline AcidDagger

  • Mini Robot
  • *
  • Mensagens: 364
  • Make Bits, Making robotics in Portugal
    • Make Bits
Re: smalluino problema
« Responder #11 em: 23 de Abril de 2010, 21:32 »
ponte H sao quantro pinos

mas isto ja faz os servos mexer nao?

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: smalluino problema
« Responder #12 em: 23 de Abril de 2010, 23:28 »
Sempre pensei que precisavam de um pulso.

Offline joao rexinho

  • Mini Robot
  • *
  • Mensagens: 183
  • http://sites.google.com/site/roboticaelectronica/
Re: smalluino problema
« Responder #13 em: 24 de Abril de 2010, 00:16 »
Desculpem tive 2 treinos de hoquei. utilizei este e funcionam bem os servos mas qando meto o codigo do smalluino estam sempre a andar. Estive a a mexer na peça para mudar os sentido, com este código não dá. Esta a ser alimentada pelo pc porque tenho as pilhas a carregar.
Código: [Seleccione]
#include <Servo.h>
 
Servo myservo1;
Servo myservo2;

void setup()
{
  myservo1.attach(10);
  myservo2.attach(11);
}
 
void loop()
{
  myservo1.write(45);
  myservo2.write(45);
  delay(1000);
  myservo1.write(135);
  myservo2.write(135);
  delay(1000);
}
http://sites.google.com/site/roboticaelectronica/home
Estudante de Engenharia Eletrônica e Telecomunicações em Aveiro

Offline joao rexinho

  • Mini Robot
  • *
  • Mensagens: 183
  • http://sites.google.com/site/roboticaelectronica/
Re: smalluino problema
« Responder #14 em: 24 de Abril de 2010, 01:48 »
Ja consegui virei la a peça ao maximo e depois no codigo alterei o analogWrite. :) :) :) :) ;D ;D ;D ;D :D :D :D :D :D
Muito obrigado a todos ::) ::) ::)
O codigo ficou algo como isto
Código: [Seleccione]
int motorEsq = 11;
int motorDrt = 10
;
void setup()
{
 pinMode(motorEsq, OUTPUT);
 pinMode(motorDrt, OUTPUT);
}
void loop()
{
 parado(4);
 frente(2);
 esquerda(6);
 tras(2);
 esquerda(6);
 direita(6);
}
void parado(int tempo){ // tempo = segundos/2
 for(int i = 0; i<tempo;i++){
  analogWrite(motorEsq, 0);
  analogWrite(motorDrt, 0);
  delay(500);
 }
}
void tras(int tempo){ // tempo = segundos/2
 for(int i = 0; i<tempo;i++){
  analogWrite(motorEsq, 45);
  analogWrite(motorDrt, 150);
  delay(500);
 }
}
void frente(int tempo){ // tempo = segundos/2
 for(int i = 0; i<tempo;i++){
  analogWrite(motorEsq, 150);
  analogWrite(motorDrt, 45);
  delay(500);
 }
}
void esquerda(int tempo){ // tempo = segundos/2
 for(int i = 0; i<tempo;i++){
  analogWrite(motorEsq, 45);
  analogWrite(motorDrt, 45);
  delay(500);
 }
}
void direita(int tempo){ // tempo = segundos/2
 for(int i = 0; i<tempo;i++){
  analogWrite(motorEsq, 150);
  analogWrite(motorDrt, 150);
  delay(500);
 }
}
http://sites.google.com/site/roboticaelectronica/home
Estudante de Engenharia Eletrônica e Telecomunicações em Aveiro