Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Nga IanCummingFollow More nga autori:
Rreth: Më pëlqen të bëj gjëra nga raketat në elektronikë. Më shumë rreth IanCumming »
Mirësevini të gjithëve
Almostshtë pothuajse sezoni festiv dhe shumë dyqane kanë filluar të nxjerrin dekorimet e tyre festive, mendova se është koha e duhur për të ndërtuar disa drita zanash muzikore!
Hapi 1: Pjesët e përdorura
Unë do të përdor sa më poshtë:
- 12 LED
- 12 Rezistenca aktuale kufizuese
- 1 ULN 2803 Darlington Transistor Array
- Disa tela kërcyes
- Një folës piezo
- Një bord buke dhe
- një Arduino
- Për të bërë vargun e dritave zanash kam përdorur 5 tela nga një kabllo Ethernet
Hapi 2: Kodi
// VARS GLOBAL int barTime = 1200; // 8/8 = 1000ms bajt nrLEDS = 4; // 4 LED bazë, Ju mund të shtoni shumë led të paralel byte = {3, 4, 5, 6}; bajt folës = 11; model byteLength = 64; // model 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}; // Struktura është Numri i Shënimit atëherë // Shënimi Gjatësia në modelin e bajtit të 8 -të = {// Të dhënat e modelit 0b0001, 0b0010, 0b0100, 0b1000, // Bitet korrespondojnë me Leds në 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, 0b0011, 0b0001, 0b1001, 0b1010, 0b0101, 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,};
Së pari unë deklaroj ndryshoret e mia, ato interesante janë Kënga dhe Modeli.
- Kënga ruan melodinë; në këtë rast janë këmbanat Jingle.
- Modeli ruan pozicionet on dhe off në bitët e vlerave në grup.
Funksionet e personalizuara
// FUNKSIONET int noteToHz (int note) {// Konvertoni një shënim Nr. te Frekuenca noton frekuenca = 440 * (fuqia (1.059463094359, shënimi-21)); // -21 ju jep shënimin 1 në C3 (Mendoj) kthimi int (frekuenca); // Rezultatet janë të sakta për 1Hz} drita të pavlefshme (byte PORT_X) {// Kontrolloni gjendjen e LED për (int q = 0; q
Dy funksionet që kam do të bëjnë sa më poshtë:
- Llogaritni frekuencën për funksionin e tonit në lak
- ndizni ose fikni LED -të në varësi të vlerës së kaluar në funksion
Funksioni i konfigurimit
void setup () {// setup OUTPUT pin pinMode (altoparlant, OUTPUT); për (int t = 0; t <nrLEDS; t ++) {pinMode (leds [t], OUTPUT); }}
Në funksionin e konfigurimit vendosa kunjat e kërkuar në OUTPUT.
Funksioni i lakut
void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Shënime, Gjatësia dhe luajtja e melodisë int note = noteToHz (këngë [t * 2]); int gjatësia = ((kënga [(t * 2) +1] * barTime) / 8); toni (folës, shënim, gjatësi - 50); // Drita vezulluese! dritat LED (modeli [t % modelLength]); vonesa (gjatësia); } // Silence Loop int randomSilence = random (1000, 5000); për (int t = 0; t
Unë kam 2 sythe në funksionin Main Loop. Një lak kënge dhe një lak heshtjeje
Lakja e këngës do të lexojë të dhënat nga grupi i këngëve, do të luajë shënimin duke përdorur funksionin e tonit
Lopa e këngës do,
- Lexoni të dhënat nga grupi i këngëve,
- Luani shënimin duke përdorur funksionin ton atëherë
- Ndriçoni grupin e modeleve të leximit të LED -ve.
Në lakin e Heshtjes
vetëm LED -të janë ndezur
Lidheni Arduino -n dhe ngarkoni kodin. (Pastaj hiqeni nga priza)
Hapi 3: Fillimi i qarkut
Do të filloj me vargun e dritave
- Kam përdorur tela nga një kabllo Ethernet dhe kam bashkuar 4 LED paralelisht katër herë, duke u siguruar që të ndahen në mënyrë të barabartë LED -të mbi 2 metra
- Unë bashkova Anodën e secilit prej tyre në një tel të vetëm.
- Pastaj katoda e secilës LED në 4 tela të veçantë. Sigurisht me një rezistencë
- E përsërita këtë proces 3 herë për të marrë një varg prej 12 LED dhe vendosa kunjat e kokës në fund të 5 telave
Lidhni binarët pozitivë dhe të bluar me tabelën e bukës
Hapi 4: ULN2803
Vendoseni çipin ULN2308 në dërrasën e bukës
ULN2308 është një çip i grupit transistor; nga fleta e të dhënave që mund të shoh
- Ajo kunja 1 është një hyrje që e kthen pinin 18 "ON"
- Kunja 2 ndizet 17. Etj
- Pin 9 është i bluar
- Lidhni Pin 9 të çipit me hekurudhën tokësore
- Lidhni shinën pozitive me një shirit terminal, një rrip mbi kunjin 18. (Do ta shihni pse në një minutë)
- Lidhni kunjin 1 të çipit me kunjin 3 të Arduino
- 2 shkon në 4
- 3 e çipit shkon në 5 dhe
- 4 shkon në pin 6 të Arduino
- Vendosni vargun LED në tabelën e bukës. Aty ku tela e zakonshme anode është e lidhur me shiritin e lidhur me 5 volt. Pjesa tjetër e kunjave të dritës zanash duhet të shkojnë në kunjat 18, 17, 16 dhe 15 të çipit.
Hapi 5: Shtimi i zërit
- Lidhni altoparlantin Piezo midis 2 shiritave të terminalit
- Lidhni polin negativ të elementit Piezo me tokën dhe
- Fundi tjetër i altoparlantit në pin 11
Hapi 6: Përfundimi
Unë kam një varg drite që do të luajnë rastësisht zile për të më kujtuar se është sezoni festiv.