Inhaltsverzeichnis:

Musikalische Lichterketten - Gunook
Musikalische Lichterketten - Gunook

Video: Musikalische Lichterketten - Gunook

Video: Musikalische Lichterketten - Gunook
Video: Sasha - Lichterketten (Lyric Video) 2024, Juli
Anonim
Image
Image

Von IanCummingFolgen Sie mehr vom Autor:

Arduino-Intervallometer
Arduino-Intervallometer
Nicht nur ein Stunden-Timer
Nicht nur ein Stunden-Timer
Nicht nur ein Stunden-Timer
Nicht nur ein Stunden-Timer
Ein Pixel-Thermometer
Ein Pixel-Thermometer
Ein Pixel-Thermometer
Ein Pixel-Thermometer

Über: Ich mache gerne Sachen von Raketen bis hin zu Elektronik. Mehr über IanCumming »

Herzlich willkommen

Es ist fast die Weihnachtszeit und viele Geschäfte haben angefangen, ihre festlichen Dekorationen aufzuhängen, ich dachte, es ist an der Zeit, ein paar musikalische Lichterketten zu bauen!

Schritt 1: Verwendete Teile

Verwendete Teile
Verwendete Teile

Ich werde folgendes verwenden:

  • 12 LEDs
  • 12 Strombegrenzungswiderstände
  • 1 ULN 2803 Darlington-Transistor-Array
  • Einige Überbrückungsdrähte
  • Ein Piezo-Lautsprecher
  • Ein Steckbrett und
  • ein Arduino
  • Um die Lichterkette herzustellen, habe ich 5 Drähte aus einem Ethernet-Kabel verwendet

Schritt 2: Der Code

// GLOBALE VARS int barTime = 1200; // 8/8 = 1000ms Byte nrLEDS = 4; // 4 Basis-LEDs, Sie können viele parallele Byte-LEDs hinzufügen = { 3, 4, 5, 6}; Byte-Lautsprecher = 11; Bytemusterlänge = 64; // Musterlänge Byte songLength = 51; const byte song = {// Jingle Bells Daten 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 Struktur ist die Notennummer, dann // NoteLength in 8ths const Byte pattern = { //Pattern Data 0b0001, 0b0010, 0b0100, 0b1000, //Bits entsprechen den LEDs in Array 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0100b, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, };

Zuerst deklariere ich meine Variablen, die interessantesten sind Song und Pattern.

  • Das Lied speichert die Melodie; in diesem Fall sind es Jingle Bells.
  • Das Muster speichert Ein- und Aus-Positionen in den Bits der Werte im Array.

Benutzerdefinierte Funktionen

//FUNCTIONS int noteToHz(int note) { // Konvertieren einer Note Nr. to Frequency float freq = 440 * (pow(1.059463094359, note-21)); // -21 gibt dir Note 1 bei C3 (glaube ich) return int(freq); // Die Ergebnisse sind auf 1 Hz genau. Void lightLEDs (byte PORT_X) { // Kontroll-LEDs-Zustand für (int q = 0; q

Die beiden Funktionen, die ich habe, werden Folgendes tun:

  • Berechnen Sie die Frequenz für die Tonfunktion in der Schleife
  • schalten die LEDs je nach dem an die Funktion übergebenen Wert ein oder aus

Setup-Funktion

Void setup () {// OUTPUT-Pins einrichten PinMode (Lautsprecher, OUTPUT); for (int t = 0; t < nrLEDS; t ++) { pinMode (leds [t], AUSGANG); } }

In der Setup-Funktion setze ich die benötigten Pins auf OUTPUT.

Loop-Funktion

void loop () {// Music Loop for (int t = 0; t < songLength; t++) {// Noten, Länge und Melodie spielen int note = noteToHz(song[t * 2]); int length = ((song[(t * 2)+1] * barTime) / 8); Ton (Lautsprecher, Note, Länge - 50); // Blitzende Lichter! lightLEDs(Muster[t % MusterLänge]); Verzögerung (Länge); } // Stille Schleife int randomSilence = random(1000, 5000); für (int t = 0;t

Ich habe 2 Loops in der Main Loop-Funktion. Ein Song-Loop und ein Stille-Loop

Die Song-Loop liest die Daten aus dem Song-Array, spielt die Note mit der Tone-Funktion

Die Song-Loop wird

  • Lesen Sie die Daten aus dem Song-Array,
  • Spielen Sie die Note mit der Tonfunktion dann
  • Beleuchten Sie die LEDs, Lesemuster-Array.

In der Silence-Schleife

nur die LEDs leuchten

Schließen Sie das Arduino an und laden Sie den Code hoch. (Dann den Stecker ziehen)

Schritt 3: Starten der Schaltung

Starten der Schaltung
Starten der Schaltung
Starten der Schaltung
Starten der Schaltung
Starten der Schaltung
Starten der Schaltung
Starten der Schaltung
Starten der Schaltung

Ich fange mit der Lichterkette an

  • Ich habe Draht von einem Ethernet-Kabel verwendet und viermal parallel 3 LEDs gelötet, um sicherzustellen, dass die LEDs gleichmäßig über etwa 2 Meter verteilt sind
  • Ich lötete die Anode von jedem zu einem einzelnen Draht.
  • Dann die Kathode jeder LED auf 4 separate Drähte. Natürlich mit Widerstand
  • Ich habe diesen Vorgang dreimal wiederholt, um eine Reihe von 12 LEDs zu erhalten, und ich habe Kopfstifte an das Ende der 5 Drähte gesteckt

Verbinden Sie die Plus- und Masseschienen mit dem Steckbrett

Schritt 4: Der ULN2803

Der ULN2803
Der ULN2803
Der ULN2803
Der ULN2803
Der ULN2803
Der ULN2803

Platzieren Sie den ULN2308 Chip auf dem Steckbrett

Der ULN2308 ist ein Transistor-Array-Chip; aus dem datenblatt kann ich sehen

  • Dieser Pin 1 ist ein Eingang, der Pin 18 auf "ON" schaltet
  • Pin 2 schaltet 17 ein. Usw.
  • Pin 9 ist Masse
  • Verbinden Sie Pin 9 des Chips mit der Masseschiene
  • Verbinden Sie die positive Schiene mit einer Klemmleiste, eine Leiste über Pin 18. (Sie werden in einer Minute sehen, warum)
  • Verbinden Sie Pin 1 des Chips mit Pin 3 des Arduino
  • 2 geht zu 4
  • 3 des Chips geht an 5 und
  • 4 geht an Pin 6 des Arduino
  • Legen Sie die LED-Kette auf das Steckbrett. Wo der gemeinsame Anodendraht mit dem Streifen verbunden ist, der an 5 Volt angeschlossen ist. Der Rest der Lichterketten sollte zu den Pins 18, 17, 16 und 15 des Chips gehen.

Schritt 5: Ton hinzufügen

Ton hinzufügen
Ton hinzufügen
  • Verbinden Sie den Piezo-Lautsprecher zwischen 2 Klemmleisten
  • Verbinden Sie den Minuspol des Piezoelements mit Masse und
  • Das andere Ende des Lautsprechers an Pin 11

Schritt 6: Fazit

Abschluss
Abschluss
Abschluss
Abschluss

Ich habe eine Lichterkette, die zufällig Jingle Bells spielen wird, um mich daran zu erinnern, dass es Weihnachtszeit ist.

Empfohlen: