Hydraulische Anschlüsse


Google-Suche auf MEINE-SCHALTUNG.de :





Dauerkalender


Can Can
Lautsprecher, Transistoren und Arduino


Lautsprecher 3W

Lautsprecher 3W

In dem folgenden Versuch versorgt Arduino Nano zwei kleine Lautsprecher, die man auch direkt an seine I/O-Pins anschließen könnte, mit „Musik“, doch wir stellen uns vor, es handelt sich um zwei leistungsstarke Lautsprecher, deren Stromaufnahme den kleinen Mikrocontroller bei Weitem überfordern würde. In diesem Fall muss das Signal von Arduiono, um seinen „Musik“-Ausgang zu schützen, zusätzlich verstärkt werden. Eine einfache Lösung dafür bieten Transistoren an.

Arduino Nano

Arduino Nano

7-Segmentanzeige

7-Segmentanzeige mit Treiber TM1637

Schaltungen_mit_TM1637


Musiknoten mit Frequenzen

Noten Tabelle

Noten-Tabelle mit zugehörigen Frequenzen

Transistor

Transistor TIP31C

Spannungsregler

Spannungsregler

Optokoppler_el_817

Optokoppler EL817

In der Schaltung steuert der I/O-Ausgang des Arduino (Hier Ausgang D3,) zwei Transistoren an, an die jeweils ein Lautsprecher angeschlossen ist. Bei den Transistoren handelt es sich um zwei NPN Transistoren TIP31C. Sie können bei 40W bis zu 3A an Strom liefern. Bei großen Leistungen müssen sie mit zusätzlichen Kühlkörpern versehen werden.

Die Transistoren werden nicht direkt von Arduino angesprochen. Wir schalten zwischen Arduino und Transistoren zusätzlich noch zwei Optokoppler. Auf diese Weise werden die Spannungskreise von Arduino und Lautsprecher galvanisch getrennt. In Wirklichkeit steuert Arduino also zwei Optokoppler an. Erst diese Optokoppler geben die Signale an die beiden Transistoren weiter. Die Transistoren sorgen für ausreichend Strom, der dann zu den Lautsprechern fließt. Um die Transistoren und folglich die Lautsprecher ausreichend mit Strom zu versorgen, wird hier ein Spannungsregler (Ein Spannungsregler-Modul mit LM2596), der ähnlich wie Transitoren 3A liefern kann, vorgeschaltet. Dank galvanischer Trennung können beide Stromkreise, Arduino und Lautsprecher, mit unterschiedlichen Spannungen arbeiten.
Bei den Optokopplern handelt es sich um 1-kanalige EL817.

Für die Schaltung werden grundsätzlich keine weiteren Komponenten benötigt. Trotzdem wird die sie noch ein wenig erweitert. Mit einem Potenziometer, das im Kreis der Optokoppler eingebunden wird, wird die Lautstärke reguliert. Keine zwingende, doch äußerst sinnvolle Maßnahme, um eventuellen Konflikten mit Hausbewohnern oder Nachbarschaft vorzubeugen. Mit einem Taster wird das Abspielen der Musik gestartet. Mit der 7-Segmentanzeige werden die aktuell abgearbeiteten Frequenzen angezeigt. Die Anzeige kann beim „Komponieren“ äußerst hilfreich sein. So kann man schneller die Töne, die nicht getroffen wurden, herausfischen. In der Schaltung kommt ein Modul mit dem Treiber TM1637 zum Einsatz. Für die Ansteuerung des Moduls werden nur zwei Leitungen benötigt.

Der Schaltplan

Schaltplan

Schaltplan

Testschaltung

Testschaltung

Testschaltung

Zum Test der Schaltung verwenden wir die Musik von Jacques Offenbach. Es handelt sich um ein Fragment von Can Can (Höllengalopp), die bekannteste und populärste Nummer des Komponisten. Das Stück stammt aus der Operette "Orpheus in der Unterwelt", die 1858 uraufgeführt wurde.

// **************************************************************************************
// Arduino und Lautsprecher mit Transistoren
// Mit Can-Can von Jacques Offenbach
// Arduino Nano, IDE 1.8.13
// **************************************************************************************

#include <TM1637Display.h>
#define CLK 6
#define DIO 7
                                                          // Frequenzen der Noten
int Note [] = { 27,   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 Lautsprecher = 3;                                  
int Taster_S1 = 4;                                        // Taster Start
int Tondauer_Faktor = 20;
int Frequenz;         
int i;
                                                          // Can Can 
int Melodie [134][2] = { {27, 10}, {31, 10}, {31, 10}, {32, 10}, {31, 10}, {30, 10}, {30, 15}, 
                         {32,  5}, {33, 10}, {35, 10}, {37, 10}, {35, 10}, {35, 10}, {34, 10}, 
                         {34, 20}, {35, 10}, {29, 10}, {29, 10}, {35, 10}, {34, 10}, {30, 10}, 
                         {30, 10}, {32, 10}, {32, 10}, {31, 10}, {32, 10}, {31, 10}, {32, 10}, 
                         {31, 10}, {32, 10}, {31, 10}, {27, 10}, {31, 10}, {31, 10}, {32, 10}, 
                         {31, 10}, {30, 10}, {30, 15}, {32,  5}, {33, 10}, {35, 10}, {37, 10}, 
                         {35, 10}, {35, 10}, {34, 10}, {34, 20}, {35, 10}, {29, 10}, {29, 10}, 
                         {35, 10}, {34, 10}, {30, 10}, {30, 10}, {32, 10},  
                         {32, 10}, {31, 10}, {32, 10}, {31, 10}, {31, 10}, {30, 10}, {30, 20},       
                         {32, 20}, {30, 20}, {28, 20}, {27, 20},                         
                         {34, 10}, {31, 10}, {32, 10}, {33, 10}, {32, 10}, {31, 10}, {30, 20},    
                         {32, 20}, {30, 20}, {28, 20}, {27, 20},                                
                         {26, 10}, {27, 10}, {28, 10}, {29, 10}, {31, 10}, {30, 10}, {30, 20},
                         {32, 20}, {30, 20}, {28, 20}, {27, 20},                          
                         {34, 10}, {31, 10}, {32, 10}, {33, 10}, {32, 10}, {31, 10}, {30, 20},    
                         {32, 20}, {30, 20}, {28, 20}, {27, 20},                              
                         {26, 10}, {27, 10}, {28, 10}, {29, 10}, {30, 10}, {27, 10}, {29, 10}, 
                         {27, 10}, {30, 10}, {27, 10}, {29, 10}, {27, 10}, {30, 10}, {27, 10}, 
                         {29, 10}, {27, 10}, {30, 10}, {27, 10}, {29, 10}, {27, 10}, {30,  8}, 
                         {99,  2}, {30, 10}, {30,  8}, {99,  2}, {30, 10}, {30,  8}, {99,  2}, 
                         {30, 10}, {30,  8}, {99,  2}, {30, 10}, {30,  8}, {99,  2}, {30, 10}, 
                         {30, 50}
                      };

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


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


Kurzvideo

Kurzvideo mit Can-Can


Weitere Themen:


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz