Katse (Buzzer)

Tööpõhimõte Katse (Buzzer) :
- Esitab meloodiaid.
Komponeendid Katse (Buzzer) :
- 4 juhtmed ;
- 1 piezo ;
- 1 Breadboard Small ;
- 1 Arduino Uno R3
Katse (Buzzer) kood :
// Meloodiate mängimine.
// Käsk Arduino tone() - noote tihedus.
// Noodid:
// note frequency
// c 262 Hz
// d 294 Hz
// e 330 Hz
// f 349 Hz
// g 392 Hz
// a 440 Hz
// b 494 Hz
// C 523 Hz
const int buzzerPin = 9;
// pikkus on nootide ja pausite koguste summa
const int songLength = 18;
char notes[] = "cdfda ag cdfdg gf "; // tähed on noodid ja tühik on paus
// Rütmi seadistamine.
int beats[] = {1,1,1,1,1,1,4,4,2,1,1,1,1,1,1,4,4,2};
// "tempo" meloodia kiirus. Kui väiksem tempo_ siis suurem kiirus.
int tempo = 150;
void setup()
{
pinMode(buzzerPin, OUTPUT);
}
void loop()
{
int i, duration;
for (i = 0; i < songLength; i++)
{
duration = beats[i] * tempo;
if (notes[i] == ' ') // kui noot puudub
{
delay(duration);
}
else
{
tone(buzzerPin, frequency(notes[i]), duration);
delay(duration);
}
delay(tempo/10); // väike paus nootide vahel
}
while(true){}
}
int frequency(char note)
{
int i;
const int numNotes = 8; // nootide kogus
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
int frequencies[] = {262, 294, 330, 349, 392, 440, 494, 523};
// kui noot on olemas, siis tagastame selle tiheduse
for (i = 0; i < numNotes; i++)
{
if (names[i] == note)
{
return(frequencies[i]);
}
}
return(0);
}
Meloodia mängija

