Índice:

Controlador de trem modelo Arduino 2 em 1: 4 etapas
Controlador de trem modelo Arduino 2 em 1: 4 etapas

Vídeo: Controlador de trem modelo Arduino 2 em 1: 4 etapas

Vídeo: Controlador de trem modelo Arduino 2 em 1: 4 etapas
Vídeo: Ponte H Dupla circuito L293D, motor DC girando nos dois sentidos - Curso de Arduino #21 2024, Julho
Anonim
Controlador de trem modelo Arduino 2 em 1
Controlador de trem modelo Arduino 2 em 1

Quarenta anos atrás, eu projetei um acelerador de trem modelo baseado em amp op para alguns amigos e, cerca de quatro anos atrás, eu o recriei usando um microcontrolador PIC. Este projeto Arduino recria a versão PIC, mas também adiciona a capacidade de usar uma conexão Bluetooth em vez dos interruptores manuais para o acelerador, freio e controle de direção. Embora o projeto que apresento aqui seja voltado para um motor ferroviário modelo de 12 volts, ele pode ser facilmente modificado para uma variedade de outras aplicações de controle de motor CC.

Etapa 1: Modulação por largura de pulso (PWM)

Modulação por largura de pulso (PWM)
Modulação por largura de pulso (PWM)

Para aqueles de vocês que não estão familiarizados com o PWM, não é tão assustador quanto parece. Tudo o que realmente significa para nossa aplicação simples de controle de motor é que geramos uma onda quadrada de alguma frequência e, em seguida, alteramos o ciclo de trabalho. O ciclo de trabalho é definido como a proporção de tempo em que a saída é uma alta lógica em comparação com o período da forma de onda. Você pode ver isso claramente no diagrama acima com a forma de onda superior com ciclo de trabalho de 10%, a forma de onda do meio com ciclo de trabalho de 50% e a forma de onda inferior com ciclo de trabalho de 90%. A linha tracejada sobreposta em cada forma de onda representa a tensão CC equivalente vista pelo motor. Dado que o Arduino tem um recurso PWM integrado, é realmente muito simples gerar esse tipo de controle de motor DC. Uma outra vantagem de usar o PWM é que ele ajuda a evitar que o motor dê uma partida oscilante que pode acontecer ao usar CC direta. Uma desvantagem do PWM é que às vezes há um ruído audível do motor na frequência do PWM.

Etapa 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

A primeira imagem mostra as conexões do Arduino para os interruptores e o módulo do driver do motor LM298. Existem resistores pull-up fracos internos ao Arduino, portanto, nenhum resistor pull-up é necessário para os interruptores. A chave de direção é uma chave simples SPST (single pole single throw). Os interruptores do acelerador e do freio são mostrados como botões de contato momentâneo normalmente abertos.

A segunda imagem mostra as conexões do Arduino para o módulo Bluetooth e o módulo de driver de motor LM298. A saída TXD do Bluetooth se conecta diretamente à entrada serial do Arduino RX.

A terceira imagem é um módulo de ponte H dupla L298N. O módulo LM298 possui um regulador de 5 volts integrado que pode ser habilitado por um jumper. Precisamos de +5 volts para o Arduino e Bluetooth, mas queremos +12 volts para acionar o motor. Neste caso, aplicamos os +12 volts na entrada “+ 12V power” do L298N e deixaremos o jumper “5V enable” no lugar. Isso permite que o regulador de 5 volts produza para a conexão de “+5 potência” no módulo. Conecte-o ao Arduino e ao Bluetooth. Não se esqueça de conectar os fios terra para a entrada +12 e a saída +5 ao módulo “power GND”.

Queremos que a tensão de saída do motor varie com base no PWM gerado pelo Arduino, em vez de apenas estar totalmente ligado ou totalmente desligado. Para fazer isso, removemos os jumpers de “ENA” e “ENB” e conectamos nossa saída Arduino PWM a “ENA” no módulo. Lembre-se de que o pino de habilitação real é o mais próximo da borda da placa (próximo aos pinos de “entrada”). O pino posterior para cada ativação é de +5 volts, portanto, queremos ter certeza de não conectar a ele.

Os pinos “IN1” e “IN2” no módulo são conectados aos respectivos pinos do Arduino. Esses pinos controlam a direção do motor e, sim, há um bom motivo para permitir que o Arduino os controle em vez de simplesmente conectar uma chave ao módulo. Veremos o porquê na discussão do software.

Etapa 3: Módulo Bluetooth

Módulo Bluetooth
Módulo Bluetooth

