Coil mit schmalem Band


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Popcorn
Passiver Summer mit Arduino

Der Unterschied zwischen einem passiven und einem aktiven Summer besteht darin, dass der passive Summer keine Zusatzelektronik beinhaltet, die uns fertige Töne liefern könnte. Das erklärt auch den Preisunterschied zwischen den beiden „Musikinstrumenten“. Der aktive Summer ist stets etwas teurer. Schließt man an die Anschlüsse eines passiven Summers eine Gleichspannung an, passiert gar nichts. Bevor man mit diversen Tönen die nächste Umgebung füllen kann, muss Vorarbeit geleistet werden.

Passiver Summer

Passiver Summer

Um den passiven Summer zum Leben zu erwecken, müssen wir ihn mit elektrischen Signalen im bestimmten Frequenzbereich versorgen. Auf diesem Wege wird er zum Schwingen gebracht und liefert akustische Signale. Die Arduino-Software enthält die Hilfsfunktion „tone“, mit der verschiedene Töne sehr leicht erzeugt werden können. Mit der Funktion können nicht nur einzelne Töne in unterschiedlichen Frequenzbereichen erzeugt werden, mit ihr können auch einfache Melodien abgespielt werden. Grundsätzlich kann die Funktion „tone“ zu gleichem Zeitpunkt nur einen Ton erzeugen, doch es existieren bereits Bibliotheken, mit deren Hilfe man diese Einschränkung umgehen und gleichzeitig mehrere Töne erzeugen kann.

Anschlußseite

Passiver Summer (Anschlußseite)

tone()

Mit der Funktion tone() können drei Parameter übergeben werden. Mit dem ersten Parameter wird der I/O-Pin bestimmt, an dem der Summer angeschlossen ist. Der zweite Parameter bestimmt die Frequenz in Hertz, mit der der Summer angeregt werden soll. Der dritte Parameter, der jedoch nicht zwingend notwendig ist, bestimmt die Länge des Signals. Dieser Parameter wird in Millisekunden angegeben. Mit der Funktion noTone() wird ein Ton unterbrochen.

Arduino Nano

Arduino Nano

Anzeige

Um die internen Geschehnisse während des Programmablaufes besser nachvollziehen zu können, schließen wir an Arduino eine 7-Segmentanzeige an. Sie besteht aus vier Digits und bildet zusammen mit dem Chip TM1637 ein fertiges Modul, das nur zwei Steuerleitungen benötigt. Mit der Hilfe der Anzeige werden die aktuellen Frequenzen, die gerade an die Funktion tone() übergeben werden, angezeigt. Kurzinfos:

Schaltungen_mit_TM1637


Schaltplan

Schaltplan

Schaltplan

Testschaltung

Testschaltung

Testschaltung

Das Programm (Sketch)

Mit dieser einfachen Schaltung und dazugehörigem Arduino-Sketch sollen unterschiedliche Töne und eine einfache Melodie erzeugt werden. In dem Sketch wird die oben beschriebene Funktion tone() verwendet. Neben den Hauptdarstellern, einen passiven Summer, 7-Segmentanzeige und Arduino, beinhaltet die Schaltung noch zwei Taster.
Nach dem Betätigen des ersten Tasters werden in regelmäßigen Abständen von 0,5 Sek. Töne erzeugt, denen jeweils eine andere Frequenz zugrunde liegt. Die Frequenzen liegen im Bereich von 30 bis 5000 Hz. Welche Frequenz gerade gewählt wird, entscheidet der Zufallsgenerator. Zu beachten ist, dass die niedrigste Frequenz, bei der der Summer noch richtig funktioniert, 31 Herz beträgt. Nach dem Loslassen des Tasters wird die Töne-Erzeugung abgebrochen. Da diese Sequenz des Programms solange aktiv ist, wie lange der Taster gedrückt gehalten wird, nennen wir sie einfach Handbetrieb.
Mit dem zweiten Taster aktivieren wir sozusagen die AUTOMATIK. Der zweite Taster wird nur kurz betätigt. Sobald dies geschieht, wird eine Schleife gestartet. Es werden nacheinander insgesamt 63 Töne generiert, die ein Fragment einer bekannten Melodie darstellen. Dabei handelt es sich um das Stück Popcorn, das in den 70er-Jahren für Furore sorgte. Popcorn wurde von Gershon Kingsley komponiert, 1972 erreichte das Instrumentalstück die Charts und platzierte sich in Deutschland auf dem ersten Platz. Popcorn erreichte die Spitzenpositionen der Charts auch in anderen Ländern und wurde unzählige Male gecovert.
In dem Beispiel gehen wir auf die exakte Zuordnung der Frequenzen zu den einzelnen Musik Noten nicht ein.

Damit das Programm funktioniert, muss die Bibliothek TM1637Display.h installiert sein.

// *****************************************************************************
// Popcorn
// Passiver Summer (passive Buzzer)
// Arduino Nano, IDE 1.8.13
// *****************************************************************************

#include <TM1637Display.h>
#define CLK 6
#define DIO 7

TM1637Display display(CLK, DIO);
String Ausgabe;
int Summer = 3;                                  
int Taster_S1 = 5;
int Taster_S2 = 4;    
int Frequenz;          
int i;
                                                      // Popcorn
int Melodie [] = { 8,7,8,5,3,5,1,0,                 
                   8,7,8,5,3,5,1,0,
                   8,9,10,9,10,8,9,8,9,7,8,7,8,6,8,0,
                   8,7,8,5,3,5,1,0,
                   8,7,8,5,3,5,1,0,
                   8,9,10,9,10,8,9,8,9,7,8,7,8,9,10 };


void setup() {
    display.setBrightness(10);
    display.clear();
    pinMode (Taster_S1, INPUT_PULLUP);
    pinMode (Taster_S2, INPUT_PULLUP);
}

void loop() {
    
    if (digitalRead(Taster_S1) == LOW) {              // Taster S1: HANDBETRIEB
         Frequenz = random (30, 5000);                // Frequenz bestimmen per Zufall
         Ausgabe = String (Frequenz);                 // Zahl in String umwandeln
         display.showNumberDecEx(Ausgabe.toInt(), 0b00000000, false, 4, 4);  // Ausgabe Display
         tone (Summer, Frequenz, 400);                // Ton erzeugen
         delay(500);                                  // Wartezeit
    }

                                     
    if (digitalRead(Taster_S2) == LOW) {              // Taster S2: AUTOMATIK
        for (i = 0; i < 63; i++) {
            Frequenz = Melodie [i] * 250;             // Frequenz bestimmen
            Ausgabe = String (Frequenz);              // Zahl in String umwandeln
            display.showNumberDecEx(Ausgabe.toInt(), 0b00000000, false, 4, 4);  // Ausgabe Display
            tone (Summer, Frequenz, 200);             // Ton erzeugen
            delay(200);                               // Wartezeit
        }
    }
}
// *****************************************************************************        


Kurzvideo

Kurzvideo: Passiver Summer & Arduino


Ton, Geräusch &


Musik


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz