Netzwerk - Unterputzdose


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Arduino & Aktivbox
Mit Miss Marple Theme


Aktivbox

Aktivbox

In dem folgenden Experiment schließen wir an einen digitalen Ausgang des Arduino Aktivbox an. Mit Aktivbox (auch Aktivlautsprecher) wird ein System bezeichnet, in dem Lautsprecher und die zugehörige Verstärker-Elektronik in einem Gehäuse untergebracht sind. Ein solches System benötigt eine externe Stromquelle. Das können ein separater Netzteil oder Batterien sein. In einer Aktivbox werden auch Klangregelung und Lautstärkeregler integriert. Für das Experiment kann ein beliebiges Aktivbox-System verwendet werden.

Die Aktivbox, die in dem Experiment zum Einsatz kommt, besteht aus zwei Lautsprechern, die man zusammenklappen kann. Sie kann mit Batterien oder einem 6V Netzteil betrieben werden. Sie verfügt über einen Lautstärkeregler und Ein/Aus-Schalter. Der Hersteller sowie Leistung der Einheit sind unbekannt.

Aktivbox zusammengeklappt

Aktivbox zusammengeklappt

Das Signal von Arduino wird über den Audiostecker der Musikbox zugeführt. Dazu wurde ein Audio-Verlängerungskabel an einer Seite abgeschnitten, ab isoliert und steckbrett-fähig gemacht. Eine Methode, die nicht zu empfehlen ist. Eine Buchse, die man an Arduino anschließen kann oder ein fertiges Shield wäre hier eine viel einfachere und elegantere Lösung.

Audioanschluss

Audioanschluss

In diesem Fall, da es sich um ein Stereo-System handelt, haben wir mit drei Leitungen zu tun. Zwei Leitungen führen die Signale jeweils für den linken und rechten Lautsprecher. Die dritte Leitung ist die gemeinsame Masse. Bei einem Mono-System würde man nur zwei Leitungen benötigen. Da wir nur ein Signal von Arduino führen, werden die beiden Kanäle der Aktivbox einfach zusammengeschlossen und das Stereo-System in ein Mono-System umgewandelt.

7-Segmentanzeige

7-Segmentanzeige mit Treiber TM1637

Schaltungen_mit_TM1637


Musiknoten mit Frequenzen

Noten Tabelle

Noten-Tabelle mit zugehörigen Frequenzen

Da das Signal von Arduino im Bereich von 5V liegt, wird vor dem Audioeingang noch ein Potenziometer vorgeschaltet. Mit ihm kann das Signal abgeschwächt werden. Ein Audiosignal liegt im Bereich von ca. 1V. Eine zu hohe Spannung würde zum Übersteuern der Aktivbox führen.
Um die aktuell abgespielten Frequenzen zu sehen, wird die Schaltung zusätzlich mit einer 7-Segmentanzeige angereicht. Sie wird mit dem Treiber TM1637 gesteuert. Dabei ist zu beachten, dass Arduino schon etwas Zeit benötigt, um die Anzeige zu bedienen. Das kann dazu führen, dass sich das Tempo des gerade gespielten Stückes etwas ändert.

Der Schaltplan

Schaltplan

Schaltplan

Testschaltung

Testschaltung

Testschaltung

Das Programm

Die Noten und Tondauer werden in der Liste Note [] zusammengefasst. Um ein gewünschtes Tempo des Stückes zu erreichen, werden die hier festgelegten Zeiten zusätzlich mit dem Tondauer_Faktor multipliziert. Auf diese Weise kann das Tempo des Stückes beliebig eingestellt werden.
In dem Programm wird die erste Note aus der Noten-Tabelle mit der Frequenz 0 belegt. Auf diese Weise werden mit der Note Nr. 0 (normalerweise Frequenz 27 Hz) die Pausen realisiert.

// ***************************************************************************************
// Arduino und Miss Marple theme
// Töne mit Aktivbox
// Arduino Nano, IDE 1.8.13
// ***************************************************************************************

#include <TM1637Display.h>                                  // Display Bibliothek
#define CLK 11
#define DIO 12
                                                            // Frequenzen der Noten
                                                            // Nr 0 = Pause
int Note [] = { 0,    31, 
                33,   37,   41,   44,   49,   55,   62,   
                65,   73,   82,   87,   98,   110,  123,
                131,  147,  165,  175,  196,  220,  247,
                262,  294,  330,  349,  392,  440,  494,
                523,  587,  659,  698,  784,  880,  988,
                1047, 1175, 1319, 1397, 1568, 1760, 1976,
                2093, 2349, 2637, 2794, 3136, 3520, 3951,
                4186, 4699 };

TM1637Display display(CLK, DIO);
String Ausgabe;
int Aktivbox = 2;                                  
int Schalter_S1 = 3;                                        // Taster Start
float Tondauer_Faktor = 1.8;
int Frequenz;         
                                                            // Miss Marple Theme
