Mostrando postagens com marcador LED. Mostrar todas as postagens
Mostrando postagens com marcador LED. Mostrar todas as postagens

sábado, 15 de agosto de 2015

Luminária de LED impressa em ABS

A luminária foi impressa em uma Prusa i3 utilizando filamento ABS branco.
O preenchimento foi deixado em 0% para que ao iluminar o seu interior a luz dos LEDs chegassem em todas as suas partes.


Posteriormente utilizei um Arduino Uno para controlar os LEDs de cores Amarelo, Verde, Vermelho e Branco para que estes fossem ligados ou desligados dependendo do valor lido por um sensor de distância ultrassom. Para controlar o "fading" dos LEDs independemente foi utilizado um TLC5940 e o exemplo incluído em sua biblioteca como base para o sketch no arduino.



domingo, 7 de julho de 2013

TLC5940 + Arduino: Controlando16 LEDs separadamente (independentes)

Utilizando um TLC5940 você pode controlar 16 leds utilizando apenas 5 saídas digitais do Arduino. Ainda é possivel ligar mais TLCs em série, multiplicando o número de saídas para cada IC adicionado.

O exemplo executado no vídeo e descrito com o código fonte abaixo é o "BasicUse" incluído com a library (disponível em https://code.google.com/p/tlc5940arduino/).

Material utilizado:




Faça o download da library do TLC5490 (em: https://code.google.com/p/tlc5940arduino/) e instale utilizando a IDE do Arduino.
Reinicie o programa e verá que já estarão disponíveis outros exemplos clicando em File / Examples / Tlc5490.
A ligação do TLC ao arduino deve ser feita de acordo com as instruções incluídas, mas para facilitar eu fiz esta imagem (utilizando o programa Frizing: http://fritzing.org/download/)

clique na imagem abaixo para ter uma visão das ligações:

O código fonte do exemplo BasicUse tem bastante comentários (em inglês), mas eu criei mais alguns em português para facilitar o entendimento das ações executadas em cada passo. As linhas acabaram ficando um pouco longas para serem mostradas na pequena janela de texto abaixo, mas se você colar na janela do IDE do Arduino e maximizar, poderá ler confortavelmente todos os comentários.
O comando principal desta biblioteca é o "Tlc.set(channel (0-15), value (0-4095))" onde channel é o número do pino para qual você está enviando o comando (de 0 a 15 se for apenas um TLC), e value é o valor enviado à aquele pino. No cado dos LEDs, um valor de 0 seria totalmente apagado e 4095 é aceso com o brilho máximo.
Note que valores intermediários entre 0 e 4095 fazem a dimerização (fade) do led, portanto não é necessário (nem permitido) a utilização de analogWrite() para fazer PWM destes pinos.

Creio que o código está bem comentado, qualquer dúvida utilize os comentários do blog!

 código fonte: copie e cole no IDE do Arduino!


segunda-feira, 13 de maio de 2013




Primeiro teste seguindo em parte o tutorial do Firefly. As ações experimentadas foram:
  • Modificar o raio dos círculos (geometria gerada no Grasshopper e visualizada no Rhino) utilizando um potenciômetro ligado ao Arduino.
  • Através de parâmetros no Grasshopper/Firefly, fazer com que um LED gradualmente acenda e apague.
  • Fazer com que outro led acenda quando a letra "L" do teclado é pressionada.
  • Controlar a inclinação do modelo físico (torre) utilizando 2 servos controlados através de parâmetros na tela do Grasshopper.

quinta-feira, 3 de janeiro de 2013

Primeiro teste com LDR - Resistor dependente de luz


Após fazer compras de mais alguns componentes eletrônicos, resolvi experimentar com um LDR (Light Dependent Resistor).

O que é LDR: É um resistor que varia a sua resistência de acordo com a quantidade de luz que recebe. Esta resistência pode variar de 1M ohms na escuridão, até 100 ohms quando sob a luz.forte.

Como funciona o circuito: O circuito e código fonte foram baseados no texto disponível no site [ http://www.hobbytronics.co.uk/arduino-tutorial8-nightlight ] em que é utilizado o fenômeno de divisão de tensão ( ver mais neste texto sobre divisor de tensão ).

Ao diminuir a luz no ambiente a resistência no LDR aumenta, diminuindo a tensão no pino A0 (analógico) do Arduino. O valor de tensão é transformado em um valor numérico que vai de 0 a 1024. No algorítmo ainda está incluído instruções para que quando o valor numérico recebido por esse pino baixe de um determinado valor (no caso 400), o led ligado ao pino 13 deve ser aceso.

Esse circuíto é bem simples, acho que apenas de ver o vídeo qualquer um é capaz de reproduzir. Ainda mais se acessar os links indicados neste post como referência. Os resistores utilizados foram de 4k7 ohms para o divisor de tensão e 1k ohms para o LED.

Abaixo estão o vídeo do modelo em ação e em seguida o código fonte utilizado.




código fonte:



segunda-feira, 31 de dezembro de 2012

Matriz de LED 3x3 e sensor ultrasom de distância

Utilizando a técnica chamada multiplexing é possivel controlar cada LED de uma matriz individualmente. Existem vários textos e vídeos na internet que podem explicar bem melhor do que eu, mas indico um que achei que foi bem didático:


A princípio montei a matriz 3x3 de Leds na protoboard e conectei ao Arduino fazendo com que piscassem em sequencia. Em seguida adicionei um sensor ultra-som de distância e programei para que a coluna iluminada fosse correspondente à distância do sensor à um objeto.
Como pode ser observado posteriormente nas linhas de código, quando a distância é < 30cm a "linha1" fica ativa (a linha mais proxima do sensor no vídeo), quando a distância < 60cm a "linha2" (meio) é a que se acende, e em outras condições (quando a distância for maior ou igual a 60cm) a linha que fica acesa é a mais afastada do sensor ultra-som.


  • Para não causar confusão: A matriz 3x3 deve ser visualizada como se as linhas de força da protoboard ( + e - ) fossem linhas verticais, e portanto, as colunas da matriz são paralelas a essas. As linhas não são perpendiculares às colunas apenas por uma questão construtiva, para facilitar a montagem sem o uso de soldas, e é pelo mesmo motivo que o afastamento entre as linhas é maior do que o entre as colunas.

Abaixo está o vídeo do experimento e em seguida o codigo fonte utilizado para programar o Arduino.


Um passo seguinte seria utilizar um segundo sensor de outra natureza, como temperatura ou iluminação, para controlar a coluna.
Dois potenciômetros poderiam ser utilizados também para controlar Linha x Coluna, mas não seria tão interessante por depender totalmente da ação do usuário...

código fonte: