Eletrônica digital – Economizando pinos PWM

Essa dica serve tanto para Arduino quanto para PIC.
Estou concluindo um projeto com controle de muitos LEDs utilizando PWM. Um dos problemas é que cada LED consome 20mA, o outro é que se eu quiser acender 50 LEDs precisarei de 50 pinos PWM!
Para resolver esse problema, utilizei o CI ULN2003A, que fornece até 500mA por saída. Se precisar PWMs de diferentes comprimentos, obviamente será necessário utilizar mais pinos e esse CI fornece diversas saídas, o que permite então colocar uma penca de LEDs por pino!


Como pode-se ver no desenho acima, o último pino abaixo à esquerda é o ground; o último pino à direita é VCC, onde se pode entrar com até 30V.

Coloquei 3 LEDs aproveitando o mesmo PWM para exemplificar abaixo:

E um código bem simples para testar o PWM:


int i;
void setup(){
    Serial.begin(9600);
    pinMode(3,OUTPUT);
}

void loop(){
    for (i=0;i<256;i++){
        analogWrite(3,i);
        delay(5);
    }
    for (i=255;i>-1;i--){
        analogWrite(3,i);
        delay(5);
    }
}

E o video para comprovar o funcionamento:


É um post simples apenas para servir como referência para a utilização do ULN2003A; certamente será útil (pelo menos para mim, quando eu me esquecer de como utilizá-lo)!

Se gostou, não deixe de compartilhar; dê seu like no video e inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Prefere seguir-nos pelo facebook? Basta curtir aqui.

Prefere twitter? @DobitAoByte.

Próximo post a caminho!

Deixe uma resposta