Indholdsfortegnelse:

Musical Fairy Lights: 6 trin (med billeder)
Musical Fairy Lights: 6 trin (med billeder)

Video: Musical Fairy Lights: 6 trin (med billeder)

Video: Musical Fairy Lights: 6 trin (med billeder)
Video: The Expert (Short Comedy Sketch) 2024, Juli
Anonim
Image
Image

Af IanCummingFølg mere af forfatteren:

Arduino intervalometer
Arduino intervalometer
Ikke bare en timetimer
Ikke bare en timetimer
Ikke bare en timetimer
Ikke bare en timetimer
Et pixeltermometer
Et pixeltermometer
Et pixeltermometer
Et pixeltermometer

Om: Jeg kan godt lide at lave ting fra raketter til elektronik. Mere om IanCumming »

Velkommen alle sammen

Det er næsten juletid, og antallet af butikker er begyndt at slukke deres festlige dekorationer, jeg troede, at det var på det rigtige tidspunkt at bygge nogle musikalske eventyr!

Trin 1: Brugte dele

Dele brugt
Dele brugt

Jeg bruger følgende:

  • 12 lysdioder
  • 12 Strømbegrænsende modstande
  • 1 ULN 2803 Darlington Transistor Array
  • Nogle Jumper Wires
  • En piezo -højttaler
  • Et brødbræt og
  • en Arduino
  • For at lave rækken af eventyrlys brugte jeg 5 ledninger fra et Ethernet -kabel

Trin 2: Koden

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000ms byte nrLEDS = 4; // 4 basis -LED'er, Du kan tilføje mange parallelle byte -leds = {3, 4, 5, 6}; byte højttaler = 11; byte mønsterlængde = 64; // mønster Længde byte songLength = 51; const byte song = {// Jingle Bells Data 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}; // Strukturen er notenummer derefter // NoteLength i 8.s konst byte -mønster = {// Mønsterdata 0b0001, 0b0010, 0b0100, 0b1000, // Bits, der svarer til Leds in Array 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b110, 010, 0b, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b1100, 0b0000 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Først erklærer jeg mine variabler, de interessante er sang og mønster.

  • Sangen gemmer melodien; i dette tilfælde er det Jingle -klokker.
  • Mønsteret gemmer positioner til og fra i bitene af værdierne i arrayet.

Tilpassede funktioner

// FUNKTIONER int noteToHz (int note) {// Konverter en note Nr. til Frequency float freq = 440 * (pow (1.059463094359, note-21)); // -21 giver dig note 1 ved C3 (I Think) return int (freq); // Resultaterne er nøjagtige til 1 hz} ugyldige lys -LED'er (byte PORT_X) {// Kontrollampes tilstand for (int q = 0; q

De to funktioner, jeg har, vil gøre følgende:

  • Beregn frekvensen for tonefunktionen i sløjfen
  • tænde eller slukke LED'erne afhængigt af værdien, der overføres til funktionen

Opsætningsfunktion

void setup () {// setup OUTPUT pins pinMode (højttaler, OUTPUT); for (int t = 0; t <nrLEDS; t ++) {pinMode (leds [t], OUTPUT); }}

I opsætningsfunktionen satte jeg de nødvendige ben til OUTPUT.

Sløjfe funktion

void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Notes, Length and play melody int note = noteToHz (song [t * 2]); int længde = ((sang [(t * 2) +1] * barTime) / 8); tone (højttaler, note, længde - 50); // Blinkende lys! lightLED'er (mønster [t % patternLength]); forsinkelse (længde); } // Silence Loop int randomSilence = random (1000, 5000); for (int t = 0; t

Jeg har 2 sløjfer i Main Loop -funktionen. En sangsløjfe og en stilhedsløjfe

Sangløkken vil læse dataene fra sangmatrixen, afspille noden ved hjælp af tonefunktionen

Sangløkken vil,

  • Læs dataene fra sangarrayet,
  • Afspil noden ved hjælp af tonefunktionen derefter
  • Tænd LED'erne, læsemønster array.

I Silence loop

kun LED'erne lyser

Sæt Arduino i og upload koden. (Tag derefter stikket ud)

Trin 3: Start af kredsløbet

Start af kredsløbet
Start af kredsløbet
Start af kredsløbet
Start af kredsløbet
Start af kredsløbet
Start af kredsløbet
Start af kredsløbet
Start af kredsløbet

Jeg vil starte med lysstrengen

  • Jeg brugte ledning fra et Ethernet -kabel og lodde 3 lysdioder parallelt fire gange, og sørg for at placere lysdioderne jævnt over ca. 2 meter
  • Jeg loddet anoden af hver ledning til en enkelt ledning.
  • Derefter katoden for hver LED til 4 separate ledninger. Selvfølgelig med en modstand
  • Jeg gentog denne proces 3 gange for at få en streng på 12 lysdioder, og jeg satte hovedstifter på enden af de 5 ledninger

Tilslut de positive og jordede skinner til brødbrættet

Trin 4: ULN2803

ULN2803
ULN2803
ULN2803
ULN2803
ULN2803
ULN2803

Læg ULN2308 -chippen på brødbrættet

ULN2308 er en transistor array -chip; fra databladet kan jeg se

  • Denne pin 1 er en input, der tænder pin 18 "ON"
  • Pin 2 tænder 17. Etc.
  • Pin 9 er slebet
  • Tilslut stiften 9 på chippen til jordskinnen
  • Tilslut den positive skinne til en klemrække, en strimmel over pin 18. (Du vil se hvorfor om et minut)
  • Slut pin 1 på chippen til pin 3 på Arduino
  • 2 går til 4
  • 3 af chippen går til 5 og
  • 4 går til pin 6 i Arduino
  • Placer LED -strengen på brødbrættet. Hvor den fælles anodetråd er forbundet til båndet forbundet til 5 volt. Resten af fairy light pins skulle gå til pin 18, 17, 16 og 15 i chippen.

Trin 5: Tilføjelse af lyd

Tilføjelse af lyd
Tilføjelse af lyd
  • Tilslut Piezo -højttaleren mellem 2 klemmer
  • Tilslut den negative pol af Piezo -elementet til jorden og
  • Den anden ende af højttaleren til pin 11

Trin 6: Konklusion

Konklusion
Konklusion
Konklusion
Konklusion

Jeg har en stribe lys, der tilfældigt vil spille klingende klokker for at minde mig om, at det er jul.

Anbefalede: