Existem n maneiras para montar um circuito para pode ligar o motor, vou mostrar só uma delas como mostra a imagem a seguir:
O resistor que usei é de 1kohm, diodo
1N4007, transistor TIP120 e a bateria é que serve para ligar o motor. Lembrando
também que existe varias maneiras para ligar um motor, a programação
praticamente é igual a do Blink também pode ser feita pelo for mas precisa usar uma
porta pwm, só que em vez do LED vai ligar um motor DC.
Programação:
int motor= 9; //Variável 9 que declarei como
motor
void setup()
{
pinMode(motor, OUTPUT); //Porta Digital do arduino, pino 9 (pwm)
}
void setup()
{
pinMode(motor, OUTPUT); //Porta Digital do arduino, pino 9 (pwm)
}
void loop()
{
digitalWrite(motor, HIGH); //Motor Liga por
delay(1000);
// 1segundo = 1000
milissegundos
digitalWrite(motor, LOW); //Motor Desliga por
delay(1000);
//1segundo
= 1000 milissegundos
}
Como vocês
viram, mudou quase nada da programação Blink, mas como a porta 9, é uma porta
pwm, logo vocês podem mudar a corrente, em vez de HIGH pode-se colocar 255
(corrente máxima ou outro valor para andar) e em vez de LOW pode colocar como 0
(corrente nula ou um valor muito baixo para ele andar bem de vagar), mas lembrando
de que precisa mudar de digitalWrite para analogWrite. Fazendo isso, podemos
controlar a velocidade dos motores, leds, qualquer componente.
Vídeo:
Até mais...
12 comentários:
Fala eduardo blz?!
se ao inves de de High e/ou Low , poderia ultilizar "random",tipo assim.
analogWrite(motor,random(255));
delay(1000);
o motivo disso é q preciso de motores girando de forma aleatória.
Mas esse random(), dentro dele foi declarado que a variável máximo a ser declarado é de 255. Caso você use mesmo o motor, seria bom usar um valor minimo que consiga acionar o motor e o valor máximo 255.
Na teoria essa programação funcioná sim mas prefiro verificar antes a programação pare ver se funciona 100% mas como estou um pouco atarefado, logo responderei com a programação.
Mas olhando assim, creio que não há porque de não funcionar.
Ola Eduardo,
Estou começando no mundo arduino, e tenho muitas duvidas como controlar motor nele, estou querendo controlar 2 motores nos 2 sentidos (frete, tras) você tem alguma dica.
Obrigado
Olá... Você pode usar a ponte H usando transistores ou CI
Explicação: http://arduino-projetos.blogspot.com.br/2011/07/ponte-h.html
Com Transistor: http://arduino-projetos.blogspot.com.br/2011/09/ponte-h.html
Com CI: http://arduino-projetos.blogspot.com.br/2011/06/motorshield.html
Existe outras maneiras e outros CIs para poder fazer o controle dos motores em ambos os sentidos, da até para fazer com relé mas acho desnecessário.
Espero que tenha ajudado... até mais
Poderia ser mais especifico quanto a montagem?
A programação parece ser super simples e super igual o blink, mas não entendi muito bem o desenho, o esquemático rs
Comprei um Arduino a pouco tempo, tenho vários motores desses e meu kit veio com muitos acessórios, ainda não pude ver o tutorial que veio junto com meu Kit, mas estou fuçando sempre no Google e muitas vezes encontro desenhos esquemáticos como o seu onde é até fácil compreensão, mas gostaria de entender oq ue está acontecendo rs
O que é "Porta pwm" por que deve se ligar na porta 9 e não na 13 (Que foi onde eu liguei meu LED rs)
Essas explicações "básicas" mas que vão fazer toda a diferença pra mim que não tenho muito conhecimento sobre os componentes em geral :/
Elvis... primeiramente no arduino nem todos os pinos tem a porta PWM eu escolhi uma porta aleatória PWM que no meu caso foi a 9 mas poderia ser qualquer outra porta PWM, a 13 seria uma porta digital comum.
PWM é uma sigla ingles que traduzida significa Modulação Largura de Pulso,você controla a largura do pulso nume determinada frequência em que o arduino funciona e vai fazendo o controle da intensidade da luz ou da velocidade do motor. Pino digital funciona como nivel alto e nível baixo, 5v e 0v respectivamente no Arduíno você fazendo o controle por PWM você vai controlar a largura em que o pulso vai ficar em nível alto e baixo, isso tudo numa velocidade muito grande por causa da frequência, do clock do Arduíno trabalha. Com essa quantidade de largura em que vai pro nível alto e baixo que faz o controle da intensidade da carga (se irá acender um LED fraco ou forte ou controlar a velocidade do motor)
A programação é que nem o Blink realmente, mas usando essa programação coloquei como nível alto, rodar com a velocidade máxima e nível baixo que seria desligado. Caso fosse usar realmente a porta PWM a programação iria mudar um pouco em vez de digitalWrite(pin, HIGH ou LOW), serial analogWhite(pin, 0-255 onde faz o controle da carga).
O circuito é bem simples realmente, o transistor é usado como chave, o Arduino irá dar um sinal para a base do transistor permitindo a passagem da corrente. Em grosso modo para facilitar a explicação seria assim: a corrente sai do polo positivo da bateria passa pelo motor e fica retido no coletor do transistor, com o sinal que você der na base do componente a corrente vai passar do coletor para o emissor e voltar para o polo negativo da bateria.
Tentei explicar o máximo que pude, qualquer coisa manda outro comentário ou um e-mail também pesquise muito no pai Google que tem muita coisa interessando com o Arduino
boa noite...
to começando agora com arduino e estou com problemas para fazer um pequena programação.. se vcs podem me ajudar é o seguinte...
tenho um motor dc... e quero controlar esse motor com 3 botões
EXEMPLO:
BOTÃO A= ele gira para frente
BOTÃO B= gira para trais
BOTÃO C= controla a velocidade de rotação
então na pratica seria assim...
quando eu aperta o botão A (e continuando apertado)ele não iria partir sem que eu apertasse o botão C ( só da um toque no botão)
ai a cada toque no botão C ele tivesse uma rotação diferente... como se fosse a macha de um carro...
quando eu soltasse o botão A ele pare de girar... mas quando eu apertar novamente ele continue a mesma "macha" que estava antes.
pretendo colocar 3 velocidades diferentes... quando chegasse na 3 e eu aperta o botão de novo ele volta pro 1...
bom, se alguém tiver o código pronto eu agradeço...
mas se alguém me dar dicas de como programar, também será bem vindo...
meu e-mail deividcosta_@hotmail.com
muito obrigado
olá, queria saber como posso ligar o motor por 1s, e depois desliga lo completamente.
não entendi o uso do diodo pode me explicar?
Olá Eduardo. Teria algum problema se eu usar um mosfet nesse caso e quais os diodos alternativos eu poderia usar ao invés do 1N4007?
Olá Eduardo, amigo eu procuro um projeto para controlar um motor de vidro elétrico de carro subir e descer, porém existem algumas considerações, eu vou usar 2 chaves fim de curso, segundo eu pretendo usar uma chave on/off para fazer a respectiva função de subir e descer, você poderia me ajudar :)
Olá Eduardo, amigo eu procuro um projeto para controlar um motor de vidro elétrico de carro subir e descer, porém existem algumas considerações, eu vou usar 2 chaves fim de curso, segundo eu pretendo usar uma chave on/off para fazer a respectiva função de subir e descer, você poderia me ajudar :)
Postar um comentário