Mikrofón - streda 2526: Difference between revisions
Created page with "Mikrofón sme pripojili takto: GND - na zem (čierny rad pinov) + - na napájanie (červený rad pinov) AO - analog output - na analógový pin A2, čiže na RP2040 je to pin 28 Nasledujúci program iba neustále číta z analógového pinu A2 a zobrazuje hodnotu v sériovom monitore. Keď do mikrofónu zakričíme, zapískame, alebo len do neho fúkneme, tak čísla výrazne vyskočia na chvíľu na iné hodnoty. Z analógového pinu si teda môžeme prečíta..." |
mNo edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 8: | Line 8: | ||
Nasledujúci program iba neustále číta z analógového pinu A2 a zobrazuje hodnotu v sériovom monitore. Keď do mikrofónu zakričíme, zapískame, alebo len do neho fúkneme, tak čísla výrazne vyskočia na chvíľu na iné hodnoty. Z analógového pinu si teda môžeme prečítať aktuálnu vzorku zvukovej vlny v momentálnom čase merania. | Nasledujúci program iba neustále číta z analógového pinu A2 a zobrazuje hodnotu v sériovom monitore. Keď do mikrofónu zakričíme, zapískame, alebo len do neho fúkneme, tak čísla výrazne vyskočia na chvíľu na iné hodnoty. Z analógového pinu si teda môžeme prečítať aktuálnu vzorku zvukovej vlny v momentálnom čase merania. | ||
< | <syntaxhighlight lang="C++"> | ||
void setup() { | void setup() { | ||
Serial.begin(9600); | Serial.begin(9600); | ||
| Line 24: | Line 24: | ||
Keď už vieme ako približne mikrofónový senzor funguje, môžeme to využiť na jednoduché zariadenie, ktoré začne sirénkou vydávať zvuky potom, čo do mikrofónu zakričíme: | Keď už vieme ako približne mikrofónový senzor funguje, môžeme to využiť na jednoduché zariadenie, ktoré začne sirénkou vydávať zvuky potom, čo do mikrofónu zakričíme: | ||
< | <syntaxhighlight lang="C++"> | ||
void setup() { | void setup() { | ||
pinMode(3, OUTPUT); | pinMode(3, OUTPUT); | ||
| Line 44: | Line 44: | ||
A nakoniec sme urobili program, ktorý zvukovú vlnu zaznamenal do pola, ktoré potom vypísal do sériového portu. Začiatok a koniec záznamu označil krátkym písknutím sirénkou. | A nakoniec sme urobili program, ktorý zvukovú vlnu zaznamenal do pola, ktoré potom vypísal do sériového portu. Začiatok a koniec záznamu označil krátkym písknutím sirénkou. | ||
< | <syntaxhighlight lang="C++"> | ||
int16_t zaznam[100000]; // do pola zaznam ulozime 100-tisic vzoriek | int16_t zaznam[100000]; // do pola zaznam ulozime 100-tisic vzoriek | ||
| Line 76: | Line 76: | ||
[[Image:mikrofon-zaznam4.png]] | [[Image:mikrofon-zaznam4.png]] | ||
[[Image:mikrofon-zaznam5.png| | [[Image:mikrofon-zaznam5.png|1000px]] | ||
Latest revision as of 21:59, 10 December 2025
Mikrofón sme pripojili takto:
GND - na zem (čierny rad pinov)
+ - na napájanie (červený rad pinov)
AO - analog output - na analógový pin A2, čiže na RP2040 je to pin 28
Nasledujúci program iba neustále číta z analógového pinu A2 a zobrazuje hodnotu v sériovom monitore. Keď do mikrofónu zakričíme, zapískame, alebo len do neho fúkneme, tak čísla výrazne vyskočia na chvíľu na iné hodnoty. Z analógového pinu si teda môžeme prečítať aktuálnu vzorku zvukovej vlny v momentálnom čase merania.
void setup() {
Serial.begin(9600);
delay(3000);
}
void loop() {
int x = analogRead(A2);
Serial.println(x);
delay(300);
}
Keď už vieme ako približne mikrofónový senzor funguje, môžeme to využiť na jednoduché zariadenie, ktoré začne sirénkou vydávať zvuky potom, čo do mikrofónu zakričíme:
void setup() {
pinMode(3, OUTPUT);
}
void loop() {
int x = analogRead(A2);
if (x > 200) {
for (int i = 0; i < 10; i++) {
tone(3, 880, 200); delay(250);
tone(3, 440, 200); delay(250);
tone(3, 880, 200); delay(250);
}
}
delay(300);
}
A nakoniec sme urobili program, ktorý zvukovú vlnu zaznamenal do pola, ktoré potom vypísal do sériového portu. Začiatok a koniec záznamu označil krátkym písknutím sirénkou.
int16_t zaznam[100000]; // do pola zaznam ulozime 100-tisic vzoriek
void setup() {
Serial.begin(9600);
pinMode(3, OUTPUT);
delay(3000);
tone(3, 880, 200); // sirena je na digitalnom pine 3
delay(500);
for (int i = 0; i< 100000; i++)
zaznam[i] = analogRead(A2);
tone(3, 880, 200);
delay(500);
for (int i = 0; i < 100000; i++)
Serial.println(zaznam[i]);
}
void loop() {
delay(300);
}
Takto zaznamenané a vypísané hodnoty sme potom mohli skopírovať do MS Excelu a zobraziť v grafe. Tu sú príklady zvukových vĺn, ktoré sme zaznamenali:



