Zahrejme si na klavírek

V minulé lekci jsem popisoval způsob, jakým může arduino vydávat zvuky. Řekli jsme si jak se používá buzzer i reproduktor a naťukl jsem i to jak funguje funkce tone(). V této lekci si ukážeme jeden praktický projekt a zkusíme si trošku více říci o tom co je to vlastně tón.

Tón

Asi bych měl začít tím, co je to vlastně tón. Víme, že zvuk je kmitání, které vzniklo kmitáním nějakého zdroje (struna, hlasivky, vzduchový sloupec atd. atd.). Toto kmitání se přes molekuly vzduchu přeneslo k našim uším, kde rozkmitalo ušní bubínek a přes další ušní aparátky je informace o kmitání zvuku přenesena do naší nervové soustavy a mozku, kde si uvědomíme, že slyšíme zvuk.

Zdroje tónu

Mezi zvukem a tónem je ale rozdíl. Zvuk je prakticky jakékoliv kmitání, kdežto tón je kmitání s periodickým průběhem (čili pořád stejné) (tón – wiki) . Vlastnosti tónu, které nás z hlediska užívání arduina nejvíce zajímají, protože je můžeme ovlivnit, jsou frekvence a délka tónu.

Výška tónu

Výška tónu je daná frekvencí tónu. Čím rychlejší frekvence, tím je tón vyšší. Čím je frekvence – periodické kmitání tónu pomalejší, tím hlubší tón slyšíme. A protože lidé mají rádi ve věcech pořádek, sestavili si frekvence tónů do pravidelné soustavy. Tuto soustavu tónů tvoří skupiny tónů, kterým se říká oktávy. Platí pravidlo, že začáteční tón vyšší oktávy má frekvenci vyšší v poměru 2:1 než počáteční tón oktávy nižší. Mezi počátečními tóny je frekvence víceméně pravidelně rozdělena pro jednotlivé frekvence patřící tónům v dané oktávě. V každé oktávě je sedm tónů (stejný počet jako počet tlačítek v našem jednooktávovém klavírku). Mezi tóny jsou samozřejmě ještě půltóny 🙂 ale protože vás mám rád, tak vám to nebudu komplikovat :-D.

TónFrekvence (Hz)
žádný0
a220
b247
C1262
D1294
E1330
F1349
G1392
A1440
B1494
C2523
D2587
E2659
F2698
G2784
A2880
B2988
C31047
D31175
E31319
F31397
G31568
A31760
B31976
C42093
D42349
E42637
F42794
G43136
A43520
B43951
C54186
D54698
E55274
F55588
G56272
A57040
B57902
C68372
D69396
E610548
F611176
G612544
frekvence tónů

Tóny ve stejné oktávě poznáte podle čísla tónu na konci – například C1 – B1. V dané skupině je vždy sedm tónů.

Projekt Klavírek

V projektu klavírek se nám jedná o sestavení jednoduchého hudebního nástroje, který bude mít sedm tlačítek a po stisku každého z těchto sedmi tlačítek nám elektronická konstrukce zahraje jeden ze sedmi tónů v oktávě. Jak na to? Následuje schéma zapojení.

Schéma zapojení pro projekt klavírek

Zapojení máme zapojené :-). Funkcionalita je myslím jasná přímo z obrázku. Sedm tlačítek je připojeno na piny 2-8. pin č. 13 je vyhrazen pro reproduktorek/buzzer. K buzzeru je připojen klasický ochranný odpor 220 ohm.

Na desku odešlete následující kód.

/*
Program určený pro demonstraci ovládání
zvuku s arduino UNO R3
program klavírek
*/
//nastavení desky – pin 13 výstup na buzzer, nebo repro, pin 2 – 8 – vstup pro tlačítka
void setup(){
pinMode(13, OUTPUT);
pinMode(2,INPUT_PULLUP);
pinMode(3,INPUT_PULLUP);
pinMode(4,INPUT_PULLUP);
pinMode(5,INPUT_PULLUP);
pinMode(6,INPUT_PULLUP);
pinMode(7,INPUT_PULLUP);
pinMode(8,INPUT_PULLUP);
}

//nekonečná smyčka – provedení programu

void loop(){

//načteníá stavu tlačítka

int tlacitko1 = digitalRead(2);
int tlacitko2 = digitalRead(3);
int tlacitko3 = digitalRead(4);
int tlacitko4 = digitalRead(5);
int tlacitko5 = digitalRead(6);
int tlacitko6 = digitalRead(7);
int tlacitko7 = digitalRead(8);


//akce na základě načteného stavu tlačítka

if (tlacitko1 == 0)
{
tone(13, 523);
//C2
}
else if (tlacitko2 == 0)
{
tone(13, 587);
//D2
}
else if (tlacitko3 == 0)
{
tone(13, 659);
//E2
}
else if (tlacitko4 == 0)
{
tone(13, 698);
//F2
}
else if (tlacitko5 == 0)
{
tone(13, 784);
//G2
}
else if (tlacitko6 == 0)
{
tone(13, 880);
//A2
}
else if (tlacitko7 == 0)
{
tone(13, 988);
//B2
}
else
{
noTone(13);
}
}
Program klavírek

V programu není nic nového, co byste neznali z předchozích lekcí. Pouze je v podmínce více možností (chceme přece aby klavírek mohl zahrát sedm různých tónů). V příkazu tone porovnejte vložené frekvence se seznamem frekvencí a zjistíte, kterou oktávu nám klavírek zahraje.

Úkoly:

1, Přeprogramujte klavírek, aby hrál tóny v jiné oktávě.

2, Přeprogramujte klavírek tak, aby každé tlačítko po stisku vysílalo jiné písmeno morseovy abecedy.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *