Cátodo, Ânodo, PWM e LEDs RGB

Então. Até algumas horas atrás eu achava que havia queimado uns LEDs aqui, mas não foi isso que aconteceu. Tenho aqui comigo uns LEDs RGB que possuem o ânodo comum, não o cátodo, e na internet o pessoal geralmente tem LEDs com o cátodo comum. Essa era a confusão...

E esse tal de cátodo é primo de quem?

Cátodo é um eletrodo negativo, enquanto ânodo é um eletrodo positivo. Isso quer dizer que, pelo cátodo só sai e, pelo ânodo, só entra (quem saca de eletrônica sabe que na prática a teoria é outra, mas enfim). Aí eu tava ligando o negócio invertido achando que meus LEDs eram de cátodo comum.

Ok. Por conta disso o lance da manipulação de LED RGB atrasou deveras, mas agora chegou a hora. E vamos começar pelo...

PWM

PWM significa modulação por largura de pulso, ou Pulse Width Modulation. É assim: um pulso é quando ligamos e desligamos alguma coisa. Ligar e desligar várias vezes gera vários pulsos e o intervalo de duração do pulso é a sua largura. A imagem a seguir explica isso:

Créditos: arduino.cc

Isso quer dizer o seguinte: se tivermos um LED ligado num pino e enviarmos um analogWrite(64) pra ele, em 25% do tempo ele estará acesso e em 75% do tempo apagado. O pulo do gato é que isso acontece muito, muito rápido, e, daí, ao invés de vermos o LED acendendo e apagando, vemos um brilho mais ou menos intenso. Usar o LED é interessante porque dá pra ver a coisa acontecendo.

A teoria: LED RGB

Um LED RGB de ânodo/cátodo comum possui 4 pernas, como mostra a imagem abaixo:
O LED RGB

A perna maior é o cátodo/ânodo. A perna órfão ao lado é do vermelho. Do outro lado, partindo da maior para o menor, temos o verde e o azul. Para acender o LED com cátodo comum, ligue pinos positivos em cada cor e o terra na perna maior. O contrário acontece com o LED de ânodo comum (meu caso): ligue o positivo na perna maior e o sinal nas outras pernas. Comoestou usando LEDs com ânodo comum, devo me lembrar que o sinal vai trabalhar em oposição: analogWrite(0) será o maior sinal, enquanto analogWrite(255) será o menor sinal, pois, quando dou um analogWrite(0), estou transformando o pino em ground, daí ele vai receber os volts do pino de 5v (ou 3,3v) e fechar o circuito.

Os pinos

No arduíno, os pinos que podem gerar pulso são os 3, 5, 6, 9, 10, 11. No Raspberry Pi o único pino que pode gerar pulso é o 12 (GPIO18).

Pinagem RPi


Pinagem Arduíno. Pinos PWM são marcados com ~

Na prática isso quer dizer que, no arduíno, posso controlar a intensidade das cores de 2 LEDs individualmente, já no RPi só dá pra fazer isso com apenas uma cor de um só LED (será?). Só que a coisa começa a ficar mais legal quando percebemos que tanto no arduíno quanto no RPi podemos conectar com facilidade novos microcontroladores e, usando comunicação serial, por exemplo (TX e RX), enviar comandos para outros dispositivos e fazer a coisa acontecer de maneira muito mais interessante.

A prática

Controlando LED RGB com o arduíno: veja como controlar um LED RGB com o arduíno.
Controlando LED RGB com o RPi: e aqui como fazer a mesma coisa (ou quase) com o Raspberry Pi.

Comentários

Postagens mais visitadas deste blog

Tá na hora de piscar LEDs de maneira melhorada

LEDs on/off com PHP, Python e RPi

PagSeguro e PHP - Usando a tela do PagSeguro (checkout redirect)