https://www.tinkercad.com/things/6NPMZ0yEs3n-spectacular-fyyran
Tööpõhimõte Meloodia mängija :
- Piezo teeb meloodiaid. Potentsiomeeter sisaldab ja lülitab LCD-ekraani välja. Töö tulemusena moodustuvad ekraanil joonistused ja meloodiate nimi.
Komponeendid Meloodia mängija :
- 1 1602 LCD ekraan ;
- 1 potentsiomeeter ;
- 18 juhtmed ;
- 1 piezo ;
- 1 resistor ;
- 1 Breadboard Small ;
- 1 Arduino Uno R3
Laulud/pildid :
- Imperial March — hat
- Mario Brothers — coin
- Morning — sun
- Hymn CCCP — star
- Christmas song — tree
- JingleBells — bell
Meloodia mängija kood :
#include <LiquidCrystal.h>
int numRows = 2;
int numCols = 16;
int tonePin = 9;
const int buzzerPin =9;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte hat[8] = {
0b00000,
0b00000,
0b00000,
0b01110,
0b01110,
0b11111,
0b00000,
0b00000
};
byte coin[8] = {
0b00000,
0b00000,
0b01110,
0b11011,
0b10101,
0b11011,
0b01110,
0b00000
};
byte sun[8] = {
0b10101,
0b01110,
0b11111,
0b01110,
0b10101,
0b00000,
0b00000,
0b00000
};
byte star[8] = {
0b00000,
0b00100,
0b00100,
0b11111,
0b00100,
0b01010,
0b10001,
0b00000
};
byte tree[8] = {
0b00100,
0b01110,
0b11111,
0b11111,
0b00100,
0b00100,
0b00000,
0b00000
};
byte bell[8] = {
0b00000,
0b00100,
0b01110,
0b01110,
0b11111,
0b00000,
0b00100,
0b00000
};
void setup()
{
Serial.begin(9600);
lcd.begin(numCols, numRows);
lcd.createChar(1, hat);
lcd.createChar(2, coin);
lcd.createChar(3, sun);
lcd.createChar(4, star);
lcd.createChar(5, tree);
lcd.createChar(6, bell);
}
void sunrise()
{
tone(9, 700, 300);
delay(600);
tone(9, 700, 300);
delay(600);
tone(9, 780, 150);
delay(300);
tone(9, 700, 150);
delay(300);
tone(9, 625, 450);
delay(600);
tone(9, 590, 150);
delay(300);
tone(9, 520, 150);
delay(300);
tone(9, 460, 450);
delay(600);
tone(9, 350, 450);
delay(600);
delay(600);
tone(9, 350, 450);
delay(600);
tone(9, 460, 450);
delay(600);
tone(9, 520, 150);
delay(300);
tone(9, 590, 150);
delay(300);
tone(9, 625, 450);
delay(600);
tone(9, 590, 150);
delay(300);
tone(9, 520, 150);
delay(300);
tone(9, 700, 1350);
delay(1800);
tone(9, 700, 300);
delay(600);
tone(9, 700, 300);
delay(600);
tone(9, 780, 150);
delay(300);
tone(9, 700, 150);
delay(300);
tone(9, 625, 450);
delay(600);
tone(9, 590, 150);
delay(300);
tone(9, 520, 150);
delay(300);
tone(9, 460, 450);
delay(600);
tone(9, 350, 450);
delay(600);
delay(600);
tone(9, 350, 450);
delay(600);
tone(9, 625, 450);
delay(600);
tone(9, 590, 150);
delay(300);
tone(9, 520, 150);
delay(300);
tone(9, 700, 450);
delay(600);
tone(9, 590, 150);
delay(300);
tone(9, 520, 150);
delay(300);
tone(9, 460, 1350);
delay(5000);
}
void march()
{
int notes[] = {
392, 392, 392, 311, 466, 392, 311, 466, 392,
587, 587, 587, 622, 466, 369, 311, 466, 392,
784, 392, 392, 784, 739, 698, 659, 622, 659,
415, 554, 523, 493, 466, 440, 466,
311, 369, 311, 466, 392
};
int times[] = {
350, 350, 350, 250, 100, 350, 250, 100, 700,
350, 350, 350, 250, 100, 350, 250, 100, 700,
350, 250, 100, 350, 250, 100, 100, 100, 450,
150, 350, 250, 100, 100, 100, 450,
150, 350, 250, 100, 750
};
for (int i = 0; i < 39; i++)
{
tone(buzzerPin , notes[i], times[i]*2);
delay(times[i]*2);
noTone(buzzerPin);
}
}
void mario()
{
int notes[] = {
1318, 1318, 1318, 1046, 1318, 1568, 784,
1046, 784, 659, 880, 987, 932, 880, 784,
1318, 1568, 1750, 1396, 1568, 1318, 1046, 1174, 987,
1046, 784, 659, 880, 987, 932, 880,
784, 1318, 1568, 1750, 1396, 1568, 1318, 1046, 1174, 987,
1568, 1480, 1396, 1244, 1318, 830, 880, 1046, 880, 1046, 1174,
};
int times[] = {
150, 300, 150, 150, 300, 600, 600,
450, 150, 300, 300, 150, 150, 300, 210,
210, 150, 300, 150, 150, 300, 150, 150, 450,
450, 150, 300, 300, 150, 150, 300,
210, 210, 150, 300, 150, 150, 300, 150, 150, 450,
150, 150, 150, 300, 150, 150, 150, 150, 150, 150, 150,
};
int delays[] = {
150, 300, 300, 150, 300, 600, 600,
450, 450, 450, 300, 300, 150, 300, 210,
210, 150, 300, 150, 300, 300, 150, 150, 450,
450, 450, 450, 300, 300, 150, 300,
210, 210, 150, 300, 150, 300, 300, 150, 150, 600,
150, 150, 150, 300, 300, 150, 150, 300, 150, 150, 150,
300, 150, 150, 150, 300, 300, 300, 150, 600,
150, 150, 150, 300, 300, 150, 150, 300, 150, 150, 450, 450, 450, 1200,
};
for (int i = 0; i < 75; i++){
tone(buzzerPin, notes[i], times[i]);
delay(delays[i]);
}
noTone(buzzerPin);
}
void hymn()
{
tone(9, 174, 249.99975);
delay(277.7775);
tone(9, 233, 499.9995);
delay(555.555);
tone(9, 174, 374.999625);
delay(416.66625);
tone(9, 195, 124.999875);
delay(138.88875);
tone(9, 220, 499.9995);
delay(555.555);
tone(9, 146, 249.99975);
delay(277.7775);
tone(9, 146, 249.99975);
delay(277.7775);
tone(9, 195, 499.9995);
delay(555.555);
tone(9, 174, 374.999625);
delay(416.66625);
tone(9, 155, 124.999875);
delay(138.88875);
tone(9, 174, 499.9995);
delay(555.555);
tone(9, 116, 249.99975);
delay(277.7775);
tone(9, 116, 249.99975);
delay(277.7775);
tone(9, 130, 499.9995);
delay(555.555);
tone(9, 130, 374.999625);
delay(416.66625);
tone(9, 146, 124.999875);
delay(138.88875);
tone(9, 155, 499.9995);
delay(555.555);
tone(9, 155, 374.999625);
delay(416.66625);
tone(9, 174, 124.999875);
delay(138.88875);
tone(9, 195, 499.9995);
delay(555.555);
tone(9, 220, 374.999625);
delay(416.66625);
tone(9, 233, 124.999875);
delay(138.88875);
tone(9, 261, 749.99925);
delay(833.3325);
tone(9, 174, 249.99975);
delay(277.7775);
tone(9, 293, 499.9995);
delay(555.555);
tone(9, 261, 374.999625);
delay(416.66625);
tone(9, 233, 124.999875);
delay(138.88875);
tone(9, 261, 499.9995);
delay(555.555);
tone(9, 174, 249.99975);
delay(277.7775);
tone(9, 174, 249.99975);
delay(277.7775);
tone(9, 233, 499.9995);
delay(555.555);
tone(9, 220, 374.999625);
delay(416.66625);
tone(9, 195, 124.999875);
delay(138.88875);
tone(9, 220, 499.9995);
delay(555.555);
tone(9, 146, 374.999625);
delay(416.66625);
tone(9, 146, 124.999875);
delay(138.88875);
tone(9, 195, 499.9995);
delay(555.555);
tone(9, 174, 374.999625);
delay(416.66625);
tone(9, 155, 124.999875);
delay(138.88875);
tone(9, 174, 499.9995);
delay(555.555);
tone(9, 116, 374.999625);
delay(416.66625);
tone(9, 116, 124.999875);
delay(138.88875);
tone(9, 233, 499.9995);
delay(555.555);
tone(9, 220, 374.999625);
delay(416.66625);
tone(9, 195, 124.999875);
delay(138.88875);
tone(9, 174, 999.999);
delay(1111.11);
tone(9, 293, 999.999);
delay(1111.11);
tone(9, 261, 249.99975);
delay(277.7775);
tone(9, 233, 249.99975);
delay(277.7775);
tone(9, 220, 249.99975);
delay(277.7775);
tone(9, 233, 249.99975);
delay(277.7775);
tone(9, 261, 749.99925);
delay(833.3325);
tone(9, 174, 249.99975);
delay(277.7775);
tone(9, 174, 999.999);
delay(1111.11);
tone(9, 233, 999.999);
delay(1111.11);
tone(9, 220, 249.99975);
delay(277.7775);
tone(9, 195, 249.99975);
delay(277.7775);
tone(9, 174, 249.99975);
delay(277.7775);
tone(9, 195, 249.99975);
delay(277.7775);
tone(9, 220, 749.99925);
delay(833.3325);
tone(9, 146, 249.99975);
delay(277.7775);
tone(9, 146, 999.999);
delay(1111.11);
tone(9, 233, 499.9995);
delay(555.555);
tone(9, 195, 374.999625);
delay(416.66625);
tone(9, 220, 124.999875);
delay(138.88875);
tone(9, 233, 499.9995);
delay(555.555);
tone(9, 195, 374.999625);
delay(416.66625);
tone(9, 220, 124.999875);
delay(138.88875);
tone(9, 233, 499.9995);
delay(555.555);
tone(9, 195, 374.999625);
delay(416.66625);
tone(9, 233, 124.999875);
delay(138.88875);
tone(9, 311, 999.999);
delay(1111.11);
tone(9, 311, 999.999);
delay(1111.11);
tone(9, 293, 249.99975);
delay(277.7775);
tone(9, 261, 249.99975);
delay(277.7775);
tone(9, 233, 249.99975);
delay(277.7775);
tone(9, 261, 249.99975);
delay(277.7775);
tone(9, 293, 749.99925);
delay(833.3325);
tone(9, 233, 249.99975);
delay(277.7775);
tone(9, 233, 999.999);
delay(1111.11);
tone(9, 261, 999.999);
delay(1111.11);
tone(9, 233, 249.99975);
delay(277.7775);
tone(9, 220, 249.99975);
delay(277.7775);
tone(9, 195, 249.99975);
delay(277.7775);
tone(9, 220, 249.99975);
delay(277.7775);
tone(9, 233, 749.99925);
delay(833.3325);
tone(9, 195, 249.99975);
delay(277.7775);
tone(9, 195, 999.999);
delay(1111.11);
tone(9, 233, 499.9995);
delay(555.555);
tone(9, 220, 374.999625);
delay(416.66625);
tone(9, 195, 124.999875);
delay(138.88875);
tone(9, 174, 499.9995);
delay(555.555);
tone(9, 116, 374.999625);
delay(416.66625);
tone(9, 116, 124.999875);
delay(138.88875);
tone(9, 174, 999.999);
delay(1111.11);
tone(9, 195, 499.9995);
delay(555.555);
tone(9, 220, 499.9995);
delay(555.555);
tone(9, 233, 1999.998);
delay(2222.22);
}
void christmas_tree()
{
int notes[] = {
262 , 440, 440, 392 ,
440, 349 , 262, 262 ,
262 , 440, 440, 466,
392, 523, 0, 523, 294,
294, 466,466,440,
392 , 349 , 262 , 440,
440, 392 , 440, 349
};
int times[] = {
400,400,400,400,
400,400,400,400,
400,400,400,400,
400,600,20,400,400,
400,400,400,400,
400,400,400,400,
400,400,400,600
};
for (int i = 0; i < 29; i++){
tone(buzzerPin, notes[i],times[i]);
delay(times[i]);
}
noTone(buzzerPin);
}
void JingleBells()
{
tone(9, 493, 208);
delay(231);
tone(9, 493, 208);
delay(231);
tone(9, 493, 416);
delay(462);
tone(9, 493, 208);
delay(231);
tone(9, 493, 208);
delay(231);
tone(9, 493, 416);
delay(462);
tone(9, 493, 208);
delay(231);
tone(9, 587, 208);
delay(231);
tone(9, 391, 312);
delay(347);
tone(9, 440, 104);
delay(115);
tone(9, 493, 833);
delay(925);
tone(9, 523, 208);
delay(231);
tone(9, 523, 208);
delay(231);
tone(9, 523, 312);
delay(347);
tone(9, 523, 104);
delay(115);
tone(9, 523, 208);
delay(231);
tone(9, 493, 208);
delay(231);
tone(9, 493, 208);
delay(231);
tone(9, 493, 104);
delay(115);
tone(9, 493, 104);
delay(115);
tone(9, 493, 208);
delay(231);
tone(9, 440, 208);
delay(231);
tone(9, 440, 208);
delay(231);
tone(9, 493, 208);
delay(231);
tone(9, 440, 416);
delay(462);
tone(9, 587, 416);
delay(462);
tone(9, 493, 208);
delay(231);
tone(9, 493, 208);
delay(231);
tone(9, 493, 416);
delay(462);
tone(9, 493, 208);
delay(231);
tone(9, 493, 208);
delay(231);
tone(9, 493, 416);
delay(462);
tone(9, 493, 208);
delay(231);
tone(9, 587, 208);
delay(231);
tone(9, 391, 312);
delay(347);
tone(9, 440, 104);
delay(115);
tone(9, 493, 833);
delay(925);
tone(9, 523, 208);
delay(231);
tone(9, 523, 208);
delay(231);
tone(9, 523, 312);
delay(347);
tone(9, 523, 104);
delay(115);
tone(9, 523, 208);
delay(231);
tone(9, 493, 208);
delay(231);
tone(9, 493, 208);
delay(231);
tone(9, 493, 104);
delay(115);
tone(9, 493, 104);
delay(115);
tone(9, 587, 208);
delay(231);
tone(9, 587, 208);
delay(231);
tone(9, 523, 208);
delay(231);
tone(9, 440, 208);
delay(231);
tone(9, 391, 208);
delay(231);
tone(9, 587, 208);
delay(231);
tone(9, 783, 208);
delay(231);
}
void loop()
{
lcd.setCursor(0, 0);
lcd.write(1);
lcd.print("Imperial March");
delay(3000);
march();
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.write(2);
lcd.print("Mario Brothers");
delay(5000);
mario();
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.write(3);
lcd.print("Morning");
sunrise();
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.write(4);
lcd.print("Hymn CCCP");
hymn();
delay(9000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.write(5);
lcd.print("Christmas song");
christmas_tree();
delay(10000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.write(6);
lcd.print("JingleBells");
JingleBells();
delay(12000);
}
Photo / video :
Photo :


Video :
https://drive.google.com/file/d/1Oxv4FAnGf52MCFjUv7-aIETnY1KIl1if/view?usp=drivesdk
Kommentaatorid (uued võimalused) :
char notes[] = «cdfda ag cdfdg gf «; — tähed on noodid ja tühik on paus. Rütmi seadistamine.
int beats[] = {1,1,1,1,1,1,4,4,2,1,1,1,1,1,1,4,4,2}; -«tempo» meloodia kiirus. Kui väiksem tempo_ siis suurem kiirus.
delay(tempo/10); — väike paus nootide vahel
Arduino tone() — noote tihedus
Näiteid elust :
- Muusikakarp
- Veermik
- Muusikaline tagasitõmbamine
Добавить комментарий