Como controlar a velocidade de um motor dc com o arduino

Precisa de mais controle de seu motor DC? Você pode usar o esboço MotorControl para o Arduino para colocar alguma entrada em um motor de corrente contínua para lhe dar controle total do motor em tempo real.

O esboço MotorControl

Para ganhar o controle da velocidade do seu motor sempre que você precisar, você precisa adicionar um potenciômetro para o seu circuito.

Você precisa:

  • Um Arduino Uno

  • A placa de ensaio

  • Um transistor

  • Um motor DC

  • Um diodo

  • Um resistor variável ohm 10k

  • A 2.2k ohm resistor

  • fios salto

Encontrar um espaço em sua placa de ensaio para colocar seu potenciômetro. O pino central do potenciómetro é ligado de volta ao pino 9, utilizando um fio de salto, e os restantes dois pinos estão ligados a 5V de um lado e GND do outro.

O 5V e GND pode ser de ambos os lados, mas a mudança deles vai inverter o valor que o potenciômetro envia para o Arduino. Embora o potenciômetro usa a mesma potência e chão, como o motor, observe que eles são circuitos separados que tanto comunicam através do Arduino.

Video: Como controlar um Motor DC com o Arduino

Depois de ter construído o circuito, abrir um novo esboço Arduino e salve-o com outro nome memorável, como myMotorControl. Em seguida, digite o seguinte código.

int potPin = a0-int motorPin = 9-int potValue = 0-int motorValue = configuração 0-void () {Serial.begin (9600) -} void loop () {potValue = analogRead(PotPin) -motorValue = mapa(PotValue, 0, 1023, 0, 255) -analogWrite(MotorPin, motorValue) -Serial.print ("potenciômetro = " ) -Serial.print(PotValue) -Serial.print ("t = motora ") -Serial.println(MotorValue) -demora(2) -}

Depois de ter digitado o esboço, salve-o e clique no botão Compilar para destacar erros de sintaxe. .



Se o esboço compila corretamente, clique em Upload para fazer o upload do esboço para sua placa. Quando isso for feito upload, você deve ser capaz de controlar o seu motor através do potenciômetro. Rodar o potenciómetro numa direcção faz com que o motor de velocidade para cima rodando-o para o outro lado faz com que a abrandar.

A repartição MotorControl Esboço

Este esboço é uma variação sobre o esboço AnalogInOutSerial e funciona exatamente da mesma maneira, com algumas mudanças de nome para melhor indicar o que você está controlando e monitorando no circuito.

Video: Ponte H L298N | Arduino#02

Como sempre, você declarar as diferentes variáveis ​​utilizadas no esboço. Você usa o potPin para atribuir o pino potenciômetro e motorPin para enviar um sinal para o motor. A variável potValue é usado para armazenar o valor bruto do potenciômetro e as lojas variáveis ​​motorValue o valor convertido que deseja a saída para o transistor para ligar o motor.

int potPin = a0-int motorPin = 9-int potValue = 0-int motorValue = 0-

Como ajustar o esboço MotorControl

Você pode achar que há uma velocidade mínima após o qual o motor irá apenas hum. Fá-lo porque não têm poder suficiente para girar. Ao monitorar os valores enviados para o motor utilizando o esboço MotorControl, você pode encontrar o valor mínimo do motor para transformar e otimizar o motorValue para ligar o motor dentro de seu verdadeiro alcance.

Para encontrar o intervalo de motorValue, Siga esses passos:

  1. Com o esboço MotorControl carregado, clique no botão de série do monitor no canto superior direito da janela do seu Arduino.

    A janela monitor serial irá mostrar-lhe o valor do potenciômetro seguido pelo valor de saída que está sendo enviado para o motor, desta forma:

    potenciómetro = 1.023 = 255 a motor

    Estes valores são exibidos em uma lista longa e atualização como você girar o potenciômetro. Se você não ver a lista de rolagem para baixo, certifique-se de que a opção Autoscroll é selecionado.

  2. Começando com seu potenciômetro de ler um valor de 0, transformar seu potenciômetro muito lentamente até que o zumbido pára e o motor começa a girar.

  3. Tome nota do valor apresentado neste momento.

  4. use um E se declaração para dizer o motor para mudar a velocidade somente se o valor for maior do que a velocidade mínima necessária para girar o motor, como segue:

    (uma). Encontre a parte do seu código que escreve o motorValue para o motor:

    analogWrite(MotorPin, motorValue) -

    (B). Substituí-lo com o seguinte trecho de código:

    E se(motorValue gt; yourValue) {analogWrite(MotorPin, motorValue) -} outro {digitalWrite(MotorPin, LOW) -}
  5. agora substitua yourValue com o número que você anotou.

    Se o valor motorValue é maior do que isso, o motor acelera. Se for menor do que isso, o pino está escrito BAIXO de modo que é totalmente desligado. Você também pode digitar analogWrite (motorPin, 0) para realizar a mesma coisa. otimizações pequenos como este podem ajudar a sua função de projeto sem problemas, sem movimento ou valores desperdiçado.


Publicações relacionadas