A imagem mostrada aqui é típica dos módulos Bluetooth disponíveis. Ao procurar um para comprar, você pode pesquisar os termos “HC-05” e HC-06”. As diferenças entre os dois estão no firmware e geralmente no número de pinos na placa. A foto acima é de um módulo HC-06 e vem com firmware simplificado que permite apenas configurações muito básicas. Ele também é definido como um dispositivo Bluetooth “escravo” apenas. Em termos simples, isso significa que ele só pode responder aos comandos de um dispositivo “Mestre” e não pode emitir comandos por conta própria. O módulo HC-05 tem mais possibilidades de configuração e pode ser definido como um dispositivo “Mestre” ou “Escravo”. O HC-05 geralmente tem seis pinos em vez dos quatro mostrados acima para o HC-06. O pino de estado não é realmente importante, mas o pino de chave (às vezes tem outros nomes como "EN") é necessário se você quiser fazer qualquer configuração. Geralmente, os módulos não precisam de nenhuma configuração se você estiver ok com a taxa de transmissão padrão de 9600 e não se importar em dar um nome específico para o módulo. Tenho vários projetos onde os uso, então gosto de nomeá-los de acordo.

A configuração dos módulos Bluetooth requer que você compre ou crie uma interface para uma porta serial RS-232 ou para uma porta USB. Não cobrirei como construir um nesta postagem, mas você deve conseguir encontrar informações na web. Ou apenas compre uma interface. Os comandos de configuração usam comandos AT parecidos com os que eram usados antigamente com modems de telefone. Anexei um manual do usuário aqui que inclui os comandos AT para cada tipo de módulo. Uma coisa a ser observada é que o HC-06 requer comandos em MAIÚSCULAS e a string de comando deve ser concluída em 1 segundo. Isso significa que algumas das strings mais longas para coisas como alterar as taxas de transmissão precisarão ser cortadas e coladas em seu programa de terminal ou você precisará configurar arquivos de texto para enviar. O requisito em MAIÚSCULAS é apenas se você estiver tentando enviar comandos de configuração. O modo de comunicação normal pode aceitar quaisquer 8 bits de dados.

Etapa 4: Software

O software é bastante simples tanto para a versão manual quanto para a versão Bluetooth. Para selecionar a versão Bluetooth, simplesmente descomente a declaração “#define BT_Ctrl”.

Quando escrevi o código PIC, experimentei a frequência PWM e finalmente me decidi por 500 Hz. Descobri que, se a frequência fosse muito alta, o módulo LM298N não era capaz de reagir com rapidez suficiente aos pulsos. Isso significava que a saída de tensão não era linear e poderia dar grandes saltos. O Arduino possui comandos PWM integrados, mas eles permitem apenas que você varie o ciclo de trabalho e não a frequência. Felizmente, a frequência é de cerca de 490 Hz, o que é perto o suficiente dos 500 Hz que usei no PIC.

Uma das “características” dos aceleradores de trem é uma sensação de impulso para aceleração e frenagem para simular como um trem real funciona. Para isso, um simples atraso de tempo é inserido no loop para a versão manual do software. Com o valor mostrado, leva aproximadamente 13 segundos para ir de 0 a 12 volts ou de 12 volts de volta a zero. O atraso pode ser facilmente modificado para tempos mais longos ou mais curtos. O único caso em que o momentum não está em vigor é quando o interruptor de direção é alterado. Para fins de proteção, o ciclo de trabalho PWM é imediatamente definido como 0% sempre que essa chave é alterada. Isso, na verdade, faz com que a chave de direção também funcione como freio de emergência.

Para garantir o tratamento imediato do switch Direction, coloquei seu código em um manipulador de interrupção. Isso também nos permite usar a função "interromper na mudança", de modo que não importa se a mudança é de baixo para alto ou de alto para baixo.

A versão Bluetooth do software usa comandos de uma única letra para iniciar as funções de avanço, ré, freio e aceleração. Com efeito, os comandos recebidos substituem os interruptores manuais, mas causam as mesmas respostas. O aplicativo que uso para o controle do Bluetooth é chamado de “Bluetooth Serial Controller” da Next Prototypes. Ele permite que você configure um teclado virtual e defina suas próprias strings de comando e nomes para cada tecla. Ele também permite que você defina uma taxa de repetição, então eu defino os botões Brake e Throttle em 50 ms para dar cerca de 14 segundos de impulso. Desativei a função de repetição para os botões Avançar e Reverter.

É isso para este post. Confira meus outros Instructables. Se você estiver interessado em projetos de microcontroladores PIC, verifique meu site em www.boomerrules.wordpress.com

Recomendado: