Tutorial 005 – BUFFER ULN2003

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 buffers.
Nesse tutorial vamos ensinar como fazer um buffer barato,prático e eficiente,destinado especialmente ao controle de motores,mas pode ser usados para outras aplicações.
Nosso buffer é baseado no circuito integrado ULN2003,que é capaz de fornecer cerca de 30 volts em suas saidas(7 no total) ,na nossa aplicação vamos usar 2 para se ter proveito total das 12 saidas do Arduino.

Esquema:

DRIVER ARDUINO ULN2003

Como podemos ver,sobra algumas saidas ,caso esteja usando um Arduino com mais saidas,tipo o Arduino Mega,basta colocar mais CI’s em paralelo.
Para se usar esse buffer,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 buffer.

Aspecto final:

100_2194

Com esse buffer também podemos fazer uso do PWM disponivel no Arduino.Abaixo temos um vi­deo dos teste do nosso buffer:

No video,é possível escutar um zumbido quando o motor esta em baixa rotação,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:

Arduino

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); // funçao 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 variação na entrada analogica.

PWM:

Pulse-Width Modulation, ou modulação por largura de pulso,é uma tecnica muito usada para controle de velocidades em motores DC,onde é possivel manter o torque em baixas rotações ,garantindo partidas mais suaves em motores.

Gráfico PWM

Esse é um gráfico PWM.O fornecimento de alimentação ao motor é regulado por meios dos pulsos.O nivel mais alto corresponde a tensão máxima e o baixo a 0 volts.A velocidade então é 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 tensão fornecida,então o motor terão¡ metade de suas rotações.O torque vais ser manter pois a variação não ocorre na corrente elérica e sim no seu tempo de fornecimento.
No caso,o Arduino ou qualquer outro dispositivo simplesmente altera essa largura de pulso.

8 ideias sobre “Tutorial 005 – BUFFER ULN2003

  1. Boa noite Amigo. Parabéns pelo site, muito educativo.
    Então, estou com uma dúvida e gostaria de saber se pode me ajudar.

    Estou desenvolvendo um circuito, e vou usar um pic16F818 para acionar as entradas do Uln 2003. Gostaria de saber se posso usar as saídas do uln 2003 para acionar atuadores com tensoes e correntes diferentes uma das outras, alimentando cada uma destas cargas com suas respectivas fontes intependentes e dentro de seus parâmetros. Dentre estes atuadores estao motores Cc, motores de passo, relés, e etc,,,todos com tensoes de alimentaçao diferentes.
    Caso eu possa fazer isso, a alimentaçao do comum do ci Uln 2003 serveria apenas para sua propria alimentação? Precisaria alimentar o comum do uln 2003?
    Muito Obrigado!

    Muito obrigado!

    • Olá Jônatas.
      Essas saídas podem ser controladas por pwm, portanto podem sim ter tensões diferentes, porém vc deve fazer a média correta para cada saída levando em consideração o pwm, o pwm em seu valor máximo(255) vai devolver uma tensão máxima na saída( que vai depender da fonte que estiver usando).
      Nesse circuito é possível usar apenas uma fonte, essa mesma fonte também alimentam o CI.
      Esse CI pode fornecer no máximo 500mA por saída, tenha cuidado com isso.
      Boa sorte!

    • Olá, boa noite.
      Não é possível, ele só isola a alimentação do motor, assim vc pode ligar/desligar e controlar a velocidade(pwm) de motores com mais segurança.
      Para reverter a rotação é necessário uma ponte H ou senão um arranjo de relés.

  2. Boa tarde amigo. Primenira mente gostaria de parabeniza-los pelos tutoriais disponibilizados.
    Gostaria se saber se tu podes me dar uma Luz. Pois estou a algumas muitas semanas, a pesquisar como ligar, motor brushless com controle de velocidade para ser mais exato, motores de HDD 4 fios e motores de video cassete 6 fios (este tem o drive em sua base mas não fasso ideia de como liga-lo). E como um bom teimoso que sou, resolvi não comprar o dito ESC, e estou tentando criar o drive dos motores, mas li tanta coisa e mesmo assim meu conhecimento é bem limitado. Se puderes me ajudar ficaria grato.
    Gostaria de criar drive com controle de velocidade para motor HDD, ja estaria de bom tamanho.

    ATT:
    Marcelo

    • Boa noite, obrigado pelo comentário e desculpe pela demora, o site está sendo reativado.

      Olá Marcelo, obrigado pelo apoio!
      Esse motores de HDD são realmente um desafio, já pensei em pegar um desafio desses para resolver.
      A pouco tempo atrás encontrei alguém na internet que conseguiu acionar um motor desses, se não me engano, ele encontrou a temporização exata para acionar cada bobina.
      O que eu sei é o seguinte: Esses motores são trifásicos, eles precisam uma defasagem de 120º na alimentação, porém usando microcontrolador vc pode acionar ele como se fosse um motor de passo, porém é necessário acionar cada bobina no momento exato. Os ESCs possuem um microcontrolador dedicado para saber o momento exato para acionar cada bobina. Esse momento exato ocorre quando um polo do imâ permanente está sobre a bobina, quando esse alinhamento ocorre o campo magnético ali será mais forte e haverá uma mudança na corrente dessa bobina, um sensor de corrente identifica essa pertubação

  3. Angelo, boa tarde.

    Gostei muito do site, parabéns pela idéia. Gostaria de tirar uma dúvida contigo.
    Tenho a disposição muitos motores de passo de varios tamanhos, modelos e marcas (incrivelmente não acho referencia no Google, rs), geralmente com apenas 4 pinos (fios).

    Como posso fazer para testá-los?

    • Boa noite Marcelo.
      Muito obrigado pela visita.
      Sobre seus motores,é bem provavel que sejam motores bipolares(4 bobinas girando um núcleo magnético).
      Cada par de fios são 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 direção 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 junção e o outro polo vc liga em um dos fios que sobrou e depois no outro.Se girar,vc encontrou e configuração dele.Se não girou,desmanche a junção 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 não me engano existe um padrão).
      Algumas pessoas confundem motores brushless(encontrados em HD por exemplo e em aeromodelos) com motores de passo,no caso desses a situação muda um pouco,pois são 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.

Deixe um Comentário

O seu endereço de email não será publicado

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>