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.