Boas e más notícias.
Bom foi o facto de ter instalado e testado o motor servo para controlo da direcção:
O motor funciona bem. O sistema de transmissão não (o que faz parte da má notícia). Para além do mais o veículo está a ficar muito pesado. Ou seja, temos peso a mais e mobilidade a menos. E com um motor servo desta categoria, e um Arduino, e um motor DC chinês, não posso construir um modelo que depois não consiga sair do lugar... Portanto, decidi que vou mudar de veículo. Vou reconstruí-lo na totalidade. Mas essa será uma das fases seguintes.
As novidades deste post fizeram-me concluir que talvez estivesse a evoluir por um caminho mais difícil, o de construir uma plataforma robusta, para as implementações futuras, de forma deficiente à partida, o que não é, diga-se, a abordagem pretendida. Mas são importantes porque registam a simplicidade do controlo do motor servo. Seguem-se o esquema de ligações e o código, igualmente publicados pela Adafruit, no tutorial Arduino Lesson 14. Servo Motors.
Esquema de ligações. Neste projecto, e ao contrário do que acontece com o do exemplo fornecido, a alimentação do servo deverá ser da responsabilidade da bateria adicional, agora de tensão regulada para os 5V, pela utilização de um outro circuito integrado, o LM7805.
A bateria também foi substituída. No lugar de quatro baterias AA (portanto 6V) passamos a ter uma bateria de ocupa menos espaço e é mais potente. Está 'emprestada' de um heli tele-comandado. Já tem lugar reservado (e neste momento estava a carregar)...
O esquema. Não esquecer que não é o Arduino que alimenta o servo, como visível no exemplo da figura, em que existe apenas um circuito de alimentação. Neste caso teremos baterias separadas para motor e Arduino, pelo que deverá ter em atenção que deve conectar o neutro do circuito de alimentação do motor ao pino GND da placa controladora.
Temos ainda uma resistência variável de 10K a comandar o ângulo de rotação do motor servo (0 - 180º), suficiente para controlar a direcção do veículo.
E o código:
#include <Servo.h>
int potPin = 0;
int servoPin = 9;
Servo servo;
void setup()
{
servo.attach(servoPin);
}
void loop()
{
int reading = analogRead(potPin); // 0 to 1023
int angle = reading / 6; // 0 to 180
servo.write(angle);
}
Bom foi o facto de ter instalado e testado o motor servo para controlo da direcção:
O motor funciona bem. O sistema de transmissão não (o que faz parte da má notícia). Para além do mais o veículo está a ficar muito pesado. Ou seja, temos peso a mais e mobilidade a menos. E com um motor servo desta categoria, e um Arduino, e um motor DC chinês, não posso construir um modelo que depois não consiga sair do lugar... Portanto, decidi que vou mudar de veículo. Vou reconstruí-lo na totalidade. Mas essa será uma das fases seguintes.
As novidades deste post fizeram-me concluir que talvez estivesse a evoluir por um caminho mais difícil, o de construir uma plataforma robusta, para as implementações futuras, de forma deficiente à partida, o que não é, diga-se, a abordagem pretendida. Mas são importantes porque registam a simplicidade do controlo do motor servo. Seguem-se o esquema de ligações e o código, igualmente publicados pela Adafruit, no tutorial Arduino Lesson 14. Servo Motors.
Esquema de ligações. Neste projecto, e ao contrário do que acontece com o do exemplo fornecido, a alimentação do servo deverá ser da responsabilidade da bateria adicional, agora de tensão regulada para os 5V, pela utilização de um outro circuito integrado, o LM7805.
A bateria também foi substituída. No lugar de quatro baterias AA (portanto 6V) passamos a ter uma bateria de ocupa menos espaço e é mais potente. Está 'emprestada' de um heli tele-comandado. Já tem lugar reservado (e neste momento estava a carregar)...
O esquema. Não esquecer que não é o Arduino que alimenta o servo, como visível no exemplo da figura, em que existe apenas um circuito de alimentação. Neste caso teremos baterias separadas para motor e Arduino, pelo que deverá ter em atenção que deve conectar o neutro do circuito de alimentação do motor ao pino GND da placa controladora.
Temos ainda uma resistência variável de 10K a comandar o ângulo de rotação do motor servo (0 - 180º), suficiente para controlar a direcção do veículo.
E o código:
#include <Servo.h>
int potPin = 0;
int servoPin = 9;
Servo servo;
void setup()
{
servo.attach(servoPin);
}
void loop()
{
int reading = analogRead(potPin); // 0 to 1023
int angle = reading / 6; // 0 to 180
servo.write(angle);
}



Comentários
Enviar um comentário