INHOUDSOPGAWE:

Musical Fairy Lights: 6 stappe (met foto's)
Musical Fairy Lights: 6 stappe (met foto's)

Video: Musical Fairy Lights: 6 stappe (met foto's)

Video: Musical Fairy Lights: 6 stappe (met foto's)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Julie
Anonim
Image
Image

Deur IanCumming Volg meer deur die skrywer:

Arduino -intervalmeter
Arduino -intervalmeter
Nie net 'n uur -timer nie
Nie net 'n uur -timer nie
Nie net 'n uur -timer nie
Nie net 'n uur -timer nie
Een pixel termometer
Een pixel termometer
Een pixel termometer
Een pixel termometer

Oor: Ek hou daarvan om dinge van vuurpyle tot elektronika te maak. Meer oor IanCumming »

Welkom Almal

Dit is amper die feestyd en 'n aantal winkels het hul feestelike versierings begin uitsit, ek het gedink dit is omtrent die regte tyd om 'n paar musikale feëligte te bou!

Stap 1: Onderdele gebruik

Onderdele gebruik
Onderdele gebruik

Ek sal die volgende gebruik:

  • 12 LED's
  • 12 Stroombeperkende weerstande
  • 1 ULN 2803 Darlington Transistor Array
  • 'N Paar springdrade
  • 'N Piëzo -luidspreker
  • 'N Broodbord en
  • 'n Arduino
  • Ek het 5 drade van 'n ethernetkabel gebruik om 'n reeks sprokies te maak

Stap 2: Die kode

// GLOBALE VARS int barTime = 1200; // 8/8 = 1000ms byte nrLEDS = 4; // 4 basis -LED's, u kan baie parallelle byte -LED's byvoeg = {3, 4, 5, 6}; bytespreker = 11; byte patroonLengte = 64; // patroon Length 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}; // Die struktuur is nootnommer dan // nootlengte in 8ste konst byte -patroon = {// patroondata 0b0001, 0b0010, 0b0100, 0b1000, // bits korrek aan 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, 0b1 010, 010, 001, 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,};

Eerstens verklaar ek my veranderlikes, waarvan die interessante lied en patroon is.

  • Die liedjie stoor die deuntjie; in hierdie geval is dit Jingle -klokke.
  • Die patroon stoor posisies in en uit in die stukkies van die waardes in die skikking.

Pasgemaakte funksies

// FUNKSIES int noteToHz (int note) {// Skakel 'n noot Nr. na Frequency float freq = 440 * (pow (1.059463094359, noot-21)); // -21 gee u noot 1 by C3 (ek dink) retour int (freq); // Resultate is akkuraat tot 1 hz} leegte LED's (greep PORT_X) {// Beheer -LED se toestand vir (int q = 0; q

Die twee funksies wat ek het, sal die volgende doen:

  • Bereken die frekwensie vir die toonfunksie in die lus
  • skakel die LED's aan of uit, afhangende van die waarde wat aan die funksie oorgedra word

Opstel funksie

ongeldige opstelling () {// opstel OUTPUT penne pinMode (luidspreker, OUTPUT); vir (int t = 0; t <nrLEDS; t ++) {pinMode (leds [t], OUTPUT); }}

In die opstelfunksie stel ek die vereiste penne op OUTPUT.

Lusfunksie

void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Notes, Length and play the melody int note = noteToHz (song [t * 2]); int lengte = ((lied [(t * 2) +1] * barTime) / 8); toon (spreker, noot, lengte - 50); // Flitsende ligte! lightLEDs (patroon [t % patroonLengte]); vertraging (lengte); } // Silence Loop int randomSilence = random (1000, 5000); vir (int t = 0; t

Ek het 2 lusse in die Main Loop -funksie. 'N Luslus en 'n stilte -lus

Die songlus sal die data uit die song array lees, die noot speel met die toonfunksie

Die liedlus sal,

  • Lees die data uit die song array,
  • Speel die noot dan met die toonfunksie
  • Verlig die LED's, leespatroonreeks.

In die Silence -lus

net die LED's brand

Koppel die Arduino aan en laai die kode op. (Koppel dit dan los)

Stap 3: Begin die kring

Begin die kring
Begin die kring
Begin die kring
Begin die kring
Begin die kring
Begin die kring
Begin die kring
Begin die kring

Ek gaan begin met die string ligte

  • Ek het draad van 'n ethernetkabel gebruik en vier LED's vier keer parallel gesoldeer en seker gemaak dat die LED's eweredig oor ongeveer 2 meter uitmekaar is
  • Ek het die anode van elkeen gelei tot 'n enkele draad.
  • Dan die katode van elke LED na 4 afsonderlike drade. Met 'n weerstand natuurlik
  • Ek het hierdie proses 3 keer herhaal om 'n string van 12 LED's te kry en ek het kopstukke aan die einde van die 5 drade gesit

Koppel die positiewe en gemaalde relings aan die broodbord

Stap 4: Die ULN2803

Die ULN2803
Die ULN2803
Die ULN2803
Die ULN2803
Die ULN2803
Die ULN2803

Plaas die ULN2308 Chip op die broodbord

Die ULN2308 is 'n transistor array chip; uit die gegewensblad kan ek sien

  • Daardie pen 1 is 'n invoer wat pen 18 "AAN" draai
  • Speld 2 draai 17 aan. Ens.
  • Speld 9 is gemaal
  • Koppel pen 9 van die chip aan die grondrail
  • Koppel die positiewe spoor aan 'n aansluitstrook, een strook bokant pen 18. (U sal binne 'n minuut sien hoekom)
  • Koppel pen 1 van die chip aan pen 3 van die Arduino
  • 2 gaan na 4
  • 3 van die chip gaan na 5 en
  • 4 gaan na pen 6 van die Arduino
  • Plaas die LED -tou op die broodbord. Waar die gewone anodedraad gekoppel is aan die strook wat gekoppel is aan 5 volt. Die res van die fairy light pins moet gaan na pen 18, 17, 16 en 15 van die chip.

Stap 5: Voeg klank by

Voeg klank by
Voeg klank by
  • Koppel die Piezo -luidspreker tussen twee aansluitstroke
  • Verbind die negatiewe pool van die Piezo -element met die grond en
  • Die ander kant van die luidspreker na pen 11

Stap 6: Gevolgtrekking

Afsluiting
Afsluiting
Afsluiting
Afsluiting

Ek het 'n string ligte wat ewekansige klokkies sal speel om my te herinner dat dit die feestyd is.

Aanbeveel: