sexta-feira, 1 de agosto de 2014

Ligando a ponte H L298




ESPECIFICAÇÕES PONTE H L298N:

- Tensão de Operação: 4~35v
- Chip: ST L298N (datasheet)
- Controle de 2 motores DC ou 1 motor de passo
- Corrente de Operação máxima: 2A por canal ou 4A max
- Tensão lógica: 5v
- Corrente lógica: 0~36mA
- Limites de Temperatura: -20 a +135°C
- Potência Máxima: 25W
- Dimensões: 43 x 43 x 27mm
- Peso: 30g
Output A e B: referem-se a conexão do Motor 1 e 2.
* +5v: Este módulo possui integrado um regulador de tensão 5v que quando o drive opera entre 7-35v este regulador pode ser acionado pelo jumper “5v enable”. Logo não alimente este pino com +5v mas deixe para uso externo se operando nestas condições.
* Input: Este tem 4 entradas e são elas:
> In 1: Este é um sinal PWM do controlador, ele diz quão rápido o motor 1 deve funcionar. No exemplo abaixo este valor pode ser entre 0 e 255, sendo 0 parado e 255 velocidade máxima.
> In 2: Simples sinal digital que informa o sentido da rotação do motor 1, sendo que 0 significa reverso e 1 frente.
> In 3: PWM para a velocidade do motor 2.
> In 4: Sinal digital para direção do motor 2.


(Motor A) e (Motor B): referem-se a conexão com os 2 motores DC ou 1 motor de passo, no nosso caso será usado apenas 1 motor como exemplo.
(Ativa MA) e (Ativa MB): São os pinos responsáveis pelo controle PWM dos motores A e B. Se estiver com jumper, não haverá controle de velocidade pois estarão setados em 5v e por default sempre ligados. Estes pinos são conectados a saída PWM do Arduino para controle da velocidade.
(Ativa 5v) e (5v): Este Driver Ponte H L298N possui um regulador de tensão integrado. Quando o driver está operando entre 6-35V, este regulador disponibiliza uma saída regulada de +5v no pino (5v) para um uso externo (com jumper), podendo alimentar por exemplo outro componente eletrônico. Portanto não alimente este pino (5v) com +5v do Arduino se estiver controlando um motor de 6-35v e jumper conectado, isto danificará a placa. O pino (5v) somente se tornará uma entrada caso esteja controlando um motor de 4-5,5v (sem jumper), assim poderá usar a saída +5v do Arduino.
- (6-35v) e (GND): Aqui será conectado a fonte de alimentação externa quando o driver estiver controlando um motor que opere entre 6-35v. Por exemplo se estiver usando um motor DC 12v, basta conectar a fonte externa de 12v neste pino e (GND).
- (Entrada): Este barramento é composto por IN1, IN2, IN3 e IN4. Sendo estes pinos responsáveis pela rotação do Motor A (IN1 e IN2) e Motor B (IN3 e IN4).

PROGRAMANDO ARDUINO COM PONTE H L298N:

Abaixo temos um código simples para demonstrar como este Driver Ponte H L298N é utilizado com um Arduino Uno. Iremos controlar apenas um Motor DC 12v 80RPM, ou seja, o ‘Motor A’.
Conecte uma Fonte DC 12v aos pinos (6-35v) e (GND). Deixe o jumper (Ativa 5v) habilitado e não conecte nenhuma fonte de alimentação ao pino (5v). Desconecte o jumper (Ativa MA) e conecte ao pino 9 do Arduino Uno. Os pinos IN1 e IN2 devem ser ligados ao pinos 2 e 3 do Arduino. O pino GND do Arduino deve estar conectado ao pino (GND) do driver.
Ao final conecte o Motor DC 12v a saída (Motor A).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//Motor A
int IN1 = 2; //pino 2 do Arduino
int IN2 = 3; //pino 3 do Arduino
int speedMA = 9; //pino 9 do Arduino
//Velocidade do Motor
int speed = 100; //Este valor pode variar de 0-255
void setup(){
 pinMode(IN1, OUTPUT);
 pinMode(IN2, OUTPUT);
}
void loop(){
 analogWrite(speedMA, speed);
 digitalWrite(IN1, LOW);
 digitalWrite(IN2, HIGH);
 delay(2000);
 digitalWrite(IN1, HIGH);
 digitalWrite(IN2, HIGH);
 delay(2000);
 digitalWrite(IN1, HIGH);
 digitalWrite(IN2, LOW);
 delay(2000);
}
Se você rodar este código o motor irá girar em uma direção por 2 segundos, irá parar por 2 segundos, girar na direção contrária por mais 2 segundos e repetir tudo de novo.

