Se preferir assista no Youtube
Um irmão me propôs montar um sistema de luz rítmica com o arduino.
Como nunca fiz nada do tipo fui pesquisar e encontrei alguma coisa que não usava microcontrolador mas um transformador ligado à saída de um amplificador como casador de impedância, uma etapa pré-amplificadora e SCRs ou TRIACs para acionar lâmpadas incandescentes para 110v ou 220v. Pensei então em usar um sensor de som no arduino e uma etapa de potência com TRIACs, SCRs ou Relés. Por conveniência escolhi usar relés que apesar de ter a limitação ser ON/OFF, não há possibilidade de controle da intensidade luminosa como nos TRIACs e SCRs e de seus contatos sofrerem desgaste com operações repetitivas, funcionaram satisfatoriamente.
O Sensor
Como nunca fiz nada do tipo fui pesquisar e encontrei alguma coisa que não usava microcontrolador mas um transformador ligado à saída de um amplificador como casador de impedância, uma etapa pré-amplificadora e SCRs ou TRIACs para acionar lâmpadas incandescentes para 110v ou 220v. Pensei então em usar um sensor de som no arduino e uma etapa de potência com TRIACs, SCRs ou Relés. Por conveniência escolhi usar relés que apesar de ter a limitação ser ON/OFF, não há possibilidade de controle da intensidade luminosa como nos TRIACs e SCRs e de seus contatos sofrerem desgaste com operações repetitivas, funcionaram satisfatoriamente.
O Sensor
Existe à venda o Arduino sound sensor, mas decidi adaptar um sensor simples e barato publicado pela editora Saber no livro Eletrônico Básica para Mecatrônica de Newton C. Braga. O circuito pode não ter a sensibilidade do sensor comercial, mas, atendeu muito bem ao propósito proposto. O microfone usado é de eletreto.
O Circuito
ATENÇÃO: TENHA MUITO CUIDADO AO UTILIZAR TENSÃO DA REDE ALTERNADA 110V OU 220V. PARA ESSAS TENSÕES CHOQUES PODEM SER, NO MÍNIMO, DESAGRADAVÉIS.
As lâmpadas usadas foram de um pisca-pisca comum com 100 lâmpadas e 8 funções. Ele tem quatro conjuntos de lâmpadas, cada conjunto ligado em série. A centralzinha de controle foi removida ficando cinco fios um de cada conjunto de lâmpada que foram ligados a cada um dos contatos normalmente abertos de quatro relés e, um fio comum ligado diretamente à rede 110V. O transistores usados para acionar os relés são BC548 e os resistores de 1k.
A lógica é bem simples. O sensor é lido pelo arduino, através da entrada analógica, 0 (zero) que verifica três níveis de sinal e chama a função acende que gera um byte aleatório e usa os quatro primeiros bits para aciona as lâmpadas através dos relés isto é, bit 1 liga o relé correspondente bit 0 desliga o relé correspondente o que, por sua vez, acende ou apaga as lâmpadas respectivamente. Para cada nível de sinal é aplicado um delay, que determina quanto tempo a lâmpadas ficarão no estado atual antes de uma próxima leitura do sensor. No caso da faixa de mais alta a função acende é chamada duas vezes para causar um efeito diferenciado.
O código, que também é muito simples, pode ser visto abaixo.
int soundPin = 0;
int lmpPin4 = 13;
int lmpPin3 = 12;
int lmpPin2 = 11;
int lmpPin1 = 10;
int val, val2;
byte Seq =0;
void setup()
{
pinMode(soundPin, INPUT);
pinMode(lmpPin4, OUTPUT);
pinMode(lmpPin3, OUTPUT);
pinMode(lmpPin2, OUTPUT);
pinMode(lmpPin1, OUTPUT);
}
void loop()
{
val2 = analogRead(soundPin); //le o sensor de som
val = map( val2, 0,1024,0,200); //muda de escala de 0-1024 para 0-200
if(val > 70 )
{
acende();
delay(100);
acende();
delay(100);
}
else if(val > 40 )
{
acende();
delay(200);
}
else if(val > 30 ) // nivel minimo valores menores são desprezados
{
acende();
delay(300);
}
}
void acende()
{
Seq = random(1,0xF); // gera um byte aleatorio e armazena em Seq
if(bitRead(Seq,0 )==0)
digitalWrite(lmpPin1, LOW);
else
digitalWrite(lmpPin1, HIGH);
if(bitRead(Seq,1)==0)
digitalWrite(lmpPin2, LOW);
else
digitalWrite(lmpPin2, HIGH);
if(bitRead(Seq,2)==0)
digitalWrite(lmpPin3, LOW);
else
digitalWrite(lmpPin3, HIGH);
if(bitRead(Seq,3)==0)
digitalWrite(lmpPin4, LOW);
else
digitalWrite(lmpPin4, HIGH);
}
Para baixar o código fonte clique aqui.
Para baixar o layout da placa do sensor, feito no expressPCB clique aqui.
Para baixar o layout da placa dos relés, feito no expressPCB clique aqui.
Obs.: Os arquivos estão compactados com o 7zip.
Neste site você pode baixar gratuitamente o expressPCB.
Esta é apenas uma aplicação simples para o sensor de som. Usando a criatividade é possível implementar muita coisa com ele.
fala Jr. Gostaria de saber como faço pra o sensor mandar o sinal pra 9 portas pois estou usando o sensor no cubo de led, e preciso que as 9 colunas acionem... se puder me ajudar eu agradeço...
ResponderExcluirOlá Alex! Desculpe a demora. Você pode, por exemplo, usar o sinal do sensor para gerar 2 bytes aleatórios casa vez que uma camada é acionada usando 9 bits para definir quais leds serão acesos. Outra opção seria usar o sensor para selecionar o efeito mostrado no cubo e a velocidade com que ele é executado.
ResponderExcluirAmigo o arquivo do código fonte não está mais disponível. =/
ResponderExcluir