Sommario:

Luci delle fate musicali: 6 passaggi (con immagini)
Luci delle fate musicali: 6 passaggi (con immagini)

Video: Luci delle fate musicali: 6 passaggi (con immagini)

Video: Luci delle fate musicali: 6 passaggi (con immagini)
Video: Valuto i vostri disegni, singolo Pt: 6 2024, Luglio
Anonim
Image
Image

Di IanCummingFollow Altro dell'autore:

Intervallometro Arduino
Intervallometro Arduino
Non solo un timer
Non solo un timer
Non solo un timer
Non solo un timer
Termometro a un pixel
Termometro a un pixel
Termometro a un pixel
Termometro a un pixel

A proposito: mi piace fare cose dai razzi all'elettronica. Maggiori informazioni su IanCumming »

Benvenuti a tutti

È quasi il periodo delle feste e molti negozi hanno iniziato a mettere in mostra le loro decorazioni festive, ho pensato che fosse il momento giusto per costruire delle lucine musicali!

Passaggio 1: parti utilizzate

Parti usate
Parti usate

Userò quanto segue:

  • 12 LED
  • 12 resistori di limitazione di corrente
  • 1 ULN 2803 Array di transistor Darlington
  • Alcuni ponticelli
  • Un altoparlante piezo
  • Un tagliere e
  • un Arduino
  • Per realizzare la stringa di lucine ho usato 5 fili di un cavo Ethernet

Passaggio 2: il codice

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000ms byte nrLEDS = 4; // 4 LED di base, puoi aggiungere molti LED a byte paralleli = { 3, 4, 5, 6}; byte altoparlante = 11; byte patternLength = 64; // pattern Length byte songLength = 51; const byte song = { // Jingle Bells Dati 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}; // La struttura è il numero della nota quindi // NoteLength nel modello di byte const dell'ottavo = { //Pattern Data 0b0001, 0b0010, 0b0100, 0b1000, //I bit corrispondono ai LED nell'array 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b001,011, 0 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b 0b1100, 001, 0b, 0011 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, };

Prima di tutto dichiaro le mie variabili, quelle interessanti sono Song e Pattern.

  • La canzone memorizza la melodia; in questo caso si tratta di Jingle bells.
  • Il modello memorizza le posizioni di attivazione e disattivazione nei bit dei valori nell'array.

Funzioni personalizzate

//FUNZIONI int noteToHz(int note) { //Converti una nota n. a Frequenza float freq = 440 * (pow(1.059463094359, nota-21)); // -21 ti dà la nota 1 a C3 (Penso) return int(freq); // I risultati sono precisi a 1hz } void lightLEDs(byte PORT_X) { // Controlla lo stato del LED per (int q = 0;q

Le due funzioni che ho faranno quanto segue:

  • Calcola la frequenza per la funzione di tono nel loop
  • accendere o spegnere i LED a seconda del valore passato alla funzione

Funzione di configurazione

void setup() { //setup pin OUTPUT pinMode(speaker, OUTPUT); for(int t = 0; t < nrLEDS; t++){ pinMode(leds[t], OUTPUT); } }

Nella funzione di setup ho impostato i pin richiesti su OUTPUT.

Funzione loop

void loop() { // Music Loop for (int t = 0; t < songLength; t++) { // Note, lunghezza e suona la melodia int note = noteToHz(song[t * 2]); int lunghezza = ((canzone[(t * 2)+1] * barTime) / 8); tono(altoparlante, nota, lunghezza - 50); // Luci lampeggianti! lightLEDs(pattern[t % patternLength]); ritardo (lunghezza); } // Silence Loop int randomSilence = random(1000, 5000); per (int t = 0;t

Ho 2 loop nella funzione Main Loop. Un loop di una canzone e un loop di silenzio

Il loop della canzone leggerà i dati dall'array della canzone, suonerà la nota usando la funzione tono

Il loop della canzone sarà,

  • Leggi i dati dall'array di canzoni,
  • Suona la nota usando la funzione tono quindi
  • Accendi i LED, leggendo l'array di pattern.

Nel ciclo del silenzio

solo i LED sono accesi

Collega Arduino e carica il codice. (Poi scollegalo)

Passaggio 3: avvio del circuito

Avvio del circuito
Avvio del circuito
Avvio del circuito
Avvio del circuito
Avvio del circuito
Avvio del circuito
Avvio del circuito
Avvio del circuito

Inizierò con la serie di luci

  • Ho usato il filo di un cavo Ethernet e ho saldato 3 LED in parallelo quattro volte, assicurandomi di distanziare i LED in modo uniforme su circa 2 metri
  • Ho saldato l'anodo di ogni led ad un unico filo.
  • Poi il catodo di ogni led a 4 fili separati. Con un resistore ovviamente
  • Ho ripetuto questo processo 3 volte per ottenere una stringa di 12 LED e ho inserito i pin di intestazione all'estremità dei 5 fili

Collegare i binari positivo e di terra alla breadboard

Passaggio 4: ULN2803

L'ULN2803
L'ULN2803
L'ULN2803
L'ULN2803
L'ULN2803
L'ULN2803

Posiziona il chip ULN2308 sulla breadboard

L'ULN2308 è un chip array di transistor; dalla scheda tecnica posso vedere

  • Quel pin 1 è un ingresso che porta il pin 18 "ON"
  • Il pin 2 accende il 17. Eccetera.
  • Il pin 9 è a terra
  • Collegare il pin 9 del chip al binario di terra
  • Collega il binario positivo a una morsettiera, una striscia sopra il pin 18. (Vedrai perché in un minuto)
  • Collega il pin 1 del chip al pin 3 di Arduino
  • 2 va a 4
  • 3 del chip va a 5 e
  • 4 va al pin 6 di Arduino
  • Posiziona la stringa di LED sulla breadboard. Dove il filo dell'anodo comune è collegato alla striscia collegata a 5 volt. Il resto dei pin della luce fatata dovrebbe andare al pin 18, 17, 16 e 15 del chip.

Passaggio 5: aggiunta di suoni

Aggiunta di suoni
Aggiunta di suoni
  • Collegare l'altoparlante piezo tra 2 morsettiere
  • Collegare il polo negativo dell'elemento Piezo a massa e
  • L'altra estremità dell'altoparlante al pin 11

Passaggio 6: conclusione

Conclusione
Conclusione
Conclusione
Conclusione

Ho una serie di luci che suoneranno casualmente dei jingle bells per ricordarmi che è la stagione delle feste.

Consigliato: