Índice:

Luzes musicais de fadas: 6 etapas (com imagens)
Luzes musicais de fadas: 6 etapas (com imagens)

Vídeo: Luzes musicais de fadas: 6 etapas (com imagens)

Vídeo: Luzes musicais de fadas: 6 etapas (com imagens)
Vídeo: 23 HORAS De Silêncio Absoluto. Fundo De tela. VIAGEM PELO UNIVERSO 2024, Julho
Anonim
Image
Image

Por IanCummingFollow Mais do autor:

Intervalômetro Arduino
Intervalômetro Arduino
Não apenas um cronômetro de hora
Não apenas um cronômetro de hora
Não apenas um cronômetro de hora
Não apenas um cronômetro de hora
Termômetro de um pixel
Termômetro de um pixel
Termômetro de um pixel
Termômetro de um pixel

Sobre: Gosto de fazer desde foguetes até eletrônicos. Mais sobre IanCumming »

Sejam todos bem-vindos

Está quase na época das festas e várias lojas começaram a lançar suas decorações festivas. Eu pensei que era o momento certo para construir algumas luzes musicais de fadas!

Etapa 1: peças usadas

Peças usadas
Peças usadas

Usarei o seguinte:

  • 12 LEDs
  • 12 resistores limitadores de corrente
  • 1 ULN 2803 Darlington Transistor Array
  • Alguns fios de ligação
  • Um alto-falante piezo
  • Uma placa de ensaio e
  • um Arduino
  • Para fazer o cordão de luzes mágicas, usei 5 fios de um cabo Ethernet

Etapa 2: O Código

// VARS GLOBAL int barTime = 1200; // 8/8 = 1000ms byte nrLEDS = 4; // 4 LEDs básicos, você pode adicionar muitos leds de bytes paralelos = {3, 4, 5, 6}; alto-falante de byte = 11; comprimento do padrão de bytes = 64; // comprimento do padrão byte songLength = 51; música de byte const = {// Jingle Bells Dados 29, 2, 29, 2, 29, 4, 29, 2, 29, 2, 29, 4, 29, 2, 32, 2, 25, 3, 27, 1, 29, 8, 30, 2, 30, 2, 30, 3, 30, 1, 30, 2, 29, 2, 29, 2, 29, 1, 29, 1, 29, 2, 27, 2, 27, 2, 29, 2, 27, 4, 32, 4, 29, 2, 29, 2, 29, 4, 29, 2, 29, 2, 29, 4, 29, 2, 32, 2, 25, 3, 27, 1, 29, 8, 30, 2, 30, 2, 30, 2, 30, 2, 30, 2, 29, 2, 29, 2, 29, 1, 29, 1, 32, 2, 32, 2, 30, 2, 27, 2, 25, 8}; // A estrutura é o número da nota e então // Comprimento da nota no padrão de bytes const do 8º = {// Dados do padrão 0b0001, 0b0010, 0b0100, 0b1000, // Bits corrispond aos Leds na matriz 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b01b, 010b1000b, 010b0110, 010100b, 010b0110, 0101001b0100, 010b0110, 010000b0110, 010100100, 010b011010, 0b1001001001001001010101010, 1010101010, 0b0110, 01010101010, 0b0110b011010, 0101010101010 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Em primeiro lugar, declaro minhas variáveis, as interessantes são Song e Pattern.

  • A música armazena a melodia; neste caso, é Jingle bells.
  • O padrão armazena as posições de ativação e desativação nos bits dos valores na matriz.

Funções Personalizadas

// FUNÇÕES int noteToHz (int note) {// Converter um número de nota. para Freq float freq = 440 * (pow (1.059463094359, nota-21)); // -21 dá a nota 1 em C3 (eu acho) return int (freq); // Os resultados são precisos para 1hz} void lightLEDs (byte PORT_X) {// Estado do LED de controle para (int q = 0; q

As duas funções que tenho farão o seguinte:

  • Calcule a frequência para a função de tom no loop
  • liga ou desliga os LEDs dependendo do valor passado para a função

Função de configuração

void setup () {// configura os pinos de SAÍDA pinMode (alto-falante, SAÍDA); para (int t = 0; t <nrLEDS; t ++) {pinMode (leds [t], SAÍDA); }}

Na função de configuração, defino os pinos necessários para OUTPUT.

Função Loop

void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Notas, duração e tocar a melodia int note = noteToHz (song [t * 2]); comprimento interno = ((música [(t * 2) +1] * barTime) / 8); tom (alto-falante, nota, comprimento - 50); // Luzes piscando! lightLEDs (padrão [t% patternLength]); atraso (comprimento); } // Silence Loop int randomSilence = random (1000, 5000); para (int t = 0; t

Eu tenho 2 loops na função Main Loop. Um loop de música e um loop de silêncio

O loop da música lerá os dados do array da música, toque a nota usando a função de tom

O loop da música vai,

  • Leia os dados da matriz de músicas,
  • Toque a nota usando a função de tom e
  • Acenda a matriz do padrão de leitura dos LEDs.

No ciclo de silêncio

apenas os LEDs estão acesos

Conecte o Arduino e faça upload do código. (Em seguida, desligue-o)

Etapa 3: Iniciando o circuito

Iniciando o circuito
Iniciando o circuito
Iniciando o circuito
Iniciando o circuito
Iniciando o circuito
Iniciando o circuito
Iniciando o circuito
Iniciando o circuito

Vou começar com a corda de luzes

  • Usei o fio de um cabo Ethernet e soldei 3 LEDs em paralelo quatro vezes, certificando-me de espaçar os LEDs uniformemente por cerca de 2 metros
  • Soldei o ânodo de cada um dos condutores em um único fio.
  • Em seguida, o cátodo de cada LED para 4 fios separados. Com um resistor é claro
  • Repeti este processo 3 vezes para obter uma sequência de 12 LEDs e coloquei pinos de cabeçalho na extremidade dos 5 fios

Conecte os trilhos Positivo e de aterramento à placa de ensaio

Etapa 4: O ULN2803

O ULN2803
O ULN2803
O ULN2803
O ULN2803
O ULN2803
O ULN2803

Coloque o chip ULN2308 na placa de ensaio

O ULN2308 é um chip de matriz de transistor; da folha de dados eu posso ver

  • Esse pino 1 é uma entrada que transforma o pino 18 "LIGADO"
  • O pino 2 liga o 17. Etc.
  • Pino 9 é aterrado
  • Conecte o pino 9 do chip ao trilho de aterramento
  • Conecte o trilho positivo a uma tira terminal, uma tira acima do pino 18. (Você verá o porquê em um minuto)
  • Conecte o pino 1 do chip ao pino 3 do Arduino
  • 2 vai para 4
  • 3 do chip vai para 5 e
  • 4 vai para o pino 6 do Arduino
  • Coloque a corda do LED na placa de ensaio. Onde o fio do ânodo comum é conectado à tira conectada a 5 volts. O resto dos pinos de luz de fada devem ir para os pinos 18, 17, 16 e 15 do chip.

Etapa 5: adicionar som

Adicionando Som
Adicionando Som
  • Conecte o alto-falante piezo entre 2 tiras de terminais
  • Conecte o pólo negativo do elemento piezoelétrico ao aterramento e
  • A outra extremidade do alto-falante para o pino 11

Etapa 6: Conclusão

Conclusão
Conclusão
Conclusão
Conclusão

Eu tenho um fio de luz que toca sinos aleatoriamente para me lembrar que é época de festas.

Recomendado: