Sadržaj:

Glazbena svjetla vile: 6 koraka (sa slikama)
Glazbena svjetla vile: 6 koraka (sa slikama)

Video: Glazbena svjetla vile: 6 koraka (sa slikama)

Video: Glazbena svjetla vile: 6 koraka (sa slikama)
Video: Klinac - Mash Up (Lomi/U Sumrak/Korak Ispred/Pravila/Predigra/Kazino/Kisa/Svetla) 2024, Srpanj
Anonim
Image
Image

Autor IanCummingFollow Više od autora:

Arduino intervalometar
Arduino intervalometar
Ne samo mjerač sata
Ne samo mjerač sata
Ne samo mjerač sata
Ne samo mjerač sata
Termometar s jednim pikselom
Termometar s jednim pikselom
Termometar s jednim pikselom
Termometar s jednim pikselom

O: Volim izrađivati stvari od raketa do elektronike. Više o IanCummingu »

Dobrodošli svi

Skoro je blagdansko vrijeme i brojne su trgovine počele stavljati svoje svečane ukrase, mislio sam da je pravo vrijeme za izgradnju glazbenih vilinskih svjetala!

Korak 1: Korišteni dijelovi

Korišteni dijelovi
Korišteni dijelovi

Koristit ću sljedeće:

  • 12 LED dioda
  • 12 Otpornici za ograničavanje struje
  • 1 ULN 2803 Darlingtonski niz tranzistora
  • Neke kratkospojne žice
  • Piezo zvučnik
  • Oglasna ploča i
  • jedan Arduino
  • Za izradu niza vilinskih svjetala upotrijebio sam 5 žica s Ethernet kabela

Korak 2: Kôd

// GLOBALNI VARS int barTime = 1200; // 8/8 = 1000 ms bajt nrLEDS = 4; // 4 osnovne LED diode, možete dodati mnogo paralelnih bajtnih dioda = {3, 4, 5, 6}; zvučnik bajtova = 11; byte patternLength = 64; // pattern Length byte songLength = 51; const byte song = {// Podaci Jingle Bells 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 broj napomene zatim // NoteLength u osmom konst -bajtnom uzorku 8. = {// Podaci uzorka 0b0001, 0b0010, 0b0100, 0b1000, // Bitovi odgovaraju Ledovima u nizu 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b0110, 0b1010, 0b1101 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0000,, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Prvo deklariram svoje varijable, a zanimljive su pjesma i uzorak.

  • Pjesma pohranjuje melodiju; u ovom slučaju to su Jingle bells.
  • Uzorak pohranjuje i isključuje pozicije u bitovima vrijednosti u nizu.

Prilagođene funkcije

// FUNKCIJE int noteToHz (int note) {// Pretvorimo bilješku br. do Frequency float freq = 440 * (pow (1.059463094359, napomena-21)); // -21 daje vam bilješku 1 na C3 (mislim) return int (freq); // Rezultati su točni do 1 Hz} void lightLEDs (byte PORT_X) {// Control LED's State for (int q = 0; q

Dvije funkcije koje imam učinit će sljedeće:

  • Izračunajte frekvenciju tonske funkcije u petlji
  • uključiti ili isključiti LED diode ovisno o vrijednosti prenesenoj na funkciju

Funkcija postavljanja

void setup () {// postavljanje OUTPUT pinovi pinMode (zvučnik, OUTPUT); za (int t = 0; t <nrLEDS; t ++) {pinMode (LED diode [t], OUTPUT); }}

U funkciji postavljanja postavio sam potrebne pinove na OUTPUT.

Funkcija petlje

void loop () {// Glazbena petlja za (int t = 0; t <songLength; t ++) {// Bilješke, Trajanje i sviranje melodije int note = noteToHz (pjesma [t * 2]); int length = ((pjesma [(t * 2) +1] * barTime) / 8); ton (zvučnik, nota, duljina - 50); // Svjetlucanje! lightLEDs (uzorak [t % patternLength]); kašnjenje (duljina); } // Silence Loop int randomSilence = random (1000, 5000); za (int t = 0; t

Imam 2 petlje u funkciji glavne petlje. Petlja pjesme i petlja tišine

Petlja pjesme čita podatke iz niza pjesama, svira notu pomoću tonske funkcije

Petlja pjesme će,

  • Pročitajte podatke iz niza pjesama,
  • Reproducirajte notu pomoću tonske funkcije
  • Upalite LED diode, niz uzoraka za čitanje.

U petlji Silence

samo LED diode svijetle

Uključite Arduino i prenesite kôd. (Zatim ga isključite iz utičnice)

Korak 3: Pokretanje kruga

Pokretanje kruga
Pokretanje kruga
Pokretanje kruga
Pokretanje kruga
Pokretanje kruga
Pokretanje kruga
Pokretanje kruga
Pokretanje kruga

Počet ću s nizom svjetla

  • Koristio sam žicu s Ethernet kabela i četiri puta paralelno lemio 3 LED diode, pazeći da LED diode ravnomjerno rasporedim na oko 2 metra
  • Lemio sam anodu svake žice do jedne žice.
  • Zatim katodu svake LED do 4 odvojene žice. Naravno s otpornikom
  • Ponovio sam ovaj postupak 3 puta kako bih dobio niz od 12 LED dioda i stavio sam pinove zaglavlja na kraj 5 žica

Spojite pozitivne i uzemljene vodilice na matičnu ploču

Korak 4: ULN2803

ULN2803
ULN2803
ULN2803
ULN2803
ULN2803
ULN2803

Stavite čip ULN2308 na matičnu ploču

ULN2308 je čip niza tranzistora; iz podatkovnog lista mogu vidjeti

  • Taj pin 1 je ulaz koji uključuje pin 18 "ON"
  • Pin 2 uključuje 17. Itd.
  • Pin 9 je uzemljen
  • Spojite pin 9 čipa na tračnicu za uzemljenje
  • Spojite pozitivnu vodilicu na priključnu traku, jednu traku iznad pina 18. (Vidjet ćete zašto za minutu)
  • Spojite pin 1 čipa na pin 3 Arduina
  • 2 ide na 4
  • 3 čipa ide na 5 i
  • 4 ide na pin 6 Arduina
  • Postavite LED niz na ploču. Gdje je zajednička anodna žica spojena na traku spojenu na 5 volti. Ostatak vilinskih svjetlosnih pinova trebao bi ići na pin 18, 17, 16 i 15 čipa.

Korak 5: Dodavanje zvuka

Dodavanje zvuka
Dodavanje zvuka
  • Spojite Piezo zvučnik između 2 priključne trake
  • Spojite negativni pol Piezo elementa na masu i
  • Drugi kraj zvučnika na pin 11

Korak 6: Zaključak

Zaključak
Zaključak
Zaključak
Zaključak

Imam niz svjetla koje će nasumično svirati zvona podsjećajući me da je sezona blagdana.

Preporučeni: