タクトスイッチ(押しボタン)の使い方 [Arduino]
ボタンを押した時に「導通」して電流が流れます。(動作はモーメンタリ)

種類 | 動作 |
---|---|
モーメンタリ (タクトスイッチ) | ボタンを押している間のみONとなる。ボタンを離すとOFFとなる。※ブレッドボードで使用可能。 |
オルタネイト | ボタンを一回押すとONとなる。OFFにするにはもう1回ボタンを押す。 ※主に基盤で使用される。 |
使用部品・材料
総額で約310円です。(Arduino本体の値段を除く)
部品/材料 | 値段 | 備考 |
---|---|---|
ブレッドボード | ¥270 | 秋月電子の通販コード(P-00315) |
タクトスイッチ (4個) | ¥10 | 秋月電子の通販コード(P-03647) |
カーボン抵抗器 | 数円 | 1MΩ(1個)、10KΩ(2個)、220Ω(1個)を使用 |
配線図1

抵抗値の計算
一般的にLEDは220Ω、ボタンは10KΩを使用する事が多いですので、今回は10KΩを使用しています。(10KΩだとオームの法則で電流は0.5mAとなる)
スケッチ(プログラム)
ボタンを押すと「シリアルモニター」にHIGH(1)が出力されます。ボタンを離すとLOW(0)が出力されます。
※「シリアルモニター」はArduino IDEのツールバーの一番右にある「シリアルモニター」のアイコンをクリックすると表示されます。
void setup() { Serial.begin(9600); pinMode(2,INPUT); } void loop() { int val = digitalRead(2); Serial.println(val); }
続いてはラダー抵抗回路を使用する例です。
配線図2

スケッチ(プログラム)
押されたボタンの電圧をanalogRead()で取得します。実際には「0から5V」の入力電圧を「0から1023」の数値でシリアルモニターへ表示します。
void setup() { Serial.begin(9600); } void loop() { int val = analogRead(A0); Serial.println(val); }
シリアルモニターに表示されている「数値」から電圧を求めるには「数値 ÷ 1024 × 5」で算出できます。
1番目のボタン
値は常に1023。
このボタンを押した時の電圧は5V電源の電圧がそのままかかっていますので、常に1023になります。
2番目のボタン
値は990から1010。
3番目のボタン
値は504から514。
4番目のボタン
値は5から15。
誤差について
Arduinoの5V電源や抵抗器などによって誤差が発生すると思いますので、閾値(値の範囲)は各自の環境に合わせてください。
掲示板
ArduinoやRaspberry Piなどの電子工作の掲示板を作成しました。質問やわからない事は電子工作 (Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。