Você está na página 1de 7

Sucata.

Tec
Portal do jovem curioso.

+2 Recomende isto no Google Recomendar 40.985 pessoas recomendaram isso. Seja o

Tw eetar

Tutorial 005 Driver ULN2003


Publicado em 13 de junho de 2012 por Angelo
Like 0

Um dos problemas ao se usar atuadores no Arduino, a baixa corrente fornecida nas saidas(40 mA).Por isso muitas vezes temos que recorrer a shields,como por exemplo o motor-shield,rel-shield entre outros.Uma alternativa barata usar drivers. Nesse tutorial vamos ensinar como fazer um driver barato,prtico e eficiente,destinado especialmente ao controle de motores,mas pode ser usados para outras aplicaes. Nosso driver baseado no circuito integrado ULN2003,que capaz de fornecer cerca de 30 volts em suas saidas(7 no total) ,na nossa aplicao vamos usar 2 para se ter proveito total das 12 saidas do Arduino. Esquema:

Como podemos ver,sobra algumas saidas ,caso esteja usando um Arduino com mais saidas,tipo o Arduino Mega,basta colocar mais CIs em paralelo. Para se usar esse driver,ligue o terminal positivo do motor(ou qualquer outra coisa) no terminal positivo da fonte exterior,e o terminal negativo fica ligado nas sai das do driver. Aspecto final:

Com esse driver tambm podemos fazer uso do PWM disponivel no Arduino.Abaixo temos um vi deo dos teste do nosso driver:

No video, possvel escutar um zumbido quando o motor esta em baixa rotao,isso ocorre devido ao modo como o PWM funciona. Para quem quiser refazer o experimento do video,vai o esquema das liguagens e o codigo:

Codigo: // Sucata.Tec Tutorial 005: Driver ULN2003 // Acessem: sucatapontotec.netai.net int pot = 0; int motor = 5; int con =0; void setup() { pinMode(motor, OUTPUT); // pino definido como saida pinMode(A0, INPUT);// pino definido com entrada analogWrite(motor, 0);// escrita analogica inicia em nivel baixo } void loop() { pot = analogRead(A0);// variavel assume valor lido na entrada analogica con= map(pot,0,1023,0,255); // funao map convertendo a entrada analogica para valores de PWM analogWrite(motor, con);//saida varia de acordo com o valor da variavel ajustada.

} // FIM O potencia metro pode ser de qualquer valor,pois agora faremos uma leitura da variao na entrada analogica. PWM: Pulse-Width Modulation, ou modulao por largura de pulso, uma tecnica muito usada para controle de velocidades em motores DC,onde possivel manter o torque em baixas rotaes ,garantindo partidas mais suaves em motores.

Esse um grfico PWM.O fornecimento de alimentao ao motor regulado por meios dos pulsos.O nivel mais alto corresponde a tenso mxima e o baixo a 0 volts.A velocidade ento definida como a media entre o ni vel baixo e alto,por exemplo: se a largura do pulso de ni vel alto for igual a largura do pulso de nivel baixo,a media entre eles vais ser de 50% da tenso fornecida,ento o motor tero metade de suas rotaes.O torque vais ser manter pois a variao no ocorre na corrente elrica e sim no seu tempo de fornecimento. No caso,o Arduino ou qualquer outro dispositivo simplesmente altera essa largura de pulso.
Like 0

Esse post foi publicado em .Tutoriais e marcado Arduino, driver, motor, PWM, shield por Angelo. Guardar link permanente [http://www.sucatapontotec.netai.net/tutorial005-driver-uln2003/] .

Sobre Angelo
Administrador do Sucata.Tec Ver todas as mensagens por Angelo

2 IDEIAS SOBRE TUTORIAL 005 DRIVER ULN2003

Marcelo Souza em 7 de maro de 2013 s 4:05 PM disse:

Angelo, boa tarde. Gostei muito do site, parabns pela idia. Gostaria de tirar uma dvida contigo. Tenho a disposio muitos motores de passo de varios tamanhos, modelos e marcas (incrivelmente no acho referencia no Google, rs), geralmente com apenas 4 pinos (fios). Como posso fazer para test-los?

Angelo em 7 de maro de 2013 s 11:11 PM disse:

Boa noite Marcelo. Muito obrigado pela visita. Sobre seus motores, bem provavel que sejam motores bipolares(4 bobinas girando um ncleo magntico). Cada par de fios so de um par de bobinas,para fazer girar,vc teria que ligar junto um terminal de cada par de bobina fazendo um fio em comum,e o acionamento se daria pelo outros 2 fios restantes,quando ligasse cada um deles de forma sequencial o motor giraria de 90 em 90 graus. Use um multimetro para identificar os pares de bobina.Depois de identificar os pares,vc tem que ficar atento quanto a direo magnetica que cada bobina gera.Pegue um fio de um par de bobinas e ligue em um fio de outro par de bobinas,ligue um polo de uma fonte nessa juno e o outro polo vc liga em um dos fios que sobrou e depois no outro.Se girar,vc encontrou e configurao dele.Se no girou,desmanche a juno e ligue um dos fios no outro fio da outra bobina. Certo? Nesse link tem uma imagem de como esse motor por dentro,se tiver ficado confuso,essa imagem pode te ajudar. http://www.stepperworld.com/Tutorials/bmodel.gif

A proposito,quais as cores dos fios desses motores?Pode ser que atraves deles podemos identificar tbm(se no me engano existe um padro). Algumas pessoas confundem motores brushless(encontrados em HD por exemplo e em aeromodelos) com motores de passo,no caso desses a situao muda um pouco,pois so 3 bobinas e j existe o fi0 em comum. Caso for usar esse driver do tutorial 005 vc liga o fio comum no positivo e os outros 2 nas saidas. Qualquer duvida so perguntar aqui ou mandar por e-mail.