Mesmo o Sonoff sendo uma solução completa de hardware e…
Como usar com Arduino – Motor de Passo 28BYJ-48 com Driver ULN2003
– Descrição:
O Motor de Passo 28BYJ-48 com Driver ULN2003 é um dos componentes mais utilizados em projetos robóticos, pois é um motor compacto, robusto e com extrema precisão no posicionamento (rotação) de um ângulo.
O acionamento do Motor de Passo 28BYJ-48 com Driver ULN2003 é feito pelo Driver de Corrente ULN2003 que acompanha o mesmo. Como o motor exige uma corrente mais alta que a fornecida pelo microcontrolador, faz-se necessário o uso do driver.
– Especificações e características (Motor de Passo 28BYJ-48):
– Tensão de operação: 5VDC
– Tipo de motor: Unipolar
– Resistência: 60Ω/fase
– Torque máximo: 2,2Kgf.cm
– Ângulo Passo: 5,625 x 1/64
– Relação de redução: 1/64
– Extensão do fio: 24cm
– Diâmetro do motor: 28mm
– Especificações e características (Driver ULN2003):
– Controlador: ULN2003
– Tensão de operação: 5 a 12VDC
– Corrente de controle (máxima): 500mA/canal
– Aplicações:
Projetos de robótica com Arduino ou outras plataformas microcontroladas.
– Proposta da prática:
Utilizar o Motor de Passo 28BYJ-48 com Driver ULN2003 em conjunto com o Arduino e girar o eixo do motor no sentido horário e sentido anti-horário.
– Lista dos itens necessários:
01 – Arduino com Cabo USB
01 – Motor de Passo 28BYJ-48 com Driver ULN2003
06 – Cabos Jumper macho-fêmea
– Esquema de ligação da prática:
– Tutorial de instalação e configuração do ambiente de programação do Arduino:
Arduino – Instalação e Configuração da IDE no Windows
– Código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <Stepper.h> //INCLUSÃO DE BIBLIOTECA const int stepsPerRevolution = 65; //NÚMERO DE PASSOS POR VOLTA Stepper myStepper(stepsPerRevolution, 8,10,9,11); //INICIALIZA O MOTOR UTILIZANDO OS PINOS DIGITAIS 8, 9, 10, 11 void setup(){ myStepper.setSpeed(300); //VELOCIDADE DO MOTOR } void loop(){ //LAÇO "for" QUE LIMITA O TEMPO EM QUE O MOTOR GIRA NO SENTIDO ANTI-HORÁRIO for(int i = 0; i < 50; i++){ //PARA "i" IGUAL A 0, ENQUANTO "i" MENOR QUE 50 INCREMENTA "i" myStepper.step(stepsPerRevolution); //GIRA O MOTOR NO SENTIDO ANTI-HORÁRIO } //LAÇO "for" QUE LIMITA O TEMPO EM QUE O MOTOR GIRA NO SENTIDO HORÁRIO for(int i = 0; i < 50; i++){//PARA "i" IGUAL A 0, ENQUANTO "i" MENOR QUE 50 INCREMENTA "i" myStepper.step(-stepsPerRevolution); //GIRA O MOTOR NO SENTIDO HORÁRIO } } |
– Resultado final:
Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!
Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop
Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.
Obrigado e até a próxima!
Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.
Postagem anterior: Como usar com Arduino – Buzzer 5V Ativo
Próxima postagem: Como usar com Arduino – Sensor (Detector) de Vibração – SW-420
Qual devo usar para velocidade maiores tipo 255 de cooler?
Olá, boa tarde
Tenho uma dúvida quanto a utilização em 12v, estive analisando e existem motores como estes já com marcação de 12v, e este indica que trabalha com 5 e 12v, ou seja, somente mudando a ‘çhavinha”no driver e utilizando os 12v ele vai passar a trabalhar com esta voltagem, mas isso não vai gerar sobreaquecimento do mesmo? Outra questão, pretendo criar uma automação de cortina com um deste, e para isto, acredito que necessito utilizar uma fonte de 12v, porém, de quantos amperes esta fonte precisa ser para que o motor entregue seu maior torque?
Obrigado pelo tutorial.
At.te,
Olá Leandro.
Agradeço pelo comentário!
O jumper da placa é apenas uma chave ON / OFF para caso do usuário precisar conectar uma chave para ligar / desligar o motor sem recorrer ao microcontrolador.
O motor é preparado para funcionar em 12VDC. Recomendo que busque pelo datasheet do driver e do motor que vai usar para verificar qual a corrente minima deverá fornecer ao seu circuito em caso de usar somente o motor com o driver.
BOM DIA, ESTOU COM UM PROJETO EM UMA PEQUENA METALÚRGICA, E PRECISO FAZER COM QUE O MOTOR DE PASSO COM ARDUINO CONTROLE A MÁQUINA DE CORTE DE ARAMES. EU DIGITO O COMPRIMENTO E QUANTIDADE DE ARAMES, E A MÁQUINA FAZ ESSE PROCESSO AUTOMATICAMENTE. DESENROLA O ROLO DE ARAME, ATINGE O TAMANHO E ACIONA A GUILHOTINA, E REPETE ATÉ ATINGIR A QUANTIDADE SOLICITADA. TERIA COMO ME AJUDAR ?
Olá Marcos.
Agradeço pelo comentário!
No Youtube há projetos similares a este que pretende implementar. Recomendo que faça uma pesquisa por lá para ter um norte e começar o desenvolvimento.
Eu preciso de uma fonte externa para alimentar o motor a passo ou apenas com o arduino eu consigo isto, como voce mostra acima?
Olá Lucas.
Agradeço pelo comentário!
Para este modelo utilizado na prática, pode usar apenas o Arduino.
Boa noite Euler
Sou iniciante do Arduíno e programação, gostaria de fazer uma pequena programação igual a desse tutorial, porém incluindo dois botões. Um botão para rodar no sentido horário (1/2 volta) e o outro botão para o sentido anti-horario, também em meia volta. Já tentei com pequena aulas no YT. Mas não estou conseguindo concluir… Poderia me ajudar ?
Olá Bruno.
Agradeço pelo comentário!
Recomendo que faça uma mescla deste tutorial com este outro do link abaixo:
https://blogmasterwalkershop.com.br/arduino/como-usar-com-arduino-servo-motor-mg946r/
Fazendo os devidos ajustes você irá conseguir.
boa tarde euler, eu preciso incluir nesse programa um modulo bluethoot para controla-lo, como faço isso?
Olá Reney.
Agradeço pelo comentário!
Ainda não temos aqui no Blog tutorial similar a este projeto que quer implementar.
Boa noite Euler.
Você poderia me ajudar com.um código ou programa para meu motor de passo 28byj gire 1 rpm?
Uso o arduino uno.
Obrigado
Elvis
o código está fazendo rodar somente pra 1 lado.
Por favor me ajude
Olá Anderson Costa.
Copie novamente o código da postagem e carregue no seu Arduino para testar.
Os dois laços “For” estão iguais. Altere um para “i–” e o operador de “”.
#include //INCLUSÃO DE BIBLIOTECA
const int stepsPerRevolution = 48; //NÚMERO DE PASSOS POR VOLTA
Stepper myStepper(stepsPerRevolution, 8,10,9,11); //INICIALIZA O MOTOR UTILIZANDO OS PINOS DIGITAIS 8, 9, 10, 11
void setup(){
myStepper.setSpeed(150); //VELOCIDADE DO MOTOR
}
void loop(){
//LAÇO “for” QUE LIMITA O TEMPO EM QUE O MOTOR GIRA NO SENTIDO ANTI-HORÁRIO
for(int i = 0; i 1; i–){//PARA “i” IGUAL A 0, ENQUANTO “i” MENOR QUE 50 INCREMENTA “i”
myStepper.step(-stepsPerRevolution); //GIRA O MOTOR NO SENTIDO HORÁRIO
}
}
Ola, td bom??
Estou tentando fazer a conecção do arduino com o motor de passo, contudo não tenho conectores macho-fêmea.
Ja tentei com conectores macho-macho, mas tem momentos que fica com mau contato… teria alguma dica para que seja possível a conexão??
Olá Vitor.
Neste caso, o ideal é que utilize os jumpers corretos ou que faça solda dos fios aos conectores do driver ULN2003.