* Material retirado do site FILIPEFLOP.






quarta-feira, 30 de julho de 2014

TESTE DE COMUNICAÇÂO ARDUINO + FSX + LINK2FS.

Para quem deseja fazer um teste simples de comunicação com o FSX e o Arduino, segue tutorial passo a passo.
Programas necessários:
- FSX
- Programa do Arduino.  Versão para Windows
- O arquivo de programação do Arduino. Multi_Gear_keys
- O progama novo do JIM. Link2fs_Multi_FSX_v6b

1º - Rodar o FSX
2º - Programar o ARDUINO com o arquivo Multi_Gear_Keys. Este arquivo foi modificado para acender o LED do pino 13 do Arduino assim que a tecla G do FSX for pressionada, recolhendo o trem de pouso. Desta forma você saberá se a comunicação do Arduino com o FSX está funcionando.
3º - Rodar o Link2fs_Multi_FSX_v6b em modo administrador.
4º - Escolher a porta de comunicação do seu Arduino (1), conectar (2).
Clicar em SimConnect Extration 1 e selecionar a GEAR NOSE (3).

Pronto, o FSX já está se comunicando com o Arduino. Pressione a tecla G dentro do FSX para testar, o LED do Arduíno deverá agir conforme a posição do trem de pouso.



domingo, 17 de novembro de 2013

TESTES COM MOTOR DE PASSO PM55L 048


Fiz uma programação para o Arduino trabalhar com o motor de passo unipolar (6 fios). Esse motor PM55L 048 encontrei na impressora HP 692. Mas a maioria dos motores de passo unipolar devem funcionar sem problemas. A única coisa que deve ser observada é a voltagem da bobina dele.

Segue uma foto da manete feita em acrílico e MDF. Na foto abaixo ainda existe o servo motor, mas não vou mais utiliza-lo.
Farei uma engrenagem para acoplar o motor de passo.




Assim que eu terminar de fixar o motor de passo, vou adicionar dois sensores de fim de curso, um cada lado da manete.  para evitar problemas do motor girar sem para e quebrar minhas engrenagens. 
Logo vou fazer o circuito elétrico no Proteus e vou disponibilizar aqui, bem como o programa do Arduíno.

Esquema elétrico para testes do motor de passo.
Obs.: O circuito integrado UNL2003 suporte até 500ma de corrente. Este motor que estou utilizando precisa e 800ma. Portanto, em breve vou postar outro circuito com capacidade de gerenciar este motor. De qualquer forma usando o ULN2003 o motor funciona para testes.


Para esclarecer, o potenciometro utilizado deverá ser LINEAR, e é utilizado exclusivamente para verificar a posição da manete. O potenciometro para funcionar como joystick no Flight Simulator não esta neste projeto ainda. Eu quero dizer é que você precisará de um potenciometro para enviar as informações para o Flight simulator quando este não estiver em modo AUTO SPEED ligado. 
Há duas possibilidades para isso (vou trabalhar nisso mais adiante):
1- Utilizar um potenciometro duplo (mais facil), como se fosse dois em um. Neste caso você pode liga-lo no no seu joystick, ou utilizar desmontar um joystick e utilizar a placa com esses potenciometros.
2- Utilizar o mesmo potenciometro, porém o ardúino precisa ser programado para enviar os dados para o FS, e eu ainda não sei é possível utilizar isso no programa do LINK2FS. verificarei mais tarde. De qualquer forma estou me apegando apenas ao processo do motor.

terça-feira, 5 de novembro de 2013

FUNCIONAMENTO REAL DO AUTO THROTTLE usando SERVO MOTOR, ARDUÍNO UNO e FSX.

Segue um video demonstrando o primeiro teste real com o servo motor S0009 comprado na DX.COM.
Arduíno Uno R3, Flight Simulator X (FSX) e programa do JIM, LINK2FS.




Se você quiser testar precisa desses itens:

Placa ARDUÍNO.
Servo Motor.
Arquivo de programação do ARDUÍNO + o programa LINK2FS, aqui.
E o FSX é claro.
Basta ligar o servo motor na alimentação 5v e GND, e o pino de controle no pino 12 do Arduíno.
Ativar o LINK2FS_INOUT_V4J, e selecionar o THROTTLE 1.

Mais um vídeo para testes do hardware, utilizando um servomotor e um potenciometro.


Hoje testei com uma manete mais completa, e como eu suspeitava, ficou um pouco pesado para o servo motor. Vou então partir para um motor passo de impressora HP 692.
Aguardem.