int Melodie [169][2] = { {32, 100}, {30, 100}, {27, 100}, {32, 100}, {30, 100}, {27, 100}, 
                         {32, 100}, {30, 100}, {31, 100}, {29, 100}, {27, 100}, {31, 100}, 
                         {29, 100}, {27, 100}, {31, 100}, {29, 100}, {30, 100}, {27, 100}, 
                         {25, 100}, {30, 100}, {28, 100}, {26, 100}, {24, 100}, {23, 100}, 
                         {22,  25}, {23,  25}, {22,  25}, {23,  25}, {22,  25}, {23,  25},
                         {22,  25}, {23,  25}, {22,  25}, {23,  25}, {22,  25}, {23,  25}, 
                         {22,  25}, {23,  25}, {22,  25}, {23,  25}, {22,  25}, {23,  25},
                         {22,  25}, {23,  25}, {22,  25}, {23,  25}, {22,  25}, {23,  25}, 
                         {21,  50}, {22,  50}, {23, 200}, {25, 100}, {25, 100}, {0,  200}, 
                         {25, 200}, {0,  200}, {25, 100}, {25, 100}, {0,  200}, {25, 200},
                         {0,  500}, {20, 100}, {23, 100}, {24, 100}, {25, 200}, {0,  100}, 
                         {25, 300}, {24,  50}, {25,  50}, {24,  33}, {25,  33}, {24,  33}, 
                         {23, 200}, {0,  100}, {23, 300}, {24,  50}, {25,  50}, {24,  33},
                         {23,  33}, {24,  33}, {25, 200}, {0,  100}, {25, 300}, {24,  50}, 
                         {25,  50}, {24,  33}, {25,  33}, {24,  33}, {23, 400}, {0,  100}, 
                         {20, 100}, {23, 100}, {25, 100}, {27, 200}, {0,  100}, {27, 300}, 
                         {26,  50}, {27,  50}, {26,  33}, {27,  33}, {26,  33}, {25, 200}, 
                         {0,  100}, {25, 300}, {26,  50}, {27,  50}, {26,  33}, {25,  33}, 
                         {26,  33}, {27, 200}, {0,  100}, {27, 300}, {26,  50}, {27,  50},
                         {26,  33}, {27,  33}, {26,  33}, {25, 400}, {0,  100}, {27, 100}, 
                         {30, 100}, {31, 100}, {32, 100}, {30, 100}, {27, 100}, {32, 100}, 
                         {30, 100}, {27, 100}, {32, 100}, {30, 100}, {31, 100}, {29, 100}, 
                         {27, 100}, {31, 100}, {29, 100}, {27, 100}, {31, 100}, {29, 100},
                         {30, 100}, {27, 100}, {25, 100}, {30, 100}, {28, 100}, {26, 100}, 
                         {24, 100}, {23, 100}, {22,  25}, {23,  25}, {22,  25}, {23,  25},
                         {22,  25}, {23,  25}, {22,  25}, {23,  25}, {22,  25}, {23,  25},  
                         {22,  25}, {23,  25}, {22,  25}, {23,  25}, {22,  25}, {23,  25}, 
                         {22,  25}, {23,  25}, {22,  25}, {23,  25}, {21,  50}, {22,  50},
                         {23, 600}  };

void setup() {
  
    display.setBrightness(10);                              // Anzeige Helligkeit
    display.clear();
    pinMode (Schalter_S1, INPUT_PULLUP);
    pinMode (Aktivbox, OUTPUT);
}


void loop() {
  
    if ((digitalRead(Schalter_S1) == LOW)) {                // Beispiel-Musik abspielen
        for (int i = 0; i < 169; i++) {                        
            int Note_Nr = Melodie [i][0];                   // Nummer der Note
            Frequenz = Note [Note_Nr];                      // Frequenz bestimmen
            Ausgabe = String (Frequenz);                    // Zahl in String umwandeln
            display.showNumberDecEx(Ausgabe.toInt(), 0b00000000, false, 4, 4);  // Ausgabe Display
            int Zeit = Melodie [i][1] * Tondauer_Faktor;    // Tempo bestimmen
            tone (Aktivbox, Frequenz, Zeit);                // Ton erzeugen
            delay(Zeit);                                    // Wartezeit
        }
    }
}
// ***************************************************************************************   


Miss Marple

Miss Marple ist die wohlbekannte Romanfigur, die von der "Queen of Crime“, Agatha Christie, kreiert wurde. Miss Marple, zusammen mit dem zweiten literarischen Detektiv Herkules Poirot, machten die britische Kriminalautorin zu den bekanntesten Schriftsteller weltweit und bescherten ihr die höchste Auszeichnung Großbritanniens Order of the British Empire. Ihre Krimis verkauften sich milliardenfach.
Die meisten ihrer Kriminalgeschichten wurden verfilmt, viele von ihnen mehrfach. Zu beliebten Verfilmungen gehören vier Filme mit Margaret Rutherford in der Hauptrolle. Die Musik für diese Filmreihe schrieb Ron Goodwin. Das „Miss Marple Theme“ wurde äußerst populär und erreichte sogar die Pop-Charts.


Kurzvideo

Kurzvideo


Weitere Themen:


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz