Como fazer um LED piscar no ritmo da música Deixe um comentário

Certamente você já deve ter visto vídeos de luzes que piscam conforme o ritmo da música. Você sempre quis fazer um? Neste post vamos ensinar a utilizar um sensor de som KY-038 e um Arduino para você aprender como fazer um LED piscar no ritmo da música!

Como fazer um led piscar no ritmo da música

Existem diversas fitas de LEDs endereçáveis que utilizam o mesmo princípio de comunicação. Inclusive, você aprendeu como funciona a sua comunicação no nosso post sobre como fazer um pisca-pisca com Arduino. Dessa forma, somos capazes de criar diversos efeitos com os LEDs.

O Sensor de som KY-038 também já é conhecido do nosso blog. No último post sobre ele, vimos como acender uma lâmpada batendo palmas. Nos projetos anteriores utilizamos somente saída digital desse sensor, dessa vez, porém, vamos trabalhar com a saída analógica dele.

Para este projeto vamos precisar de:

Montagem do circuito

Como vamos utilizar a saída analógica do Sensor de som KY-038, temos que conectá-lo com uma entrada analógica do Arduino. Para acionar a fita de LEDs, utilizamos apenas uma saída digital.

Circuito de como fazer um led piscar no ritmo da música

 

Lógica de como fazer um LED piscar no ritmo da música

Para fazer o LED piscar no ritmo da música, utilizamos a saída analógica do sensor de som como entrada para o programa. O valor obtido definimos como a intensidade do brilho da fita de LEDs. Dessa forma, o LED não fica totalmente apagado e aumenta o brilho conforme aumenta a intensidade da música.

Você vai precisar adicionar a biblioteca da Adafruit para trabalhar com esse tipo de fita de LEDs.

//Programa: Como fazer um LED piscar no ritmo da musica
//Autor: FILIPEFLOP

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif


int nleds = 16; // Numero de LEDs na fita
int pinoLED = 6; // Pino que vai enviar os dados para a fita de LED
int pinosom = A5; // Pino que recebe a saida analogica do sensor de som

Adafruit_NeoPixel pixels=Adafruit_NeoPixel(nleds,pinoLED,NEO_GRB+NEO_KHZ800); // Define com a biblioteca o tipo de fita de LEDs que voce esta usando


void setup()
{
  pixels.begin();
  pixels.setBrightness(0);  
  pinMode(pinosom, INPUT); // Define o pino de entrada do sensor de som
  
}

int brilho =0;

void loop(){
  int som = analogRead(pinosom); //Lê o valor da porta analógica do sensor de som
  brilho = som/2; // Passa o valor lido pelo som para definir o brilho dos LEDs
  //   brilho = map(som,valorsilencio,valormusica,0,240); // Opção para um ajuste mais fino do brilho
  
  pixels.setBrightness(brilho); // Passa para os LEDs o valor da variável brilho
  
  for (int i=0;i<nleds;i++){
    pixels.setPixelColor(i,pixels.Color(0, 0, 255)); // Marca todos os nleds com a cor (azul, neste caso)
  }
  pixels.show();

}

É necessário, antes de funcionar o programa, fazer o ajuste da sensibilidade do sensor de som, de forma com que a luz fique fraca quando a música está baixa mas que fique forte quando a música está mais alta. Uma alternativa para ficar mais fácil de ajustar é dividir a variável som por um valor maior.

Como os LEDs somente mudam a intensidade no ritmo da música, tem-se um efeito fluído. Parece que eles estão até que eles estão dançando. É possível fazer os LEDs apagarem completamente utilizado um if e a porta digital do sensor de som, mas perderia esse efeito mais fluído.

Gostou de aprender como fazer um LED piscar no ritmo da música? Ajude-nos a melhorar o blog comentando abaixo sobre este tutorial. Não se esqueça de visitar o fórum da FILIPEFLOP!

Posts Relacionados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *