Sadržaj:

Muzička svjetla vile: 6 koraka (sa slikama)
Muzička svjetla vile: 6 koraka (sa slikama)

Video: Muzička svjetla vile: 6 koraka (sa slikama)

Video: Muzička svjetla vile: 6 koraka (sa slikama)
Video: Maja Marinkovic pesma koreografija 💃 2024, Novembar
Anonim
Image
Image

Autor IanCummingFollow Više od autora:

Arduino Intervalometar
Arduino Intervalometar
Tajmer nije samo sat
Tajmer nije samo sat
Tajmer nije samo sat
Tajmer nije samo sat
Termometar sa jednim pikselom
Termometar sa jednim pikselom
Termometar sa jednim pikselom
Termometar sa jednim pikselom

O: Volim praviti stvari od raketa do elektronike. Više o IanCummingu »

Dobro došli svima

Skoro je praznična sezona i brojne trgovine su počele s izlaganjem svojih svečanih ukrasa, mislio sam da je pravo vrijeme za izgradnju muzičkih bajkovitih svjetala!

Korak 1: Korišteni dijelovi

Rabljeni dijelovi
Rabljeni dijelovi

Koristiću sledeće:

  • 12 LED dioda
  • 12 Otpornici za ograničavanje struje
  • 1 ULN 2803 Darlington Transistor Array
  • Neke kratkospojne žice
  • Piezo zvučnik
  • Breadboard and
  • Arduino
  • Za izradu niza vilinskih svjetala upotrijebio sam 5 žica s Ethernet kabela

Korak 2: Kodeks

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000ms bajt nrLEDS = 4; // 4 osnovne LED diode, možete dodati mnogo paralelnih bajtnih dioda = {3, 4, 5, 6}; bajt zvučnik = 11; byte patternLength = 64; // uzorak Dužina bajta 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 const byte uzorku = {// Podaci o uzorku 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, 0b110, 0b110, 0b110, 0b0000 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b0000, 0b0011, 0b0011, 0b0000 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Prvo deklariram svoje varijable, a zanimljive su Song i Pattern.

  • Pjesma čuva melodiju; u ovom slučaju to su Jingle bells.
  • Uzorak sprema pozicije uključivanja i isključivanja 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 napomenu 1 na C3 (mislim) return int (freq); // Rezultati su tačni do 1hz} void lightLEDs (byte PORT_X) {// Control LED's State for (int q = 0; q

Dvije funkcije koje imam će raditi sljedeće:

  • Izračunajte frekvenciju tonske funkcije u petlji
  • uključuje ili isključuje LED diode ovisno o vrijednosti koja se prenosi na funkciju

Funkcija postavljanja

void setup () {// postavljanje OUTPUT pinova 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 () {// Muzička petlja za (int t = 0; t <songLength; t ++) {// Napomene, Dužina i sviranje melodije int note = noteToHz (pjesma [t * 2]); int length = ((song [(t * 2) +1] * barTime) / 8); ton (zvučnik, nota, dužina - 50); // Bljeskajuća svjetla! lightLEDs (uzorak [t % patternLength]); kašnjenje (dužina); } // Silence Loop int randomSilence = random (1000, 5000); za (int t = 0; t

Imam 2 petlje u funkciji glavne petlje. Petlja pesme 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,
  • Zatim pustite notu pomoću tonske funkcije
  • Upalite LED diode, niz uzoraka za čitanje.

U petlji Silence

samo LED diode svetle

Priključite Arduino i učitajte kôd. (Zatim ga isključite iz utičnice)

Korak 3: Pokretanje kruga

Pokretanje kola
Pokretanje kola
Pokretanje kola
Pokretanje kola
Pokretanje kola
Pokretanje kola
Pokretanje kola
Pokretanje kola

Počeću sa nizom svetla

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

Spojite pozitivne i uzemljene šine 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 lista sa podacima 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 uzemljenje
  • Spojite pozitivnu šinu 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 matičnu ploču. Tamo gdje je zajednička anodna žica spojena na traku spojenu na 5 volti. Ostatak pinova vila svjetlosti 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 lampica koje će nasumično svirati zvona da me podsjete da je sezona praznika.

Preporučuje se: