今回はタクトスイッチ。つまり押しボタンですね。
モーメンタリスイッチの一種です。
押してる間だけ通電するスイッチですね。
タクトスイッチは「モーメンタリスイッチ」ですが、
対を成すのが「オルタネイトスイッチ」です。
オルタネイトスイッチは、押して話しても保持されます。
トグルスイッチなんかがこのオルタネイトスイッチに該当しますね。
今回は紹介しませんが、基本は同じような配線で再現可能です。
これをつなげてArduinoで挙動を見てみます。
タクトスイッチがどんなものか、また配線方法を含めた使い方まで理解できる。
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
そもそもタクトスイッチってなに?
タクトスイッチの使い方
タクトスイッチは、ボタンです。
押して離すともとに戻るボタンです。
パソコンのマウスのクリックなんか想像してもらえるとわかりやすいかも。
押している間だけ通電させたい。もしくは認識させたいときに使われます。
言葉だけではよくわからないので、
プログラミングする前に電気工作しましょう。
まずは電気工作でタクトスイッチの動きを確認
それでは、下記の配線図のようにArduinoとタクトスイッチ、LEDをつなげてみましょう。
今回は電気工作なのでプログラミングは不要で、
Arduinoは5V電源として使用します。
※抵抗は10kΩ程度です。内部pullupでも可。
![tact-switch_arduino](https://www.hobbyhappyblog.jp/wp-content/uploads/2021/07/tact-switch_ブレッドボード-1.jpg)
このように配線してみると、どうなるかわかりますか??
タクトスイッチとは、左右の足が押されている時だけ通電します。
なので今回の場合は、押している間だけLEDが点灯します。
ではこの場合はどうでしょうか?
![tact-switch_arduino_updown](https://www.hobbyhappyblog.jp/wp-content/uploads/2021/07/tact-switch_ブレッドボード.png)
左右はタクトスイッチが押されたときのみ通電。
では上下はどうかというと、
実は常に通電です。
タクトスイッチの上下は常に通電しています。
なので、今回の場合は、青色は常に点灯。
赤色は押したときだけ点灯します。
タクトスイッチをArduinoにつなげてみる
それではお待ちかね。Arduinoのデジタル端子に接続してみましょう。
配線方法
![tact-switch_arduino_gpio](https://www.hobbyhappyblog.jp/wp-content/uploads/2021/06/tact-switch_ブレッドボード3.jpg)
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以内に押して・離して
をしないといけません。
わたしにはできませんでした笑
コメント