Avançar para o conteúdo principal

primeiro arduino // 2

Estamos de volta, com algumas novidades substanciais, como é visível na foto (clique na mesma para ampliar a imagem).


Temos um botão de pressão, um potenciómetro e um circuito integrado (!) na placa de contactos, para além de uma série de ligações. Foi ainda colocado um LED na zona traseira do modelo, indicador da presença de tensão no circuito do Arduino. Mais tarde talvez pensemos num sistema de iluminação frontal de maior potência (eventualmente com LEDs de alto brilho), logo se verá... Para já é um vulgar LED vermelho, com um dos seus pinos ligado ao barramento de 5V da placa de contactos, alimentado pelo Arduino, e o outro a uma resistência de 390 Ohm (pode diminuir-se um pouco este valor, no caso particular o LED até nem brilha por aí além) e depois ao pino GND da mesma.

Já o tinha referido anteriormente, mas também coloquei dois interruptores para controlar os circuitos de alimentação do Arduino e dos motores. A este propósito, diga-se que neste momento o motor de tracção (o único colocado) ainda está a ser alimentado pelo Arduino, que por sua vez vai buscar energia a uma vulgar pilha de 9V. Para alimentar o Arduino (e ele agora está autónomo de ligações externas, o que era um dos requisitos inicialmente propostos) utilizei uma ficha de 2.1mm de centro positivo (siginifica que a ligação central é a que tem tensão), reciclada de um carregador de telemóvel avariado.




Fase C . Controlo do motor de tracção

Algum tempo de pesquisa, umas tantas optimizações algo caprichosas, e o motor de tracção já está minimamente controlado, com a ajuda de um pequeno potenciómetro no comando da velocidade, e de um botão de pressão (que deverei substituir por um interruptor) a controlar a direcção da marcha (quando continuamente premido faz o motor rodar no sentido inverso, o que é um pouco cansativo).

Com a utilização de um circuito integrado - o L293D - que aprendi ser uma solução boa para o controlo de motores e que é por sua vez comandado pelo Arduino, temos o poder sobre até quatro dispositivos de potência (ou seja, que trabalham com potências maiores do que as admitidas pelo Arduino), e no nosso caso poderemos com um só chip controlar a direcção do motor DC e do Servo. Nesta fase debruçarmo-nos-emos sobre o controlo do primeiro.


Ora bem, agora vamos precisar de duas coisas:

- Em primeiro lugar, de um esquema com todas as ligações necessárias. Devo dizer que, aqui, vou ser um bocadinho 'pirata' e utilizar alguns recursos publicados por quem tem, certamente, mais conhecimento e talvez algum tempo para desenhar estes esquemas, que é coisa de que não disponho no momento. Os autores deverão ser sempre referenciados, claro, e não hão-de por certo importar-se que ajudemos a partilhar com o mundo a qualidade das matérias que produzem...

- Por último, temos de ter código, para controlar as acções do Arduino. O Arduino é programável em C++, por exemplo, e qualquer um de nós pode descarregar o software disponibilizado gratuitamente a partir daqui.

O esquema de montagem dos componentes, assim como o código, foram retirados dos tutorials publicados pela Adafruit  no Adafruit Learning System, mais particularmente o Arduino Lesson 15. DC Motor Reversing.

Lista de componentes:

- Circuito integrado L293D
- Botão de pressão para placa de componentes
- Resistência variável para placa de componentes, de 10K Ohm
- Cabo unifilar rígido ou jumpers para as ligações

Devo dizer, aliás, que a este nível (da necessidade de utilização de esquemas electrónicos e da programação), toda esta secção C do projecto e eventualmente algumas das seguintes, se baseiam quase exclusivamente nestes tutorials, que entendemos serem referências importantes, e que seguiremos até procurarmos (e encontrarmos) alternativas. O espírito open-source também é isto mesmo: partilha de código (e de recursos). Existem imensos exemplos publicados, particularmente para utilização com o Arduino, e estes são, aqui muito particularmente, fundamentais. Será interessante fazermos evoluir o modelo inclusivamente com a utilização de código próprio.

Esquema de montagem. As ligações efectuadas foram confirmadas (se calhar re-confirmadas). Na imagem são visíveis, ao centro da placa de contactos, e de baixo para cima, o L239D, a resistência variável e o botão de pressão. A pequena reentrância no circuito integrado deverá ficar voltada para cima, na imagem).


E o código. Introduzido num novo sketch a criar com o software atrás referido. Um sketch é, em linguagem arduina, a listagem de instruções em C++, que constitui um programa. Este programa deverá ser compilado pelo software, e descarregado via USB para o Arduino.

//dcmotorR1
//controlo motor duas direcções

int enablePin = 11;
int in1Pin = 10;
int in2Pin = 9;
int switchPin = 7;
int potPin = 0;

void setup(){
  pinMode(in1Pin, OUTPUT);
  pinMode(in2Pin, OUTPUT);
  pinMode(enablePin, OUTPUT);
  pinMode(switchPin, INPUT_PULLUP);
}

void loop(){
  int speed = analogRead(potPin) / 4;
  boolean reverse = digitalRead(switchPin);
  setMotor(speed, reverse);
}

void setMotor(int speed, boolean reverse){
  analogWrite(enablePin, speed);
  digitalWrite(in1Pin, ! reverse);
  digitalWrite(in2Pin, reverse);
}



Os artigos originais contêm mais informação (em inglês, no original) acerca do esquema de ligações e do funcionameno do código fornecido.

Comentários

Mensagens populares deste blogue

primeiro arduino // 1

Para além de todos os interesses relativos ao tema, o arduino parece-me atraente pela reunião de várias temáticas técnicas, cuja aprendizagem pessoal tenho em perspectiva, mas para as quais me tem faltado a motivação e o tempo certos. Ora bem, desta vez vamos juntar numa primeira experiência um bocadinho de Lego, alguns componentes eléctricos e electrónicos, fios, cabos e soldaduras, e por fim um pouco de programação em C++. E um Arduino, claro. No meu caso um Arduino UNO Rev3. Devo dizer que este projecto não tem de ser, necessariamente muito caro. Consegue comprar-se online , em lojas portuguesas, um modelo de Arduino como este por €20,00 + IVA + portes. O diverso material eléctrico usado é barato. Encontram-se motores DC e servo em brinquedos eléctricos, leitores de CD avariados, etc. De resto, um pouco de imaginação e de reciclagem nunca fizeram mal a ninguém... Este projecto materializou-se pelo desejo de construir um pequeno veículo de quatro rodas, controlado pelo Ardu...