ハードウェア

このセクションでは、ハードウェアについて解説します

ハードウェアのサブセクション

部品解説

このセクションでは各部品について、その動作や制御方法を解説します

部品解説のサブセクション

出力部品

このセクションでは出力部品について、その動作や制御方法を解説します

出力部品のサブセクション

7セグメント

説明

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モーター

説明

DCモーターは回る、止まるの動作のみをする基本的なモーターです

プログラムで、回転する方向、速度、停止の素早さを制御できます

制御方法

2つのピンとクロックで制御します

ピン1ピン2動作
LOWLOW緩やかな停止
HIGHHIGH急停止
HIGHLOW回転
LOWHIGH逆回転

ステッピングモーター

説明

ステッピングモーターは回転する角度を調節できるモーターです

プログラムで、回転する方向、角度、速度を調節することができます

制御方法

4つのピンとクロックで制御します

ピン1ピン2ピン3ピン4
HIGHHIGHLOWLOW
LOWHIGHHIGHLOW
LOWLOWHIGHHIGH
HIGHLOWLOWHIGH

パターンを二次元配列に格納して 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を用いてプログラムを書き込み、実行します

機器接続図 機器接続図

制御対象装置

制御対象装置には、

  • DCモーター
  • ステッピングモーター
  • ブザー
  • 7セグメント x2個

以上のパーツがついています

入力回路基板

入力回路基板には

  • タクトスイッチ
  • ホトカプラ
  • 可変抵抗

以上のパーツがついています

ピン対応表

Arduino Mega (大きいほう)

連絡いただければ基盤データは渡します

ピン番号接続先メモ
1Vcc
27セグ左ON/OFF
37セグ右ON/OFF
4ブザーtoneで鳴らしてください
5クロックDCモーター/ステッピングモーター使用時に入力必須
6オプション6-2未使用 CN6と書いてあるピン
7オプション6-3
8オプション6-4
9オプション6-5
10GND
11Vcc
127セグ/ステッピング7セグのピンは一番上の横棒から時計回り
137セグ/ステッピング
147セグ/ステッピング
157セグ/ステッピング
167セグ/DCモータ
177セグ/DCモータ
187セグ中央横棒
197セグ小数点
20GND
22製作基盤入力digitalRead用
24製作基盤入力
26製作基盤入力
A0製作基盤入力analogRead用
A1製作基盤入力
A2製作基盤入力

Arduino Uno (小さいほう)

基板データ

ピン番号接続先メモ
27セグ左ON/OFF
37セグ右ON/OFF
4ブザーtoneで鳴らしてください
5クロックDCモーター/ステッピングモーター使用時に入力必須
67セグ/ステッピング7セグのピンは一番上の横棒から時計回り
77セグ/ステッピング
87セグ/ステッピング
97セグ/ステッピング
107セグ/DCモーター
117セグ/DCモーター
127セグ中央横棒
137セグ小数点
14製作基盤入力digitalRead用
15製作基盤入力
16製作基盤入力
A0製作基盤入力analogRead用
A1製作基盤入力
A2製作基盤入力