Como fazer um LED piscar no ritmo da música 62

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 de obter a versão definitiva do 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 mostro ali no código.

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.

Faça seu comentário

Acesse sua conta e participe

62 Comentários

  1. Boa noite, gostaria de saber se posso controlar a cor desse led através do ethernet shield

  2. Como faço com uma fita de led inderessavel?? Tenho 120 leds em 2 metros…o que preciso comprar.. me ensina aí.. obrigado

  3. Como faço com uma fita de led inderessavel?? Tenho 120 leds em 2 metros…

  4. Boa noite, funcionou tudo certo, mas o meu LED 2 do ky-038 que regula a sensibilidade não esta apagando como mostra o vídeo, deveria vibrar junto com a régua. Já fiz de tudo para tentar achar o ponto perfeito e ainda não acho.

    1. Olá Vithor,

      A régua de LED está vibrando normalmente? Ou fica fixa como o LED 2?

      Abraços!

      Vinícius – Equipe FilipeFlop

      1. Consegui fazer, não tinha visto sua resposta. Mas muito obrigado

        1. Olá Vithor,

          Disponha! 🙂

          Abraços!
          Vinícius – Equipe FilipeFlop

  5. Fiz conforme o tutorial, porém botei alimentação externa na fita led pois ela é 12 volts.
    Ela liga normal fica com todos LED’s ligados, quando aciono o Arduino, a fita fica piscando de forma aleatória várias cores diferentes, não tem variação, testei 2 sensores de som diferentes mas o resultado é o mesmo, testei mexer na sensibilidade mas mesmo no mínimo é o mesmo…
    Tens ideia de onde posso estar errando?

    achei um tutorial para testar se o sensor está funcionando de forma correta, mas só vou poder testar mais perto do final de semana…

    1. Olá Bernardo,

      As réguas de LED do projeto acima são de 4 a 7 volts.

      Caso esteja utilizando uma fita diferente, é preciso ver as especificações dela, pode ser que ela espere um sinal de 12 volts.
      Como o Arduino trabalha com 5 volts, pode ser por isso que a fita se comporta aleatoriamente.

      Também é possível que os comandos da biblioteca utilizada não sejam compatíveis com a fita de LED, se for uma diferente da usada no projeto.

      Abraços!
      Vinícius – Equipe FilipeFlop

  6. Boa tarde, como faço para emendar as duas réguas de led?

    1. Olá Vithor,

      Para emendar as duas réguas, você deve conectar os pinos da seguinte forma:

      GND -> GND
      DOUT -> DIN
      4-7VDC -> 4-7VDC
      GND -> GND

      Se quiser, pode usar fios para auxiliar nas soldas, unir diretamente com solda, ou colocar conectores nas réguas, fica a seu critério.

      Abraços!
      Vinícius – Equipe FilipeFlop

  7. Consigo trocar o sensor de som por uma entrada P2?

    1. Olá Bernardo,

      Utilizando o código do post não é possível. O sensor de som possui uma saída analógica de 0V a 5V proporcional ao som detectado. Já uma saída P2 funciona de maneira diferente.

      Abraço!
      Rosana – Equipe FilipeFlop

  8. comprei o Kit Fita de LED RGB 10m que vende no ff, mas a fita de led ao inves de ser GND/DOUT/VDC/GND ela controla as cores .. VDC (+12V)/R/G/B..
    para que possa usar o recurso musical, onde controlo o DCOUT, endereço as 3 cores (R/G/B) ou preciso fazer outra coisa?

  9. Boa tarde, como faço para ter varias cores a dor ao som da musica.
    Obrigado.

  10. Olá André, parabéns pelo trabalho.
    Gostaria de executar um projeto mas estou tendo dificuldades. Se você ajudar meu contato é ulysses1905@yahoo.com.br.
    Você faz projeto por encomenda?

  11. Olá André, parabéns pelo trabalho.
    Gostaria de executar um projeto mas estou tendo dificuldades. Se você ajudar meu contato é ulysses@yahoo.com.br.
    Você faz projeto por encomenda?

  12. Olá, sou iniciante na eletrônica. Funcionou tudo certinho mas queria ajustar a sensibilidade. Queria que ficasse bem fraco a luz quando não tivesse som e piscasse bem forte junto da musica.

  13. Ola, boa tarde, gostei muito do trabalho, poderia me tirar uma duvida?! , gostaria de saber se e possível usar um amplificador PAM8610 (para reproduzir algo no mesmo dispositivo que eu usar aquela fita de led de 12v) ainda terei que usar esse Sensor de som KY-038 ?
    fico grato pela atenção.

    1. Klau,

      Acaba sendo necessário, pois você precisa identificar o som e mandá-lo para a placa.

      Abraços!
      Diogo – Equipe FilipeFlop

  14. Muito show.
    É possível fazer vários leds piscarem?

    1. Samuel,

      Você se refere a utilizar outras plaquinhas LED dessas piscarem? Sim, é possível 🙂

      Abraços!
      Diogo – Equipe FilipeFlop

  15. Alguém perto de São Paulo que poderia montar esse sistema pra mim ?

  16. Se eu quisesse mudar a fita de leds por varios leds oq eu deveria fzer?

    1. Marcos,

      Você teria que provavelmente modificar o código inteiro, tendo em vista que ele utiliza a biblioteca para a fita de LEDs.

      Abraços!
      Diogo – Equipe FilipeFlop

  17. Onde consigo alguém que monte esse sistema pra mim ? Sou de Guararema SP o email é viverguararema@gmail.com

  18. Quero saber como faço para ligar uma fita de Led branca de 12v na batida da música meu módulo e de 1500 rms qual resistor colocar

    1. Olá, João Carlos,

      Qual módulo você está utilizando?

      Abraços!
      Diogo – Equipe FilipeFlop

  19. Bom dia, André.

    Cara, teu fiz uma caixa de som e coloquei um módulo digital pequeno. Instalei um fita de LED e gostaria que ele tocasse no ritmo da música, inclusive já tenho a placa, só que não consigo mais fazer com que ela pisque depois que coloquei esse módulo digital, você tem alguma sugestão?

    1. Olá Daniel,

      Que módulo você está usando?

      Abraço!
      Rosana – Equipe FilipeFlop

  20. Olá fiz todas as ligações mas meu led não acendeu, poderia me ajudar

    1. Olá Rayanne!

      Você já mexeu com Arduino? Se esse é seu primeiro contato sugiro seguir esse tutorial antes: https://www.filipeflop.com/blog/primeiros-passos-com-arduino/
      Qualquer coisa entre novamente em contato com a gente!

      Abraço!
      Rosana – Equipe FilipeFlop

  21. Boa tarde! Ficou muito legal!
    Teria como fazer 12 fresnel com halogenas de 1000W piscar dessa mesma maneira?

    1. Olá Tiago,

      Não recomendo. Pode estragar as halogenas.

      Abraço!
      Rosana – Equipe FilipeFlop

  22. Eu consigo usar esse circuito para controlar lâmpadas coloridas em uma tensão maior ?

    1. Olá Tom,

      Para acionar uma lâmpada LED utilizando esse circuito você deverá utilizar um relé.

      Abraços,
      Rosana – Equipe FilipeFlop

  23. bom dia como meto os leds só a acender só quando o sensor detectar a música e também como por a trocar de cores.

    obrigado abraço

    1. Olá Cristiano,

      Para mudar a cor dos LEDs, você precisa alterar os valores da linha 35 do código.

      pixels.setPixelColor(i,pixels.Color(r, g, b));

      Exemplo:
      pixels.setPixelColor(i,pixels.Color(255, 0, 0)); -> você terá o cor vermelha
      pixels.setPixelColor(i,pixels.Color(0, 255, 0)); -> você terá o cor verde
      pixels.setPixelColor(i,pixels.Color(0, 0, 255)); -> você terá o cor azul

      Acredito que isso te ajude.
      Abraços,

      Rosana – Equipe FilipeFlop

      1. Boa tarde ajudou bastante queria saber se dava para quando o sensor não captar som os LEDs se desligasse

        1. Olá,

          Você pode dar um comando “if” para que os LEDs não acendam quando o valor detectado pelo sensor for menor que um valor estipulado.

          Abraço,
          Rosana – Equipe FilipeFlop

  24. olá, eu gostei do seu projeto, porém eu tenho uma dúvida, seria possível fazer com que os leds tivessem uma mudança de cor conforme a altura da música? por exemplo, a música está baixa, os leds estão verdes, a música fica um pouco mais alta e os leds ficam amarelos, depois laranjas e quando o som estiver muito alto fique vermelho.
    seria possível fazer? desde já agradeço.

    1. Olá Habner!

      É possível sim, teria que colocar uma estrutura com ifs, tipo:
      if(som >= 0 )…

      Parecido com o que tem neste post:
      https://www.filipeflop.com/blog/medidor-de-indice-uv-com-arduino/

      Abraços!

      André – Equipe FilipeFlop

      1. Muito Obrigado pela dica, irei trabalhar em cima do código 🙂

  25. Boa noite,

    Primeiro, gostaria de agradecer pelo seu trabalho, gostaria tirar uma dúvida, que é o uso de uma fita led SMD 5050 de 5M que vai utilizar uma fonte de 7,5A (se o calculo estiver correto), porém, quero usar esse led em um arduino nano e alimentar esse Arduíno com a fonte de 7,5A com um relé de 10A e 250V AC e 30V DC para entrada da fonte e saída de 10A e 125V AC / 28V DC para alimentar a placa, fita e componente que identifica som. Então a dúvida é, se esse circuito que descrevi vai alimentar a placa com a fita e o módulo detector de som?

    Obrigado!

    1. Olá Rodrigo!

      Não entendi muito bem a função do relé nesse circuito. Mas a princípio é possível alimentar todo mundo com essa tensão.

      Fico bastante feliz que gostou do post 🙂

      Abraços!

      André – Equipe FilipeFlop

  26. “É 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.”
    Poderia explicar com outras palavras??

    1. Olá!

      Você tem que mexer nessa seção do código e ajustar de forma com que melhor se adeque:
      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

      Você pode tentar vários números para dividir a variável “som” e passar para a brilho.

      Abraços!

      André – Equipe FilipeFlop

  27. O vídeo está fora do ar, existe outro link?

  28. Ola, boa noite, ótimo trabalho, gostaria de tirar uma duvida! , gostaria de saber se e possível fazer um emissor de áudio MP3 por Bluetooth para ser recebido o mesmo áudio em outro dispositivo?

    1. Olá Paulo!

      Obrigado pelos elogios! Foi um projeto que curti bastante de fazer.

      Nesse post falamos sobre receber um áudio bluetooth:
      https://www.filipeflop.com/blog/caixa-de-som-amplificador-de-audio-bluetooth/

      Abraços!

      André – Equipe FilipeFlop

  29. Amigo, eu conseguiria usar essa logica em 15m de fitas led ws2812 ou w2812ws??

    1. Olá!

      Consegue, sim. A lógica é a mesma, o acionamento só que é diferente.

      Abraços!

      André – Equipe FilipeFlop

  30. Bom dia !
    Se eu usar o sensor de som KY-038, em um cubo 4x4x4 com arduino uno consigo fazer que o cubo acompanhe uma música ?

    1. Olá Edvaldo!

      O cubo é feito de LEDs?

      Basta alterar a intensidade da luz desse cubo de acordo com a intensidade percebida com o sensor de som.

      Abraços!

      André – Equipe FilipeFlop

  31. Boa noite.

    Duas perguntas rápidas. (sou novato de tudo)

    Primeira. O que é essa peça/mesa b_ranca onde tudo está conectado?

    segunda. Posso utilizar a quantidade/metros de fita de led que quiser?

    Vlw

    1. Olá Adalberto!

      Essa peça se chama protoboard. Você conecta os cabos à ela.

      Pode usar a quantidade que a sua placa suportar, sem problemas.

      Abraços!

      André – Equipe FilipeFlop

  32. Seria possível fazer um exemplo onde as cores mudam?? de acordo com a som?

    1. Olá Alvaro!

      É mais tranquilo fazer do que parece 🙂

      Nesse trecho de código, definimos a cor dos LEDs:
      ” pixels.setPixelColor(i,pixels.Color(0, 0, 255));”
      Ali a ordem é RGB ( vermelho, verde e azul). Como queria que ficasse azul, coloquei o máximo no azul e zero nos outros.

      Basta alterar o código para a cor que você deseja.

      Quando você fizer, compartilha conosco? Que tal postar no nosso fórum?
      Lá você pode tirar algumas dúvidas e postar seus projetos. Colaborar e aproveitar a comunidade:

      https://www.filipeflop.com/forum/

      Abraços!

      André – Equipe FilipeFlop

  33. Pode ser usado a fita de led normal também?

    1. Olá Neudivan!

      É possível sim! O segredo está em usar a variável lida pelo sensor em intensidade nos LEDs.

      Numa fita norma essa intensidade é controlada pelo PWM.

      Abraços!

      André – Equipe FilipeFlop

  34. Olá boa tarde, ótimo trabalho, já cheguei a fazer um led que ascende conforme a musica, mas não utilizei Arduíno.
    Eu tentei mas com fracasso fazer um led rítmico estilo estéreo, usando um fone por exemplo, as vezes uma batida da musica fica do lado esquerdo enquanto o direito reproduz o complemento da música.
    Conseguiriam fazer um estilo estéreo ?

    1. Olá Alexandre!

      Como nós captamos o som com um sensor bem simples, não é possível fazer essa diferenciação com ele. Acredito que o ideal seria o som “passar” pelo arduino antes de ir para as caixas.

      Achei bem interessante a sua ideia e seria bem legal ver em nosso fórum. Você poderia postar?

      https://www.filipeflop.com/forum/

      Lá você pode tirar algumas dúvidas e postar seus projetos. Colaborar e aproveitar a comunidade!

      Abraços!

      André – Equipe FilipeFlop