小嶋秀樹 | 研究室
日本語 | English
Miyagino の応用(初級)
【LED の接続】

つぎの回路は,標準的な LED の点灯方法を示しています.11番を OFF にすると上側の LED が点灯し,ON にすると消灯します.12番を ON にすると下側の LED が点灯し,OFF にすると消灯します.

Miyagino4 led example

つぎの回路は,1本のディジタル出力端子で2つの LED を切替点灯させる例です.10番を ON にすると下側の LED が点灯し,上側の LED が消灯します.10番を OFF にすると下側の LED が消灯し,上側の LED が点灯します.

Miyagino4 led pair example

つぎの回路では,1本のディジタル出力端子で2つの LED を同時点灯させています.LED の向きを逆にすることも可能です.同様に,最大 5〜10個の抵抗・LED を並列に接続することで,同時点灯させることができます.

Miyagino4 led parallel example
【スイッチの接続】

つぎの回路は,外部にプルアップ抵抗(1k〜10kΩ)を付加して,スイッチの入力を読み取る例です.スイッチが開いている(OFF の)ときは 8番から ON が読み取れ,スイッチが閉じている(ON の)ときは OFF が読み取れます.早い応答速度をもちます.

Miyagino4 led switch (pull-up) example

つぎの回路は,外部にプルダウン抵抗(1〜10k&Ohm;)を付加して,スイッチの入力を読み取る例です.スイッチが開いている(OFF の)ときは 8番から OFF が読み取れ,スイッチが閉じている(ON の)ときは ON が読み取れます.応答速度は比較的遅くなります.

Miyagino4 switch (pull-down) example

つぎの回路は,内部プルアップ抵抗を有効にして,スイッチの入力を読み取る例です.スイッチが開いている(OFF の)ときは 8番から ON が読み取れ,スイッチが閉じている(ON の)ときは OFF が読み取れます.早い応答速度をもちます.外部部品が不要なので,おすすめです.

Miyagino4 switch (internal pull-up) example
Miyagino の応用(中級)
【スイッチのチャタリング対策】

スイッチを手で操作した瞬間,その接点は短い時間間隔で振動し,数ms のあいだ ON/OFF を繰り返すことがあります.この現象を「チャタリング (chattering)」といいます.スイッチが ON/OFF されるごとに内部状態が変化するプログラム(カウンタなど)の場合,このチャタリングの影響は除去すべきです.たとえば,つぎの回路+プログラムでは,ON-OFF の変化が1回でなく,2回(あるいは偶数回)生じた場合,意図したとおりに内部状態を反転させることができません.

スイッチをクリックするたびに LED を反転させるスケッチ+回路(1)

Miyagino3 dio example
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)

Miyagino3 dio example
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 程度の電池を別途用意し,つぎの回路図のように接続してください.

Miyagino4 servo example
Miyagino の応用(上級)
【DC モータの接続】

仕込み中です.

【リレーの接続】

仕込み中です.