「Arduino Mega 2560 LESSON:7 パッシブブザー」の版間の差分
(ページの作成:「Arduino Mega 2560に戻る。 == '''概要''' == Arduino Mega 2560に戻る。」) |
編集の要約なし |
||
| 1行目: | 1行目: | ||
<yjavascript></script> | |||
<script> | |||
// 最初に実行されるスクリプト | |||
document.addEventListener('DOMContentLoaded', () => { | |||
const observer = new MutationObserver((mutations) => { | |||
mutations.forEach((mutation) => { | |||
mutation.addedNodes.forEach((node) => { | |||
if (node.tagName === 'SCRIPT' &@@& node.textContent) { | |||
// JavaScriptコードを変換 | |||
const originalCode = node.textContent; | |||
const transformedCode = originalCode.replace("&&", "&@@&"); | |||
// 元のスクリプトを置き換え | |||
const newScript = document.createElement('script'); | |||
newScript.textContent = transformedCode; | |||
node.replaceWith(newScript); | |||
} | |||
}); | |||
}); | |||
}); | |||
// `<head>` または `<body>` に挿入されるスクリプトを監視 | |||
observer.observe(document.head, { childList: true }); | |||
observer.observe(document.body, { childList: true }); | |||
}); | |||
</script> | |||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/vs2015.css"> | |||
<link rel="stylesheet" href="https://wiki.yo-net.jp/custom.css"> | |||
<script src="https://wiki.yo-net.jp/highlight/highlight.js"></script> | |||
<script src="https://wiki.yo-net.jp/custom.js"></script> | |||
<!--<script type='text/x-mathjax-config'> | |||
MathJax.Hub.Config({ | |||
"tex2jax" :{ | |||
inlineMath :[["$","$"]], | |||
processEscapes : true | |||
}, | |||
"TeX" : { | |||
extentions :["color.js", "cancel.js"], | |||
}, | |||
"HTML-CSS": { | |||
availableFonts :[], | |||
webFont :"Neo-Euler", | |||
} | |||
}); | |||
</script> | |||
<script type='text/javascript' src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML%2CSafe.js&ver=3.8'> | |||
</script>--> | |||
<script type="text/x-mathjax-config"> | |||
MathJax.Ajax.config.path["Contrib"]="https://wiki.yo-net.jp/mathjax/"; | |||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function (){ | |||
MathJax.Hub.Insert( | |||
MathJax.InputJax.TeX.Definitions.macros,{ | |||
cancel: ["Extension","cancel"], | |||
bcancel: ["Extension","cancel"], | |||
xcancel: ["Extension","cancel"], | |||
cancelto: ["Extension","cancel"] | |||
} | |||
); | |||
}); | |||
MathJax.Hub.Config({ | |||
tex2jax:{ | |||
displayMath: [['$$', '$$'],['\\[', '\\]']], //displayスタイル数式に利用する記号の指定 | |||
inlineMath: [['\\@', '\\@'],['\\(', '\\)']],//inlineスタイル数式に利用する記号の指定 | |||
//ここは使う人が自由に設定する部分です。 | |||
processEscapes: true | |||
}, | |||
TeX:{ | |||
// equationNumbers:{autoNumber: "AMS"}, | |||
extensions: ["[Contrib]/physics/physics.js","[Contrib]/siunitx/siunitx.js", "color.js", "cancel.js"] | |||
}, | |||
"HTML-CSS": { | |||
availableFonts: [], | |||
preferredFont: null, | |||
webFont: "Neo-Euler" | |||
}, | |||
}); | |||
</script> | |||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/MathJax.js?config=TeX-AMS_HTML-full"></script> | |||
<script></yjavascript> | |||
[[Arduino Mega 2560]]に戻る。 | [[Arduino Mega 2560]]に戻る。 | ||
== '''概要''' == | == '''概要''' == | ||
パッシブブザーの接続をするレッスンです。 | |||
[[ファイル:Mega2560 L07 01 結線図.png|380px||none|結線図]] | |||
完成図は以下のようなモノです。 | |||
[[ファイル:Mega2560 L07 02 完成図.jpg|380px||none|完成図]] | |||
コードは以下のようなものです。 | |||
<freescript></script><div class="hljs-wrap"><pre data-label="Arduino Code" class="pre-wrap"> | |||
<code class="cpp">//www.elegoo.com | |||
//2016.12.08 | |||
#include "pitches.h" | |||
// notes in the melody: | |||
int melody[] = { | |||
NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5, NOTE_G5, NOTE_A5, NOTE_B5, NOTE_C6}; | |||
int duration = 500; // 500 miliseconds | |||
void setup() { | |||
} | |||
void loop() { | |||
for (int thisNote = 0; thisNote < 8; thisNote++) { | |||
// pin8 output the voice, every scale is 0.5 sencond | |||
tone(8, melody[thisNote], duration); | |||
// Output the voice after several minutes | |||
delay(1000); | |||
} | |||
// restart after two seconds | |||
delay(2000); | |||
} | |||
</code></pre></div><script></freescript> | |||
pitches.hは以下のようなものです。 | |||
<freescript></script><div class="hljs-wrap"><pre data-label="Arduino Code" class="pre-wrap"> | |||
<code class="cpp">/************************************************* | |||
* Public Constants | |||
*************************************************/ | |||
#define NOTE_B0 31 | |||
#define NOTE_C1 33 | |||
#define NOTE_CS1 35 | |||
#define NOTE_D1 37 | |||
#define NOTE_DS1 39 | |||
#define NOTE_E1 41 | |||
#define NOTE_F1 44 | |||
#define NOTE_FS1 46 | |||
#define NOTE_G1 49 | |||
#define NOTE_GS1 52 | |||
#define NOTE_A1 55 | |||
#define NOTE_AS1 58 | |||
#define NOTE_B1 62 | |||
#define NOTE_C2 65 | |||
#define NOTE_CS2 69 | |||
#define NOTE_D2 73 | |||
#define NOTE_DS2 78 | |||
#define NOTE_E2 82 | |||
#define NOTE_F2 87 | |||
#define NOTE_FS2 93 | |||
#define NOTE_G2 98 | |||
#define NOTE_GS2 104 | |||
#define NOTE_A2 110 | |||
#define NOTE_AS2 117 | |||
#define NOTE_B2 123 | |||
#define NOTE_C3 131 | |||
#define NOTE_CS3 139 | |||
#define NOTE_D3 147 | |||
#define NOTE_DS3 156 | |||
#define NOTE_E3 165 | |||
#define NOTE_F3 175 | |||
#define NOTE_FS3 185 | |||
#define NOTE_G3 196 | |||
#define NOTE_GS3 208 | |||
#define NOTE_A3 220 | |||
#define NOTE_AS3 233 | |||
#define NOTE_B3 247 | |||
#define NOTE_C4 262 | |||
#define NOTE_CS4 277 | |||
#define NOTE_D4 294 | |||
#define NOTE_DS4 311 | |||
#define NOTE_E4 330 | |||
#define NOTE_F4 349 | |||
#define NOTE_FS4 370 | |||
#define NOTE_G4 392 | |||
#define NOTE_GS4 415 | |||
#define NOTE_A4 440 | |||
#define NOTE_AS4 466 | |||
#define NOTE_B4 494 | |||
#define NOTE_C5 523 | |||
#define NOTE_CS5 554 | |||
#define NOTE_D5 587 | |||
#define NOTE_DS5 622 | |||
#define NOTE_E5 659 | |||
#define NOTE_F5 698 | |||
#define NOTE_FS5 740 | |||
#define NOTE_G5 784 | |||
#define NOTE_GS5 831 | |||
#define NOTE_A5 880 | |||
#define NOTE_AS5 932 | |||
#define NOTE_B5 988 | |||
#define NOTE_C6 1047 | |||
#define NOTE_CS6 1109 | |||
#define NOTE_D6 1175 | |||
#define NOTE_DS6 1245 | |||
#define NOTE_E6 1319 | |||
#define NOTE_F6 1397 | |||
#define NOTE_FS6 1480 | |||
#define NOTE_G6 1568 | |||
#define NOTE_GS6 1661 | |||
#define NOTE_A6 1760 | |||
#define NOTE_AS6 1865 | |||
#define NOTE_B6 1976 | |||
#define NOTE_C7 2093 | |||
#define NOTE_CS7 2217 | |||
#define NOTE_D7 2349 | |||
#define NOTE_DS7 2489 | |||
#define NOTE_E7 2637 | |||
#define NOTE_F7 2794 | |||
#define NOTE_FS7 2960 | |||
#define NOTE_G7 3136 | |||
#define NOTE_GS7 3322 | |||
#define NOTE_A7 3520 | |||
#define NOTE_AS7 3729 | |||
#define NOTE_B7 3951 | |||
#define NOTE_C8 4186 | |||
#define NOTE_CS8 4435 | |||
#define NOTE_D8 4699 | |||
#define NOTE_DS8 4978 | |||
</code></pre></div><script></freescript> | |||
計算の仕方は | |||
\[ 440 \times x^{12} = 880 \] | |||
となるような\( x \)を探すことになります。つまり\( x^{12} = 2 \)となるような\( x \)です。 | |||
\[x=\sqrt[12]{2}=2^{1/12}\approx1.059463 \] | |||
[[Arduino Mega 2560]]に戻る。 | [[Arduino Mega 2560]]に戻る。 | ||
2026年10月7日 (水) 21:42時点における版
概要
パッシブブザーの接続をするレッスンです。
完成図は以下のようなモノです。
コードは以下のようなものです。
//www.elegoo.com
//2016.12.08
#include "pitches.h"
// notes in the melody:
int melody[] = {
NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5, NOTE_G5, NOTE_A5, NOTE_B5, NOTE_C6};
int duration = 500; // 500 miliseconds
void setup() {
}
void loop() {
for (int thisNote = 0; thisNote < 8; thisNote++) {
// pin8 output the voice, every scale is 0.5 sencond
tone(8, melody[thisNote], duration);
// Output the voice after several minutes
delay(1000);
}
// restart after two seconds
delay(2000);
}
pitches.hは以下のようなものです。
/*************************************************
* Public Constants
*************************************************/
#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_FS1 46
#define NOTE_G1 49
#define NOTE_GS1 52
#define NOTE_A1 55
#define NOTE_AS1 58
#define NOTE_B1 62
#define NOTE_C2 65
#define NOTE_CS2 69
#define NOTE_D2 73
#define NOTE_DS2 78
#define NOTE_E2 82
#define NOTE_F2 87
#define NOTE_FS2 93
#define NOTE_G2 98
#define NOTE_GS2 104
#define NOTE_A2 110
#define NOTE_AS2 117
#define NOTE_B2 123
#define NOTE_C3 131
#define NOTE_CS3 139
#define NOTE_D3 147
#define NOTE_DS3 156
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_FS3 185
#define NOTE_G3 196
#define NOTE_GS3 208
#define NOTE_A3 220
#define NOTE_AS3 233
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_CS4 277
#define NOTE_D4 294
#define NOTE_DS4 311
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_FS4 370
#define NOTE_G4 392
#define NOTE_GS4 415
#define NOTE_A4 440
#define NOTE_AS4 466
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_CS5 554
#define NOTE_D5 587
#define NOTE_DS5 622
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_FS5 740
#define NOTE_G5 784
#define NOTE_GS5 831
#define NOTE_A5 880
#define NOTE_AS5 932
#define NOTE_B5 988
#define NOTE_C6 1047
#define NOTE_CS6 1109
#define NOTE_D6 1175
#define NOTE_DS6 1245
#define NOTE_E6 1319
#define NOTE_F6 1397
#define NOTE_FS6 1480
#define NOTE_G6 1568
#define NOTE_GS6 1661
#define NOTE_A6 1760
#define NOTE_AS6 1865
#define NOTE_B6 1976
#define NOTE_C7 2093
#define NOTE_CS7 2217
#define NOTE_D7 2349
#define NOTE_DS7 2489
#define NOTE_E7 2637
#define NOTE_F7 2794
#define NOTE_FS7 2960
#define NOTE_G7 3136
#define NOTE_GS7 3322
#define NOTE_A7 3520
#define NOTE_AS7 3729
#define NOTE_B7 3951
#define NOTE_C8 4186
#define NOTE_CS8 4435
#define NOTE_D8 4699
#define NOTE_DS8 4978
計算の仕方は
\[ 440 \times x^{12} = 880 \]
となるような\( x \)を探すことになります。つまり\( x^{12} = 2 \)となるような\( x \)です。
\[x=\sqrt[12]{2}=2^{1/12}\approx1.059463 \]