Como alterar a velocidade de um motor dc com o arduino

Video: Como controlar a velocidade de um Motor DC com Arduino

Às vezes, você precisa ter um maior controle sobre a velocidade do seu motor, que o Arduino permite que você faça com o esboço MotorSpeed. A seguir mostra-lhe como controlar a velocidade do seu motor com o mesmo circuito.

Video: SHIELD - CONTROLE DE MOTORES | Curso de Arduino #010

O esboço MotorSpeed

Abra um novo sketch Arduino, salve-o com um nome memorável, como myMotorSpeed ​​e digite o seguinte código.

Video: Como Fazer um Controle de Velocidade para Motores DC - 50 circuitos

int motorPin = 9-vazio setup () {pinMode(MotorPin, SAÍDA) -} void loop () {para(int motorValue = 0 - motorValue lt; = 255- motorValue + = 5) {analogWrite(MotorPin, motorValue) -demora(30) -}para(int motorValue = 255 - motorValue gt; = 0- motorValue - = 5) {analogWrite(MotorPin, motorValue) -demora(30) -}}

Depois de ter digitado o esboço, salve-o e pressione o botão Compilar para verificar o seu código. O Arduino Ambiente deve destacar quaisquer erros gramaticais na área de mensagem, se eles são descobertos.

Se o esboço compila corretamente, clique em Upload para fazer o upload do esboço para sua placa. Ao fazer o upload é feito, você deve ter um motor que gira muito lentamente para começar, acelera a sua rotação mais rápida, gira para trás para baixo a uma parada, e depois repete. Pode ser difícil de ver isso, então você deve corrigir algo mais visíveis, como massa de vidraceiro adesivo, para mostrar o que está acontecendo.

Você pode achar que em seu ponto mais lento, o motor apenas cantarola. Se assim for, este não é um problema-isso significa apenas que o eletroímã não tem tensão suficiente para girar o motor-que precisa de mais tensão para gerar o magnetismo e ganhar impulso.

Video: Circuito PWM com Transistores para Reversão de Motores DC para Robôs Arduino Explicado

A repartição esboço MotorSpeed

O pino que você está usando para controlar o circuito motor, pino digital 9, é declarada.


int motorPin = 9-

Porque é uma saída, você defini-lo na configuração.

void setup () {pinMode(MotorPin, SAÍDA) -}

No circuito principal, você usa analogWrite para enviar um valor PWM no pino 9. Este é o mesmo princípio que no esboço Fade, para fazer a transição de um LED. O primeiro para laço envia um valor aumentando gradualmente ao pino 9 até atingir o valor máximo de PWM 255. O segundo para ciclo retorna gradualmente este valor para 0-, em seguida, o ciclo repete-se

void loop () {para(int motorValue = 0 - motorValue lt; = 255- motorValue + = 5) {analogWrite(MotorPin, motorValue) -demora(30) -}para(int motorValue = 255 - motorValue gt; = 0- motorValue - = 5) {analogWrite(MotorPin, motorValue) -demora(30) -}}

Este processo poderia ser comparado a rotação de um motor de carro. Se você apertar o pedal para baixo, você acelera até a velocidade máxima. Se tocar no pedal do acelerador, o motor acelera e, em seguida, desacelera. Se você toca nele a uma taxa constante antes de ele diminui, você vai manter algum do impulso do motor girar e atingir uma média (se um pouco jerky) velocidade.

Isto é o que o transistor está fazendo, mas muito rapidamente. Os intervalos entre on e off e o impulso do motor permitir-lhe atingir o comportamento analógico de um sinal digital.


Publicações relacionadas