つぎの回路は,標準的な LED の点灯方法を示しています.11番を OFF にすると上側の LED が点灯し,ON にすると消灯します.12番を ON にすると下側の LED が点灯し,OFF にすると消灯します.
つぎの回路は,1本のディジタル出力端子で2つの LED を切替点灯させる例です.10番を ON にすると下側の LED が点灯し,上側の LED が消灯します.10番を OFF にすると下側の LED が消灯し,上側の LED が点灯します.
つぎの回路では,1本のディジタル出力端子で2つの LED を同時点灯させています.LED の向きを逆にすることも可能です.同様に,最大 5〜10個の抵抗・LED を並列に接続することで,同時点灯させることができます.
つぎの回路は,外部にプルアップ抵抗(1k〜10kΩ)を付加して,スイッチの入力を読み取る例です.スイッチが開いている(OFF の)ときは 8番から ON が読み取れ,スイッチが閉じている(ON の)ときは OFF が読み取れます.早い応答速度をもちます.
つぎの回路は,外部にプルダウン抵抗(1〜10k&Ohm;)を付加して,スイッチの入力を読み取る例です.スイッチが開いている(OFF の)ときは 8番から OFF が読み取れ,スイッチが閉じている(ON の)ときは ON が読み取れます.応答速度は比較的遅くなります.
つぎの回路は,内部プルアップ抵抗を有効にして,スイッチの入力を読み取る例です.スイッチが開いている(OFF の)ときは 8番から ON が読み取れ,スイッチが閉じている(ON の)ときは OFF が読み取れます.早い応答速度をもちます.外部部品が不要なので,おすすめです.
スイッチを手で操作した瞬間,その接点は短い時間間隔で振動し,数ms のあいだ ON/OFF を繰り返すことがあります.この現象を「チャタリング (chattering)」といいます.スイッチが ON/OFF されるごとに内部状態が変化するプログラム(カウンタなど)の場合,このチャタリングの影響は除去すべきです.たとえば,つぎの回路+プログラムでは,ON-OFF の変化が1回でなく,2回(あるいは偶数回)生じた場合,意図したとおりに内部状態を反転させることができません.
スイッチをクリックするたびに LED を反転させるスケッチ+回路(1)
int pinThen = HIGH; int state = false; void setup () { // LED 13番 pinMode(13, OUTPUT); // 入力 12番(内蔵プルアップ) pinMode(12, INPUT); digitalWrite(12, HIGH); } void loop () { // FALLING 入力で state を反転 int pinNow = digitalRead(12); if ((pinThen == HIGH) && (pinNow == LOW)) { state = !state; } pinThen = pinNow; // state を LED に出力 digitalWrite(13, (state)? HIGH: LOW); }
つぎの回路+プログラムでは,ON-OFF の変化を最初に検出すると,内部状態を反転させ,その後の 50ms の間だけ ON-OFF を無視しています.通常の大きさのスイッチであれば,この方法でチャタリングの影響を除去することができます.
スイッチをクリックするたびに LED を反転させるスケッチ+回路(2)
int state = false; int pinThen = HIGH; unsigned long timeThen; void setup () { // LED 13番 pinMode(13, OUTPUT); // 入力 12番(内蔵プルアップ) pinMode(12, INPUT); digitalWrite(12, HIGH); } void loop () { // FALLING 入力(チャタリング消去)で state を反転 int pinNow = digitalRead(12); int timeNow = millis(); if ((pinThen == HIGH) && (pinNow == LOW) && (timeNow - timeThen > 50) ) { state = !state; timeThen = timeNow; } pinThen = pinNow; // state を LED に出力 digitalWrite(13, (state)? HIGH: LOW); }
サーボモータは,その大きさにもよりますが,動作時に(瞬間的に)大きな電力を消費し,PC から USB で供給できる最大電力(2.5W)を超えてしまうことがあるようです.その結果,Miyagino への電力供給が不十分となり,リセットされたり誤動作したりする可能性があります.そこで,ラジコン用のサーボモータを接続する場合,4.5〜6V 程度の電池を別途用意し,つぎの回路図のように接続してください.
仕込み中です.
仕込み中です.