Índice:

Motor de velocidade variável com controle serial: 6 etapas
Motor de velocidade variável com controle serial: 6 etapas

Vídeo: Motor de velocidade variável com controle serial: 6 etapas

Vídeo: Motor de velocidade variável com controle serial: 6 etapas
Vídeo: Controle a Velocidade e o Sentido de Rotação de um Motor com um Potenciômetro! 2024, Julho
Anonim
Motor de velocidade variável com controle serial
Motor de velocidade variável com controle serial

Controle a velocidade de um pequeno motor DC com nada além da porta serial do seu computador, um único MOSFET e alguns softwares triviais. (O MOSFET e a porta serial constituem o "controle de velocidade"; você ainda precisará de um motor e uma fonte de alimentação apropriada para esse motor; embora a porta serial possa fornecer a tensão para ligar e desligar um mosfet, ela pode ' t fornecer a corrente necessária para um motor típico.)

Etapa 1: observe o circuito

Olhe para o circuito
Olhe para o circuito

Faremos a modulação por largura de pulso usando um MOSFET genérico de canal N conectado ao pino de transmissão de dados da porta rs232 do computador. Quando a porta serial está ociosa, o pino ficará no estado "1", que no momento em que é convertido para rs232, é algo como -12V (dependendo dos drivers, pode estar mais próximo de -9V ou -5V), e o transistor estará totalmente DESLIGADO. Quando transmitimos bits "0" na porta serial, o pino rs232 irá para + 12V ou mais, o que é suficiente para ligar a maioria dos mosfets muito bem.

Se transmitirmos muito "0" bis em uma linha, o motor estará quase totalmente LIGADO e funcionará rapidamente. Se transmitirmos principalmente bits "1", o motor funcionará mais lentamente.

Etapa 2: conecte-o

Wire It Up
Wire It Up

Como há apenas um único componente e apenas algumas conexões, você pode simplesmente adicionar fios "de forma livre".

Os MOSFETs são sensíveis à estática, então seja um pouco cuidadoso, mas muito pouco é crítico.

Etapa 3: configurar arquivos com valores PWM

Configurar arquivos com valores PWM
Configurar arquivos com valores PWM

Uma forma de controlar o motor sem ter que escrever NENHUM software é preparar alguns arquivos contendo bytes apropriados (com mais ou menos 0 bits), e simplesmente COPIÁ-los para a porta COM onde você tem o motor conectado. Eu preparei vários arquivos (usando emacs, mas o que funcionar para você está bom):

  • 0.pwm:: contém 5000 caracteres NULL (espaço de controle na maioria dos teclados) [br] Isso é quase o mais próximo da "velocidade total" que poderemos chegar com esta técnica.
  • 1.pwm:: contém 5.000 caracteres control-A (ascii 01) (um bit "1" por caractere)
  • 3.pwm:: contém 5000 caracteres control-C (ascii 03) (dois bits "1" por caractere)
  • 7.pwm:: contém 5000 caracteres control-G (ascii 07) (três bits "1" por caractere)
  • 15.pwm:: contém 5000 caracteres control-O (ascii 15) (quatro bits "1" por caractere)
  • 31.pwm:: contém 5000 caracteres control-_ (ascii 31) (cinco "1" bits por caractere)
  • 63.pwm:: contém 5000 "?" caracteres (ascii 63) (seis bits "1" por caractere)
  • 127.pwm:: contém 5000 caracteres DEL (ascii 127) (sete bits "1" por caractere)

(Agora que desenhei as imagens, você notará que os padrões de bits reais não são ideais. Como o rs232 serial transmite LSB primeiro, realmente queremos mudar em zeros em vez de uns. Um exercício para o aluno!)

Etapa 4: Brinque com o DOS: configure sua porta COM e copie os arquivos

Brinque com o DOS: configure sua porta COM e copie os arquivos
Brinque com o DOS: configure sua porta COM e copie os arquivos

9600 bps é uma taxa de bits comum. Ele corresponde bem a "cerca de" um byte por milissegundo, portanto, neste caso, corresponde a uma frequência PWM de 1000 Hz, o que eu acho que deve ser adequado para motores pequenos. Você pode experimentar diferentes taxas de bits para ver como as coisas funcionam, o que é uma das vantagens deste método. Crie uma janela DOS (ou "prompt de comando") (supondo que você esteja usando um sistema operacional Windows) e configure sua porta de comunicação como: mode com1: 9600, n, 7, 1 "Isso diz à porta de comunicação para rodar a 9600bps e enviar 7 bits em cada caractere (para combinar com nossos 7 diferentes comprimentos de bit). O" n "significa SEM paridade, então esses serão os únicos bits de dados. O "1" significa que haverá um bit de "parada", que nos impedirá de ligar o motor totalmente (tudo bem.) Agora você pode ligar o motor com comandos like: copy 0.pwm com1: Como estamos enviando 5.000 caracteres a cerca de 1 por milissegundo, o motor deve ligar em velocidade total por cerca de 5 segundos. Se você quiser menos de 5 segundos, faça um arquivo mais curto. Da mesma forma, você pode fazer: copiar 127.pwm com1: para rodar o motor na velocidade mais baixa possível. Com a configuração que eu tinha, o motor não girava com nada "mais lento" do que 31.pwm, mas YMMV (eu acho k Eu tinha um motor de 12 V funcionando com 5 V de baterias.) O comando COPY permite que você encadeie os arquivos, então se você quiser que o seu motor acelere e desacelere novamente, você pode fazer algo como: copiar 31.pwm + 15. pwm + 7.pwm + 0.pwm + 7.pwm + 15.pwm + 31.pwm com1:

Etapa 5: controlar o motor a partir de um programa

Controle o motor a partir de um programa
Controle o motor a partir de um programa

Se você estiver escrevendo um programa, provavelmente poderá abrir COM1: como um arquivo e simplesmente gravá-lo como se fosse qualquer outro arquivo. Ser capaz de cronometrar os períodos em que o motor está ligado, gerando um determinado número de caracteres, parece ser muito útil. Não se esqueça de que é muito provável que o sistema armazene em buffer os caracteres que você envia para a porta serial; portanto, só porque uma chamada WRITE retorna, não significa que o motor terminou de fazer tudo o que você mandou. Já que não fazemos nada "extravagante" com os sinais da porta de comunicação, você não deve ter que investigar as opções misteriosas que ele pode oferecer. (embora, se você conseguir descobrir como enviar uma sequência BREAK para a porta de comunicação, esse é um estado "0" contínuo e acionará o motor TODO o caminho; mais do que enviar 0 caracteres contínuos.)

Se sua linguagem de programação não permitir a saída para COM1:, você ainda poderá controlar o motor "chamando" o DOS para fazer comandos de cópia. (OK. Baixei o Visual Basic Express 2005 da Microsoft (que é gratuito) e consegui amarrar uma barra de rolagem horizontal à velocidade do motor, controlada pela porta serial. Zip anexado. Provavelmente, ele tem mais do que o necessário para duplicar o programa no seu sistema, mas não consegui descobrir exatamente quais bits eram necessários. O programa é simplificado e tornado mais difícil de entender (desculpe) por ser multi-threaded. Um thread não faz nada além de enviar para a porta serial, e o thread principal lê a barra de rolagem e atualiza as informações usadas pelo thread serial.)

Etapa 6: experimente

Experimentar!
Experimentar!

Se as coisas estão basicamente funcionando, isso oferece muito espaço para experimentação.

  • Corrija meus padrões de bits!
  • A taxa de bits importa muito?
  • Você tem que controlar a largura dos pulsos "ligado" e "desligado" ou simplesmente controlar sua proporção é suficiente?
  • Se você só precisa controlar a proporção, pode considerar sequências de vários caracteres em taxas de bits mais altas para obter mais níveis de velocidade. A saída de 0 seguido por 127 seria cerca de metade ativada.
  • Isso também deve funcionar para diminuir a intensidade das lâmpadas das lanternas.

Recomendado: