こんにちは、「メカのりまき」です。

この記事では、「チルトスイッチ」の使用方法について、説明したいと思います。

本記事で使用するもの

本記事で私が使用した物は以下の通りです。

  • 「Arduino IDE2.1.0」をインストールしたPC(Windows11)
  • USBケーブル
  • Arduino Uno R3(ELEGOO UNO R3でも可)
  • チルトスイッチ
  • LED
  • 抵抗器
  • ブレッドボード
  • ジャンパーワイヤー

「Arduino Uno R3」の互換ボードであれば、「ELEGOO UNO R3」以外のボードでも、本記事と同様な手順で動作可能だと思われますが、動作検証はしていないので、その点はご了承ください。

以下のリンクのスターターキットを購入した場合、上記で述べた使用するものは、PC以外すべて入手することができます。

Arduinoをまだ購入していないという方やArduinoで動かすことができるたくさんのパーツが欲しいという方は、購入を検討してみてください。

チルトスイッチの説明

チルトスイッチは、傾きに応じて「ON」、「OFF」を切り替える部品です。

上記で紹介したスターターキットの中には以下の写真のようなチルトスイッチが入っています。

チルトスイッチの写真

このチルトスイッチの円筒の中には、導電性の球体(電気を通せる球体)が入っており、傾きに応じて球体の位置が変わることによって、「ON」、「OFF」を切り変えるといった仕組みになっています。

チルトスイッチの仕組み

チルトスイッチの種類によっては構造が異なる場合がありますが、傾きに応じて「ON」、「OFF」が切り替わるという点は共通だと思われます。

チルトスイッチを試す

では、実際にチルトスイッチを利用して、以下の動画のように、LEDの点灯、消灯を行う方法について説明したいと思います。

動画内ではチルトスイッチの傾きを見やすくするため、チルトスイッチをストローにくっつけていますが、無くても問題ないので、あまり気にしないでください。

回路を作成する

以下のような回路を作成してください。

チルトスイッチでLEDの点灯を行う回路

ここで、抵抗器の電気抵抗の高さは、LEDの順電圧と順電流から計算で求めます。

以下に、直列に繋げる抵抗器の電気抵抗の高さを計算するツールを用意しましたので、ご活用ください。

順電圧VF

[V]

順電流IF

[mA]

直列に繋げる抵抗器の電気抵抗

R = [Ω]

回路で使用する抵抗器は、上記のツールで求めた電気抵抗よりも少し高い電気抵抗のものを使用します。

上記のツールが行っている電気抵抗の計算方法については、以下のリンク先の記事で説明していますので、気になる方はご覧になってください。

ここで、電気抵抗の計算が行えない場合は、電気抵抗が高いもの(大体1[kΩ])から順番に接続していき、ちょうど良い明るさになるものを探していきます。

その際、電気抵抗を低いものにすれば、その分点灯が明るくなるのですが、電気抵抗が低すぎるもの(大体100[Ω]を下回るくらい)の場合、LEDの寿命を縮めてしまったり、破壊してしまったりすることがあるので注意してください。

今回、私は220[Ω]の抵抗器を使用しています。

また、チルトスイッチの接続は、チルトスイッチを傾けやすくするため、以下のように「オス-メス」のジャンパーワイヤーを使って接続しています。

オス-メスのジャンパーワイヤー

(上記で紹介したスターターキットでは「オス-メス」のジャンパーワイヤーが10本くっついた状態で入っていますが、手で簡単に1本ずつに分けることができます。)

チルトスイッチを傾ける際、ブレッドボードごと傾けなければならなくなるため、あまりお勧めはしませんが、「オス-メス」のジャンパーワイヤーが無い場合は、ブレッドボードの空いている位置に差し込んで、そこから、「オス-オス」のジャンパーワイヤーでArduinoまで接続しても動作は可能です。

オス-メスのジャンパーワイヤーが無いときの対策

回路の作成が終わりましたら、電源をいれて、チルトスイッチを直立状態にしたり、傾けたりしてみてください。

回路が正しければ、先程の動画のように、直立状態でチルトスイッチが「ON」になり、LEDが点灯、傾いている状態のとき、チルトスイッチが「OFF」になり、LEDが消灯するのが確認できます。

チルトスイッチとLEDの点灯

チルトスイッチでLEDの点灯を制御する

続いては、以下の動画のように、チルトスイッチとデジタル入力を組み合わせて、複数のLEDの点灯を制御する方法を説明したいと思います。

空のスケッチを書き込む

回路を作成する前に、空のスケッチ(「ファイル」タブの「New Sketch」をクリックしたときに出てくる何の処理も書かれていないスケッチ)を書き込みます。

空のスケッチを書き込む

そうすることにより、前に書き込んだスケッチが、新しく作成しようとしている回路に影響を及ぼすことを防げます。

新しい回路を作成するときは、いつもこの作業をやっておくと、安全に回路を作成することができます。

回路を作成する

以下の回路を作成してください。

チルトスイッチで複数のLEDを制御する回路

抵抗器は先程と同様に、LEDに合わせて選定を行ってください。

スケッチを書き込む

回路の作成が終わりましたら、以下のスケッチを書き込んでください。

スケッチと回路が正しければ、先程の動画のように、チルトスイッチを直立状態にした時間に、応じて傾けた際のLEDの点灯の仕方が変わるのが確認できます。

スケッチの解説

今回のスケッチは、チルトスイッチと接続しているピン(12番)をプルアップ付きの入力ピンとして設定することにより、チルトスイッチの傾きを検知しています。

ここで、「digitalRead(12)」の値は、チルトスイッチが直立状態のとき「0」、傾いているとき「1」となります。

チルトスイッチとdigitalReadの値

上記のプルアップ付きの入力ピンや「digitalRead()」について、良く分からないという方は、以下のリンク先の記事で説明していますので、是非、ご覧になってください。

上記の方法で、チルトスイッチの傾きを検知することが可能なので、「if文」と「digitalRead()」を利用することで、チルトスイッチが直立状態のときと、傾いているときとで処理を分岐させています。

「delay(100)」の部分は、「if文」の外にあるので、チルトスイッチの状態にかかわらず、実行されます。

傾きに応じた処理を行うif文

ここで、「if文」が良く分からないという方は、以下のリンク先の記事で説明していますので、是非、ご覧になってください。

次に、チルトスイッチの傾きに応じた処理内容について、説明したいと思います。

まず、チルトスイッチが直立状態のときの処理についてです。

チルトスイッチが直立状態のときは、「charge_count++」により、変数「charge_count」の値を1増やしていきます。

また、「if文」や「analogWrite()」を利用することで、「charge_count」の値に応じて、11番ピンのLEDの明るさを変更しています。

直立状態のときの処理

ここで、LEDの制御方法が良く分からないという方は、以下のリンク先の記事で説明していますので、是非、ご覧になってください。

次に、チルトスイッチが傾いているときの処理についてです。

チルトスイッチが傾いている状態では、「charge_count」の値に応じて、5~11番に繋いだLEDの点灯、消灯を行っています。

また、「charge_count=0」により、「charge_count」の値はリセットされるので、LEDをもう一度点灯させるには、チルトスイッチを直立状態に戻し、「charge_count」の値を増やす必要があります。

傾いている状態のときの処理

最後に「void loop()」内の処理をまとめると以下のようになります。

チルトスイッチで複数のLEDを制御する処理のまとめ

チルトスイッチとデジタル入力を組み合わせて、複数のLEDの点灯を制御する方法についての説明は以上となります。

終わりに

チルトスイッチの使い方についてご理解いただけたでしょうか。

チルトスイッチは傾きに応じて「ON」、「OFF」を切り替える単純な部品ですが、工夫しだいで色々なことができそうな面白い部品です。

是非、チルトスイッチの面白い使い方を見つけ出し、実験をしてみてください。

次回の記事では「ジョイスティック」の使い方について説明したいと思います。

本記事はここまでです。ご清覧ありがとうございました。

広告

楽天モーションウィジェットとGoogleアドセンス広告です。

気になる商品がございましたら、チェックをしてみてください。