Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Od IanCummingSledovat více od autora:
O: Rád vyrábím věci od raket po elektroniku. Více o IanCumming »
Vítejte všichni
Je téměř sváteční čas a řada obchodů začala vydávat své slavnostní dekorace. Myslel jsem, že nastal ten správný čas na stavbu světel na hudební víly!
Krok 1: Použité díly
Budu používat následující:
- 12 LED diod
- 12 Rezistory omezující proud
- 1 ULN 2803 Darlingtonovo tranzistorové pole
- Některé propojovací vodiče
- Piezo reproduktor
- Breadboard a
- Arduino
- K výrobě řady pohádkových světel jsem použil 5 vodičů z ethernetového kabelu
Krok 2: Kód
// GLOBÁLNÍ VARS int barTime = 1200; // 8/8 = 1000ms byte nrLEDS = 4; // 4 základní LED diody, můžete přidat mnoho paralelních bajtů LED = {3, 4, 5, 6}; bajtový reproduktor = 11; byte patternLength = 64; // vzor Délka byte songLength = 51; píseň konstantního bajtu = {// 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 je číslo poznámky, pak // NoteLength v 8. konstantním bajtovém vzoru = {// Pattern Pattern 0b0001, 0b0010, 0b0100, 0b1000, // Bits corrispond to 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, 0b0110, 0b 0b1010, 0b0101, 0b1010, 0b00, 0b00, 0b00 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};
Nejprve deklaruji své proměnné, zajímavé jsou Song a Pattern.
- Píseň ukládá melodii; v tomto případě se jedná o rolničky.
- Vzor ukládá pozice zapnuto a vypnuto v bitech hodnot v poli.
Vlastní funkce
// FUNKCE int noteToHz (int note) {// Převod poznámky č. na frekvenci float freq = 440 * (pow (1,059463094359, poznámka-21)); // -21 vám dá poznámku 1 na C3 (myslím) return int (freq); // Výsledky jsou přesné na 1 Hz} neplatné lightLED (byte PORT_X) {// Stav kontrolních LED pro (int q = 0; q
Dvě funkce, které mám, provedou následující:
- Vypočítejte frekvenci pro funkci tónu ve smyčce
- zapnout nebo vypnout LED v závislosti na hodnotě předané funkci
Funkce nastavení
void setup () {// nastavení VÝSTUPNÍCH pinů pinMode (reproduktor, VÝSTUP); for (int t = 0; t <nrLEDS; t ++) {pinMode (leds [t], OUTPUT); }}
Ve funkci nastavení jsem nastavil požadované piny na VÝSTUP.
Funkce smyčky
void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Notes, Length and play the melody int note = noteToHz (song [t * 2]); int délka = ((píseň [(t * 2) +1] * barTime) / 8); tón (reproduktor, poznámka, délka - 50); // Záblesky! lightLED (vzor [t % vzorDélka]); zpoždění (délka); } // Silence Loop int randomSilence = random (1000, 5000); pro (int t = 0; t
Ve funkci Hlavní smyčka mám 2 smyčky. Smyčka písní a smyčka ticha
Smyčka skladeb načte data z pole skladeb a přehraje notu pomocí funkce tón
Smyčka písní bude,
- Přečtěte si data z pole skladeb,
- Přehrajte poznámku pomocí funkce tónů
- Rozsviťte LED diody, pole vzorů čtení.
Ve smyčce Ticho
svítí pouze LED diody
Připojte Arduino a nahrajte kód. (Potom jej odpojte)
Krok 3: Spuštění obvodu
Začnu řadou světel
- Použil jsem drát z ethernetového kabelu a čtyřikrát jsem připájel 3 LED diody, přičemž jsem se ujistil, že LED diody jsou rovnoměrně rozloženy na zhruba 2 metry
- Pájel jsem anodu každého vodiče na jeden vodič.
- Poté katodou každé LED na 4 samostatné vodiče. Samozřejmě s rezistorem
- Tento postup jsem opakoval 3krát, abych získal řetězec 12 LED a na konec 5 vodičů jsem umístil kolíky záhlaví
Připojte kladnou a uzemňovací kolejnici k prkénku
Krok 4: ULN2803
Umístěte čip ULN2308 na prkénko
ULN2308 je čip tranzistorového pole; z datového listu vidím
- Ten pin 1 je vstup, který zapne pin 18 „ON“
- Pin 2 zapne 17. Atd.
- Kolík 9 je uzemněn
- Připojte kolík 9 čipu k zemnící liště
- Připojte kladnou lištu ke svorkovnici, jeden proužek nad kolík 18. (Za minutu uvidíte, proč)
- Připojte pin 1 čipu ke kolíku 3 Arduina
- 2 jde na 4
- 3 čipu jde na 5 a
- 4 jde na pin 6 Arduina
- Umístěte řetězec LED na prkénko. Kde je společný anodový vodič připojen k pásu připojenému k 5 voltům. Zbytek kolíků Fairy Light by měl jít na pin 18, 17, 16 a 15 čipu.
Krok 5: Přidání zvuku
- Připojte reproduktor Piezo mezi 2 svorkovnice
- Připojte záporný pól piezoelektrického prvku k zemi a
- Druhý konec reproduktoru na pin 11
Krok 6: Závěr
Mám řetězec světel, které budou náhodně hrát rolničky, aby mi připomněly, že jsou svátky.