ハードウェア
このセクションでは、ハードウェアについて解説します
このセクションでは、ハードウェアについて解説します
このセクションでは各部品について、その動作や制御方法を解説します
このセクションでは出力部品について、その動作や制御方法を解説します
7つのセグメント(棒)と小数点の点灯を切り替えることで、数字や文字を表示することができます
制御対象基盤には2つ取り付けてあり、指定のピンに信号を送ることで各7セグメントの表示のON/OFFを切り替えることができます
各セグメントには9つのピンがあり、2つ合計で18個のピンを使用します
9つのうち1つは表示の切り替え(ON/OFF)に使用し、残りの8つで各セグメントと小数点のON/OFFを切り替えます
セグメントのピン配置は一番上の横棒、右上、右下と時計回りに配置されており、最後は中央横棒、小数点となっています
ステッピングモーターと同じように、二次元配列にパターンを格納することを推奨します
// パターン例
const int SEG_PTN[][7] = {
{1,1,1,1,1,1,0}, // 0
{0,1,1,0,0,0,0}, // 1
{1,1,0,1,1,0,1}, // 2
// 省略
{1,1,1,1,0,1,1}, // 9
{0,0,0,0,0,0,0} // リセット
};
// リセットを入れると便利
DCモーターは回る、止まるの動作のみをする基本的なモーターです
プログラムで、回転する方向、速度、停止の素早さを制御できます
2つのピンとクロックで制御します
ピン1 | ピン2 | 動作 |
---|---|---|
LOW | LOW | 緩やかな停止 |
HIGH | HIGH | 急停止 |
HIGH | LOW | 回転 |
LOW | HIGH | 逆回転 |
ステッピングモーターは回転する角度を調節できるモーターです
プログラムで、回転する方向、角度、速度を調節することができます
4つのピンとクロックで制御します
ピン1 | ピン2 | ピン3 | ピン4 |
---|---|---|---|
HIGH | HIGH | LOW | LOW |
LOW | HIGH | HIGH | LOW |
LOW | LOW | HIGH | HIGH |
HIGH | LOW | LOW | HIGH |
パターンを二次元配列に格納して for
文などで値を取り出すと簡潔なプログラムにすることができます
ブザーは一定の周波数の音を鳴らすことができます
プログラムで周波数、音を鳴らす長さを指定することができます
Arduino言語に含まれている tone
関数を使用することで周波数、音を鳴らす秒数を指定することができます
また、 noTone
関数を使用することで音を消すこともできます
このセクションでは入力部品について、その動作や制御方法を解説します
押している間のみ通電する、最も単純なスイッチです
入力基盤によって、プルアップ・プルダウンがあるので注意しましょう
digitalRead
関数を用いて値を読み取ります
if (digitalRead(ピン番号) == HIGH) {
// HIGHの時の処理
} else {
// LOWの時の処理
}
明るさを読み取ることができるセンサーです
digitalRead
関数を使用すると HIGH
/ LOW
で値を読み取ることができます
analogRead
関数を使用するとアナログ値で読み取ることができます
明るさの具合で処理を変更する問題は出題されないので、 digitalRead
関数を使用することが一般的です
if (digitalRead(ピン番号) == HIGH) {
// HIGHの時の処理
} else {
// LOWの時の処理
}
軸がどれだけ回転されられたかを読み取ることができます
出力値は、0から1023の1024段階で出力されます
digitalRead
関数を使用すると HIGH
/ LOW
で値を読み取ることができます
analogRead
関数を使用するとアナログ値で読み取ることができます
あまりHIGH/LOWで読み取るような問題は出題されないので analogRead
関数を使用することが一般的です
int volume = analogRead(ピン番号);
if (volume <= 500) {
// 中央より下の値のときの処理
} else if(volume <= 524) {
// 中央付近のときの処理
} else {
// 中央より上の値のときの処理
}
このページでは、県大会で使用するハードウェアについて解説します
ものコンでは 制御対象装置 、 入力回路基板 と制御用コンピューターを接続して問題を解きます
制御用コンピューターには指定はありませんが、Arduino (Uno, Mega) を使用しています
PCからArduinoへArduino IDEを用いてプログラムを書き込み、実行します
制御対象装置には、
以上のパーツがついています
入力回路基板には
以上のパーツがついています
連絡いただければ基盤データは渡します
ピン番号 | 接続先 | メモ |
---|---|---|
1 | Vcc | |
2 | 7セグ左ON/OFF | |
3 | 7セグ右ON/OFF | |
4 | ブザー | toneで鳴らしてください |
5 | クロック | DCモーター/ステッピングモーター使用時に入力必須 |
6 | オプション6-2 | 未使用 CN6と書いてあるピン |
7 | オプション6-3 | 〃 |
8 | オプション6-4 | 〃 |
9 | オプション6-5 | 〃 |
10 | GND | |
11 | Vcc | |
12 | 7セグ/ステッピング | 7セグのピンは一番上の横棒から時計回り |
13 | 7セグ/ステッピング | |
14 | 7セグ/ステッピング | |
15 | 7セグ/ステッピング | |
16 | 7セグ/DCモータ | |
17 | 7セグ/DCモータ | |
18 | 7セグ | 中央横棒 |
19 | 7セグ | 小数点 |
20 | GND | |
22 | 製作基盤入力 | digitalRead用 |
24 | 製作基盤入力 | 〃 |
26 | 製作基盤入力 | 〃 |
A0 | 製作基盤入力 | analogRead用 |
A1 | 製作基盤入力 | 〃 |
A2 | 製作基盤入力 | 〃 |
ピン番号 | 接続先 | メモ |
---|---|---|
2 | 7セグ左ON/OFF | |
3 | 7セグ右ON/OFF | |
4 | ブザー | toneで鳴らしてください |
5 | クロック | DCモーター/ステッピングモーター使用時に入力必須 |
6 | 7セグ/ステッピング | 7セグのピンは一番上の横棒から時計回り |
7 | 7セグ/ステッピング | |
8 | 7セグ/ステッピング | |
9 | 7セグ/ステッピング | |
10 | 7セグ/DCモーター | |
11 | 7セグ/DCモーター | |
12 | 7セグ | 中央横棒 |
13 | 7セグ | 小数点 |
14 | 製作基盤入力 | digitalRead用 |
15 | 製作基盤入力 | 〃 |
16 | 製作基盤入力 | 〃 |
A0 | 製作基盤入力 | analogRead用 |
A1 | 製作基盤入力 | 〃 |
A2 | 製作基盤入力 | 〃 |