「Arduino Mega 2560 LESSON:5 LEDをオン/オフするためにデジタル入力付きのプッシュボタンを使用する方法」の版間の差分
(ページの作成:「Arduino Mega 2560に戻る。 == '''概要''' == LEDをオン/オフするためにデジタル入力付きのプッシュボタンを使用する方法 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]]に戻る。 | ||
== '''概要''' == | == '''概要''' == | ||
LEDをオン/オフするためにデジタル入力付きのプッシュボタンを使用する方法 | LEDをオン/オフするためにデジタル入力付きのプッシュボタンを使用する方法 | ||
回路図は以下のようなものです。 | |||
[[ファイル:Mega2560 L05 01 結線図.png|380px||none|結線図]] | |||
Arudino C++コードは以下のようなものです。 | |||
<freescript></script><div class="hljs-wrap"><pre data-label="Arduino Code" class="pre-wrap"> | |||
<code class="cpp">//www.elegoo.com | |||
//2016.12.08 | |||
int ledPin = 5; | |||
int buttonApin = 9; | |||
int buttonBpin = 8; | |||
//byte leds = 0; | |||
void setup() | |||
{ | |||
pinMode(ledPin, OUTPUT); | |||
pinMode(buttonApin, INPUT_PULLUP); | |||
pinMode(buttonBpin, INPUT_PULLUP); | |||
} | |||
void loop() | |||
{ | |||
if (digitalRead(buttonApin) == LOW) | |||
{ | |||
digitalWrite(ledPin, HIGH); | |||
} | |||
if (digitalRead(buttonBpin) == LOW) | |||
{ | |||
digitalWrite(ledPin, LOW); | |||
} | |||
} | |||
</code></pre></div><script></freescript> | |||
出来上がりは以下のようなものになりました。 | |||
[[ファイル:Mega2560 L05 02 完成図.jpg|380px||none|完成図]] | |||
スイッチが新たに登場します。 | |||
部品図は管理人のよるもので、AIで作図したもの | |||
[[ファイル:Mega2560 L05 04 スイッチ部品説明図.png|380px||none|スイッチ部品説明図]] | |||
このようなスイッチになっています。スイッチでLEDを付けたり消したりしますが、回路ではスイッチ自体はLEDの回路に影響しないカタチで二つのスイッチが接続されている回路になっています。スイッチが押されたことをマイクロコンピュータが検出して、LEDの回路への電力供給を制御するような仕組みになっています。 | |||
部品図は管理人のよるもので、AIによる作図説明 | |||
[[ファイル:Mega2560 L05 05 プルアッププルダウン説明図.png|380px||none|プルアッププルダウン説明図]] | |||
スイッチの役割を持たせると、プルアップ抵抗やプルダウン抵抗で電力を消費します。プルアップにしてマイクロコンピュータ側で消費するか、プルダウンにして外付け抵抗で消費するかの差があるだけです。 | |||
Mega2560には内部プルアップ機能があるため、単純なスイッチ入力では外付けのプルアップ/プルダウン抵抗を省略し、INPUT_PULLUPを利用できる。特別な理由がなければ、部品点数を減らせる内部プルアップを利用すると簡単である。ただし、スイッチを押したときがLOWになる点に注意する。 | |||
[[Arduino Mega 2560]]に戻る。 | [[Arduino Mega 2560]]に戻る。 | ||
2026年10月2日 (金) 15:15時点における版
概要
LEDをオン/オフするためにデジタル入力付きのプッシュボタンを使用する方法
回路図は以下のようなものです。
Arudino C++コードは以下のようなものです。
//www.elegoo.com
//2016.12.08
int ledPin = 5;
int buttonApin = 9;
int buttonBpin = 8;
//byte leds = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonApin, INPUT_PULLUP);
pinMode(buttonBpin, INPUT_PULLUP);
}
void loop()
{
if (digitalRead(buttonApin) == LOW)
{
digitalWrite(ledPin, HIGH);
}
if (digitalRead(buttonBpin) == LOW)
{
digitalWrite(ledPin, LOW);
}
}
出来上がりは以下のようなものになりました。
スイッチが新たに登場します。
部品図は管理人のよるもので、AIで作図したもの
このようなスイッチになっています。スイッチでLEDを付けたり消したりしますが、回路ではスイッチ自体はLEDの回路に影響しないカタチで二つのスイッチが接続されている回路になっています。スイッチが押されたことをマイクロコンピュータが検出して、LEDの回路への電力供給を制御するような仕組みになっています。
部品図は管理人のよるもので、AIによる作図説明
スイッチの役割を持たせると、プルアップ抵抗やプルダウン抵抗で電力を消費します。プルアップにしてマイクロコンピュータ側で消費するか、プルダウンにして外付け抵抗で消費するかの差があるだけです。
Mega2560には内部プルアップ機能があるため、単純なスイッチ入力では外付けのプルアップ/プルダウン抵抗を省略し、INPUT_PULLUPを利用できる。特別な理由がなければ、部品点数を減らせる内部プルアップを利用すると簡単である。ただし、スイッチを押したときがLOWになる点に注意する。