cryeffect.net

Star Wars Sound mit Buzzer Modul

    Einen Ton erzeugen, mit dem Buzzer Modul, für den Arduino Nano, geht recht einfach. Dazu verbinden wir das Buzzer Modul mit dem Nano. Ground auf Ground und das Signal vom Buzzer Modul auf Pin 8. Das Ganze sieht dann wie folgt aus. Ihr könnt auch ein fertiges Modul verwenden, z.B. von AZ-Delivery.

    Nach dem wir nun alles verbunden haben, laden wir den Sketch hoch. Im Sketch werden zuerst die Töne defeniert und in zwei Sektionen unterteilt. Dazu haben wir die Möglichkeit, je nach Tonlage, zwei unterschiedliche LEDs aufplingen zulassen und dem ganzen noch mehr Style zu verleihen. Diese zwei LEDs werden über die Pins 3 und 4 angeschlossen, diese sind kein muss, sondern rein optional.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    #include <arduino.h>

    // Töne defenieren

    const int c = 261;
    const int d = 294;
    const int e = 329;
    const int f = 349;
    const int g = 391;
    const int gS = 415;
    const int a = 440;
    const int aS = 455;
    const int b = 466;
    const int cH = 523;
    const int cSH = 554;
    const int dH = 587;
    const int dSH = 622;
    const int eH = 659;
    const int fH = 698;
    const int fSH = 740;
    const int gH = 784;
    const int gSH = 830;
    const int aH = 880;

    const int buzzerPin = 8;
    const int ledPin1 = 2;
    const int ledPin2 = 3;

    int counter = 0;

    void setup()
    {
    //Setup Pin Mode für Ton und LEDs
    pinMode(buzzerPin, OUTPUT);
    pinMode(ledPin1, OUTPUT);
    pinMode(ledPin2, OUTPUT);
    }

    void loop()
    {

    //Spiele erste Sektion
    firstSection();

    //Spiele zweite Sektion
    secondSection();

    beep(f, 250);
    beep(gS, 500);
    beep(f, 350);
    beep(a, 125);
    beep(cH, 500);
    beep(a, 375);
    beep(cH, 125);
    beep(eH, 650);

    delay(500);

    //Wiederhole erste Sektion
    secondSection();


    beep(f, 250);
    beep(gS, 500);
    beep(f, 375);
    beep(cH, 125);
    beep(a, 500);
    beep(f, 375);
    beep(cH, 125);
    beep(a, 650);

    delay(650);
    }

    void beep(int note, int duration)
    {
    //Spiele den Ton für den BuzzerPin
    tone(buzzerPin, note, duration);

    //Spielen Sie je nach Wert des Zählers unterschiedliche LEDs ab
    if(counter % 2 == 0)
    {
    digitalWrite(ledPin1, HIGH);
    delay(duration);
    digitalWrite(ledPin1, LOW);
    }else
    {
    digitalWrite(ledPin2, HIGH);
    delay(duration);
    digitalWrite(ledPin2, LOW);
    }

    //Stoppe den Ton für den BuzzerPin
    noTone(buzzerPin);

    delay(50);

    //Inkrementalzähler
    counter++;
    }

    void firstSection()
    {
    beep(a, 500);
    beep(a, 500);
    beep(a, 500);
    beep(f, 350);
    beep(cH, 150);
    beep(a, 500);
    beep(f, 350);
    beep(cH, 150);
    beep(a, 650);

    delay(500);

    beep(eH, 500);
    beep(eH, 500);
    beep(eH, 500);
    beep(fH, 350);
    beep(cH, 150);
    beep(gS, 500);
    beep(f, 350);
    beep(cH, 150);
    beep(a, 650);

    delay(500);
    }

    void secondSection()
    {
    beep(aH, 500);
    beep(a, 300);
    beep(a, 150);
    beep(aH, 500);
    beep(gSH, 325);
    beep(gH, 175);
    beep(fSH, 125);
    beep(fH, 125);
    beep(fSH, 250);

    delay(325);

    beep(aS, 250);
    beep(dSH, 500);
    beep(dH, 325);
    beep(cSH, 175);
    beep(cH, 125);
    beep(b, 125);
    beep(cH, 250);

    delay(350);
    }

    Viel Spaß beim probieren und zaubern von neuen Melodien.