目次
本記事で使用するもの
以下のリンクのスターターキットを購入した場合、上記で述べた使用するものは、PC以外すべて入手することができます。
Arduinoをまだ購入していないという方やArduinoで動かすことができるたくさんのパーツが欲しいという方は、購入を検討してみてください。
チルトスイッチの説明
チルトスイッチは、傾きに応じて「ON」、「OFF」を切り替える部品です。
上記で紹介したスターターキットの中には以下の写真のようなチルトスイッチが入っています。
このチルトスイッチの円筒の中には、導電性の球体(電気を通せる球体)が入っており、傾きに応じて球体の位置が変わることによって、「ON」、「OFF」を切り変えるといった仕組みになっています。
チルトスイッチの種類によっては構造が異なる場合がありますが、傾きに応じて「ON」、「OFF」が切り替わるという点は共通だと思われます。
チルトスイッチを試す
では、実際にチルトスイッチを利用して、以下の動画のように、LEDの点灯、消灯を行う方法について説明したいと思います。
動画内ではチルトスイッチの傾きを見やすくするため、チルトスイッチをストローにくっつけていますが、無くても問題ないので、あまり気にしないでください。
回路を作成する
以下のような回路を作成してください。
ここで、抵抗器の電気抵抗の高さは、LEDの順電圧と順電流から計算で求めます。
以下に、直列に繋げる抵抗器の電気抵抗の高さを計算するツールを用意しましたので、ご活用ください。
回路で使用する抵抗器は、上記のツールで求めた電気抵抗よりも少し高い電気抵抗のものを使用します。
上記のツールが行っている電気抵抗の計算方法については、以下のリンク先の記事で説明していますので、気になる方はご覧になってください。
ここで、電気抵抗の計算が行えない場合は、電気抵抗が高いもの(大体1[kΩ])から順番に接続していき、ちょうど良い明るさになるものを探していきます。
その際、電気抵抗を低いものにすれば、その分点灯が明るくなるのですが、電気抵抗が低すぎるもの(大体100[Ω]を下回るくらい)の場合、LEDの寿命を縮めてしまったり、破壊してしまったりすることがあるので注意してください。
今回、私は220[Ω]の抵抗器を使用しています。
また、チルトスイッチの接続は、チルトスイッチを傾けやすくするため、以下のように「オス-メス」のジャンパーワイヤーを使って接続しています。
(上記で紹介したスターターキットでは「オス-メス」のジャンパーワイヤーが10本くっついた状態で入っていますが、手で簡単に1本ずつに分けることができます。)
チルトスイッチを傾ける際、ブレッドボードごと傾けなければならなくなるため、あまりお勧めはしませんが、「オス-メス」のジャンパーワイヤーが無い場合は、ブレッドボードの空いている位置に差し込んで、そこから、「オス-オス」のジャンパーワイヤーでArduinoまで接続しても動作は可能です。
回路の作成が終わりましたら、電源をいれて、チルトスイッチを直立状態にしたり、傾けたりしてみてください。
回路が正しければ、先程の動画のように、直立状態でチルトスイッチが「ON」になり、LEDが点灯、傾いている状態のとき、チルトスイッチが「OFF」になり、LEDが消灯するのが確認できます。
チルトスイッチでLEDの点灯を制御する
続いては、以下の動画のように、チルトスイッチとデジタル入力を組み合わせて、複数のLEDの点灯を制御する方法を説明したいと思います。
空のスケッチを書き込む
回路を作成する前に、空のスケッチ(「ファイル」タブの「New Sketch」をクリックしたときに出てくる何の処理も書かれていないスケッチ)を書き込みます。
そうすることにより、前に書き込んだスケッチが、新しく作成しようとしている回路に影響を及ぼすことを防げます。
新しい回路を作成するときは、いつもこの作業をやっておくと、安全に回路を作成することができます。
回路を作成する
以下の回路を作成してください。
抵抗器は先程と同様に、LEDに合わせて選定を行ってください。
スケッチを書き込む
回路の作成が終わりましたら、以下のスケッチを書き込んでください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
//チルトスイッチが直立状態のとき増えていくカウント int charge_count=0; void setup() { //LEDに繋いだピン(5~11)を出力ピンとして設定する for(int i=5;i<=11;i++){ pinMode(i,OUTPUT); } //チルトスイッチに繋いだピン(12)をプルアップ付きの入力ピンとして設定する pinMode(12,INPUT_PULLUP); } void loop() { //チルトスイッチの傾きに応じて処理内容を変更 if(digitalRead(12)==0){ //直立状態のときはcharge_countを増やし、値に応じて11番ピンのLEDの明るさを変更する charge_count++; if(charge_count>=50){ digitalWrite(11,HIGH); }else if(charge_count>=30){ analogWrite(11,60); }else if(charge_count>=10){ analogWrite(11,15); } }else{ //傾いているときはcharge_countの値に応じたLEDの点灯を行い、値を0に戻す if(charge_count>=50){ for(int i=10;i>=5;i--){ digitalWrite(i,HIGH); delay(50); } for(int i=11;i>=5;i--){ digitalWrite(i,LOW); delay(100); } }else if(charge_count>=30){ digitalWrite(11,LOW); for(int i=10;i>=7;i--){ digitalWrite(i,HIGH); delay(100); digitalWrite(i,LOW); delay(50); } }else if(charge_count>=10){ digitalWrite(11,LOW); for(int i=10;i>=9;i--){ digitalWrite(i,HIGH); delay(50); digitalWrite(i,LOW); delay(50); } } charge_count=0; } //0.1秒待機 delay(100); } |
スケッチと回路が正しければ、先程の動画のように、チルトスイッチを直立状態にした時間に、応じて傾けた際のLEDの点灯の仕方が変わるのが確認できます。
スケッチの解説
今回のスケッチは、チルトスイッチと接続しているピン(12番)をプルアップ付きの入力ピンとして設定することにより、チルトスイッチの傾きを検知しています。
ここで、「digitalRead(12)」の値は、チルトスイッチが直立状態のとき「0」、傾いているとき「1」となります。
上記のプルアップ付きの入力ピンや「digitalRead()」について、良く分からないという方は、以下のリンク先の記事で説明していますので、是非、ご覧になってください。
上記の方法で、チルトスイッチの傾きを検知することが可能なので、「if文」と「digitalRead()」を利用することで、チルトスイッチが直立状態のときと、傾いているときとで処理を分岐させています。
「delay(100)」の部分は、「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の点灯を制御する方法についての説明は以上となります。
終わりに
チルトスイッチの使い方についてご理解いただけたでしょうか。
チルトスイッチは傾きに応じて「ON」、「OFF」を切り替える単純な部品ですが、工夫しだいで色々なことができそうな面白い部品です。
是非、チルトスイッチの面白い使い方を見つけ出し、実験をしてみてください。
次回の記事では「ジョイスティック」の使い方について説明したいと思います。
本記事はここまでです。ご清覧ありがとうございました。
広告
楽天モーションウィジェットとGoogleアドセンス広告です。
気になる商品がございましたら、チェックをしてみてください。