Pular para o conteúdo principal

7) Luminária RGB

 


Decorar seu ambiente de trabalho pode ser uma das coisas mais difíceis de serem bem cumpridas, afinal, você vai ver sua decoração praticamente todo dia. A ideia de decorar seu ambiente com luminárias de desenhos customizados e luzes variadas me veio a mente e me convenceu que é uma das melhores formas de decorar qualquer lugar. O projeto é bem simples, e faz uso de uma cortadora a laser e de um LED multicores, junto de um microcontrolador pequeno para implementar a variação das cores. O resultado foi muito satisfatório, apesar de haver muito espaço para melhoria do projeto ainda.
A luminária é montada com quatro lados cortados na cortadora a laser, com os cortes formando desenhos feitos em qualquer software de CAD, no meu caso utilizei o Autocad padrão. A luz RGB então ilumina por dentro os cortes e projeta a imagem para o ambiente (ao menos essa era a ideia, faltou intensidade do LED para iluminar tanto). Abaixo dá pra ver os desenhos que eu fiz e como ficaram as peças da luminária. Também desenhei uma peça no topo que fixa todos os lados e dá suporte para pendurar a luminária e também pendurar o circuito com o controlador lá dentro.



Planejei o circuito para ocupar o menor espaço possível, com a menor quantidade de componentes. Cheguei em uma placa de 2,5x2,5cm, de forma que quatro placas podem ser tiradas de uma 5x5cm. O circuito é bastante simples e utiliza somente do PIC 12F629A, de um Led RGB, três resistores para cada alimentação das cores e um resistor de 10k para conectar o Master Clear do PIC no positivo. Também utilizei um borne para conectar a alimentação de 5V da placa.




Com relação ao código utilizado no PIC, como o microcontrolador não possui saída PWM utilizei uma aproximação de PWM através de delays alternados fazendo o brilho entre duas cores variar, e assim criando um efeito pulsante.

#include <12F629.H>
#fuses HS,NOPROTECT,NOBROWNOUT,NOWDT,NOPUT
#use delay(INTERNAL=4M)
#define blue PIN_A0
#define green PIN_A1
#define red PIN_A2

int16 a = 1000;
int16 b = 0;
int16 c = 100;
int16 i = 500;
int16 j = 0;

void main()
{
set_tris_a(0b001000);
output_a(0);
output_high(red);
while (1)
{
while (a > 350)
{
 while (i < 15)
 {
  output_high(red);
  output_high(blue);
  delay_us(a);
  output_low(red);
  delay_us(b);
  output_low(blue);
  delay_us(c);
  i = i+1;
 }
 a = a-7;
 b = b-2;
 c = c+2;
 i = 0;
}
while (a < 700)
{
 while (i < 15)
 {
  output_high(red);
  output_high(blue);
  delay_us(a);
  output_low(red);
  delay_us(b);
  output_low(blue);
  delay_us(c);
  i = i+1;
 }
 a = a+7;
 b = b+2;
 c = c+2;
 i = 0;
}

}
}





Comentários

Postagens mais visitadas deste blog

Tutorial: PCB pelo método fotográfico

Existem diferentes formas de se fazer uma placa de circuito. O método normalmente utilizado pelos iniciantes é desenhando o circuito a mão na placa através de uma caneta permanente. Apesar desse método ser extremamente consistente, isto é, dificilmente as trilhas apresentarão falhas, ele não permite circuitos complexos e bem acabados. Para uma maior complexidade, é necessário montar o  circuito em algum software e imprimi-lo. O desafio, no entanto, é passar do circuito impresso para a placa, formando assim os famosos PCB's (Printed Circuit Board). Optei por investir no método fotográfico, que depois de alguns meses e muitas tentativas, finalmente valeu a pena. Com ele dá para fazer placas dupla face e com mascara de solda, como demonstrarei a seguir: Materiais fundamentais para esse método: Tinta fotossensível; Fotolito ou papel vegetal; Luz negra; Revelador (barrilha/carbonato de sódio); Removedor (soda cáustica). Outros materiais importantes: Secador de cab

Tutorial: Medição de qualquer grandeza com o ICL7107

O ICL7107 é um ci conversor analógico-digital de três dígitos e meio. O que isso significa é que apesar de usar quatro displays, sua escala absoluta de leitura vai de -1999 até 1999. Ele consegue converter sinais analógios de baixa intensidade (escala de mV) nesses três dígitos e meio, o que permite a leitura de qualquer grandeza que faça variar de forma linear tensão, seja através de um sensor ou não. Para medição de grandezas diretamente delas (sem intermédio de sensores), como tensão, corrente, resistência, etc, temos a seguinte configuração de circuito: Temos duas variáveis de ajuste, uma dada pelo divisor de tensão na entrada e outra dada pela tensão no terminal 36. Essas variáveis nos permite manipular a escala de leitura. Vamos considerar a escala inicial de leitura como sem nenhuma divisão de tensão na entrada e 100mV no terminal 36. Nesse caso, podemos ler de -199,9mV até 199,9mV, traduzidos nos displays como -1999 até 1999. Observe que tudo que precisa

2) Contador de Milênios v1 (relógio digital)

Existem diferentes formas de se montar um relógio digital. A mais didática usa do ci (circuito integrado) 555, que pode ser configurado para gerar um pulso elétrico de um em um segundo (1 Hz). Junto de contadores e decodificadores, esse pulso é transmitido para displays de 7 segmentos que marcam a hora. A desvantagem desse circuito é a quantidade de ci's e a quantidade de ligações necessárias. Outra forma de se montar um relógio é através dos PIC's (Programmable Intelligent Computer), que são uma família de ci's programáveis. A linguagem de programação pouco importa, contanto que a lógica possa ser traduzida para comandos. Utilizo linguagem C para programar e para passar do computador para o PIC, o gravador K150. Aprendi a gravar aqui  https://www.filipeflop.com/blog/como-utilizar-gravador-de-pic-usb-k150/ . A vantagem de se utilizar um PIC para montar um relógio está em reduzir o tamanho do circuito e atribuir mais funções além de simplesmente contar o tempo,