Youtubeも元気に更新中!!

Youtubeのチャンネルで動画公開中。
動画のほうがわかりやすい項目について解説しています!

チャンネル登録

Arduinoでタクトスイッチをつなげてみる

arduino-eyecatchArduino(マイコンボード)

今回はタクトスイッチ。つまり押しボタンですね。

モーメンタリスイッチの一種です。

押してる間だけ通電するスイッチですね。

タクトスイッチは「モーメンタリスイッチ」ですが、

対を成すのが「オルタネイトスイッチ」です。

オルタネイトスイッチは、押して話しても保持されます。

トグルスイッチなんかがこのオルタネイトスイッチに該当しますね。

今回は紹介しませんが、基本は同じような配線で再現可能です。

これをつなげてArduinoで挙動を見てみます。

自己紹介

東証一部上場企業でサラリーマンしてます。

主に工場(生産現場)で使用する検査装置のアプリケーション開発してます。

ヒトの作業を自動化して簡略化するアプリケーションを日々開発中。

転職に成功して現在は超大手企業でシステム系の開発をしています。

Youtubeチャンネルにさまざまな動画を上げています

↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓

そもそもタクトスイッチってなに?

タクトスイッチの使い方

タクトスイッチは、ボタンです。

押して離すともとに戻るボタンです。

パソコンのマウスのクリックなんか想像してもらえるとわかりやすいかも。

押している間だけ通電させたい。もしくは認識させたいときに使われます。

言葉だけではよくわからないので、

プログラミングする前に電気工作しましょう。

まずは電気工作でタクトスイッチの動きを確認

それでは、下記の配線図のようにArduinoとタクトスイッチ、LEDをつなげてみましょう。

今回は電気工作なのでプログラミングは不要で、

Arduinoは5V電源として使用します。

※抵抗は10kΩ程度です。内部pullupでも可。

tact-switch_arduino
タクトスイッチの使い方1(ArduinoとLEDで確認。)

このように配線してみると、どうなるかわかりますか??

タクトスイッチとは、左右の足が押されている時だけ通電します。

なので今回の場合は、押している間だけLEDが点灯します。

ではこの場合はどうでしょうか?

tact-switch_arduino_updown
タクトスイッチの使い方2(タクトスイッチの上下はどうなっているのか?)

左右はタクトスイッチが押されたときのみ通電。

では上下はどうかというと、

実は常に通電です。

タクトスイッチの上下は常に通電しています。

なので、今回の場合は、青色は常に点灯。

赤色は押したときだけ点灯します。

タクトスイッチをArduinoにつなげてみる

それではお待ちかね。Arduinoのデジタル端子に接続してみましょう。

配線方法

tact-switch_arduino_gpio
ArduinoのGPIOピンとタクトスイッチをつなげている様子。

LEDはいったん取り払って、デジタル端子の3番pinとタクトスイッチをつなげましょう。

抵抗は先ほどLEDの時に使用した10kΩで大丈夫です。

先ほどの電子工作でわかった通り、

この状態では左右が通電していないのでArduinoの3番pinには何も流れないことがわかりますね。

ボタンを押すと5Vが流れて、3番pinに電気信号が流れる。という仕組みです。

タクトスイッチの状態を確かめるためのソースコード

それでは3番pinを監視するためのソースコードを以下に表示します。

int tact_switch=3;//今回はデジタルの3番pinを使用します。 
void setup() {
  pinMode(tact_switch,INPUT);//3番pinを入力PINと宣言する。pullupして抵抗抜いてもOK
  Serial.begin(9600);//シリアル監視で状況を確認するためにSerialを設定する。
}
void loop() {
  Serial.println(digitalRead(tact_switch));//3番pinの状況を表示する。
  delay(10);//表示の更新頻度
}

シリアル通信で確認するので、シリアルの窓を表示させてください。

ものすごい勢いで0が表示されていきます。

タクトスイッチの状態の結果

結果は0がすごい勢いで表示され、

タクトスイッチを押すと、押している間だけ1になっているのがわかると思います。

これは、3番pinに5Vが流れている時だけデジタル端子が反応して1になっているためです。

一瞬押しただけなのに1が連続で出力されるのがわかると思いますが、

これは更新速度。つまり監視のタイミングがとても早いためです。

このソースコード上では10mmsecで更新しているので、

もし1回だけ1を表示させたいなら、10mmsec以内に押して・離して

をしないといけません。

わたしにはできませんでした笑

コメント

タイトルとURLをコピーしました