• Welcome to LusoRobótica - Robótica em Português.
 

Iniciante em Robótica

Started by Psycop, 07 de March de 2011, 16:01

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

CBX

os fios não estão ligados no d5 e d6?

é o que me parece...

Psycop

Quote from: CBX on 11 de May de 2011, 18:17
os fios não estão ligados no d5 e d6?

é o que me parece...

Obrigado pelo reparo!

Era exactamente isso.

Agora esta a funcionar com este código:
int motorPin1 = 4;
int motorPin2 = 5;
int motorPin3 = 10;
int motorPin4 = 11;
int delayTime = 500;

void setup() {
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);

}

void loop() {

\\Avançar

digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(1000);

\\Recuar

digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(1000);

}


Psycop

Boas

Já tenho os motores a funcionar convenientemente. Mas agora gostaria de controlar a velocidade dos motores, sei que isso é feito no PWM mas não faço ideia em qual deles e como e para onde.

Se me pudessem indicar algum esquema, seria muito mais fácil para mim!

Ando também a tentar encontrar informação acerca da montagem do sensor QTR-8RC Reflectance Sensor Array, mas não encontro nada de especial, que me clarifique o modo como devo montar e ligar.

Alguém conhece algumas informações ou esquemas que me possam ser úteis? Qualquer ajuda é bem vinda.

Cumps


CBX

como eu já tinha dito ligas os pinos 1 e 9 da ponte a um pwm qualquer e usas um simples analogwrite, vê o link uns posts atrás...

Psycop

Quote from: CBX on 12 de May de 2011, 16:45
como eu já tinha dito ligas os pinos 1 e 9 da ponte a um pwm qualquer e usas um simples analogwrite, vê o link uns posts atrás...

E ligo os 2 pinos 1 e 9 a apenas um PWM?

Ou uso um PWM para cada?

Cumps

CBX

se quiseres velocidade diferente em cada motor tens de usar 2 distintos, se for a mesma um basta

Psycop

Quote from: CBX on 12 de May de 2011, 16:58
se quiseres velocidade diferente em cada motor tens de usar 2 distintos, se for a mesma um basta

Boas

Liguei o Pino1 da ponte ao pino pwm2 e o pino 9 da ponte ao pwm 3, e criei o seguinte codigo:
int motorPin1 = 4;
int motorPin2 = 5;
int motorPin3 = 10;
int motorPin4 = 11;
int analogPin1 = 2;
int analogPin2 = 3;
int delayTime = 500;

void setup()
{
 
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);

}

void loop() {

analogWrite(motorPin1, 64);
analogWrite(motorPin2, 64);
analogWrite(motorPin3, 64);
analogWrite(motorPin4, 64);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(1000);

analogWrite(motorPin1, 64);
analogWrite(motorPin2, 64);
analogWrite(motorPin3, 64);
analogWrite(motorPin4, 64);
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(1000);


}


O Que acontece é que os motores continuam a rodar a mesma velocidade que antes, ou seja máxima, e alterando os valores do analogWrite a velocidade não se altera.

O Que estarei a fazer mal?

Cumps

CBX

isto:

analogWrite(analogPin1, 64);
analogWrite(analogPin2, 64);


em vez disto;
analogWrite(motorPin1, 64);
analogWrite(motorPin2, 64);
analogWrite(motorPin3, 64);
analogWrite(motorPin4, 64);


e atenção que apenas os pinos digitais 3, 5, 6, 9, 10, 11 têm função PWM

Psycop

Obrigado pelo reparo.

Alterei a ligação para os pinos 3 e 6 que são pwm, e o código para o que me indicaste, mas não vejo qualquer diferença na velocidade dos motores...

Cmps

senso

Avr fanboy

Psycop

o código todo é o seguinte:

int motorPin1 = 4;
int motorPin2 = 5;
int motorPin3 = 10;
int motorPin4 = 11;
int analogPin1 = 3;
int analogPin2 = 6;
int delayTime = 500;

void setup() {
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);

}

void loop() {

//Avançar

analogWrite(analogPin1, 64);
analogWrite(analogPin2, 64);
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(1000);

//Recuar

analogWrite(analogPin1, 64);
analogWrite(analogPin2, 64);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(1000);

}


Psycop

#86
Olá

Consegui controlar os motores através do seguinte código:
int analogPin1 = 3;
int analogPin2 = 6;
int motorPin1 = 4;
int motorPin2 = 5;
int motorPin3 = 10;
int motorPin4 = 11;
int delayTime = 500;

void setup()
{
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);

}

void loop()
{
  anda();
  delay(1000);
  parado();
  delay(1000);
}
 
 
void anda()
{ 
  analogWrite(motorPin1, 0);
  analogWrite(motorPin2, 64);
  analogWrite(motorPin3, 64);
  analogWrite(motorPin4, 0);
}

void parado()
{
  analogWrite(motorPin1, 0);
  analogWrite(motorPin2, 0);
  analogWrite(motorPin3, 0);
  analogWrite(motorPin4, 0);
}


O que acontece agora é que os motores emitem um som estranho a quando do parado(), o que será?
O que estou a fazer de errado?

Necessito também de ajuda para montar o QTR-8RC Reflectance Sensor Array pois, não faço a mínima ideia de como o montar nem como o ligar.
Alguém me pode explicar o que tenho de fazer e que pinos terei de soldar ao QTR-8RC Reflectance Sensor Array.

Cumps

CBX

o analogwrite apenas funciona em saídas PWM

para poderes controlar dessa maneira precisas de ligar os 4 inputs do L293D a 4 pinos PWM...

usa antes o código como está no outro post acima...

em relação ao sensor podes começar pela página do fabricante, tens lá muita informação ou procura pelo fórum, penso que há por ai mais do que um tópico sobre isso

Psycop

Quote from: CBX on 13 de May de 2011, 15:53

em relação ao sensor podes começar pela página do fabricante, tens lá muita informação ou procura pelo fórum, penso que há por ai mais do que um tópico sobre isso

Eu já andei pela página do fabricante, o que acontece é que eu não entendi muito bem o que lá diz!
A informação do fabricante é a seguinte: http://www.pololu.com/docs/pdf/0J12/QTR-8x.pdf

Só que mesmo assim, eu não sei bem como proceder!

Poderias-me ajudar?

Cumps

CBX

eu nunca usei esse sensor nem nada parecido, procura aqui pelo fórum que encontras de certeza a informação que precisas...