Arduinoと戯れてみる!

Arduino 入門 Lesson 08 【チルトスイッチ編】

Arduino-lesson08Arduino入門編
スポンサーリンク
子供と一緒に始める マイコンプログラム
Arduino 入門
Lesson 08
【チルトスイッチ編】

こんにちは、管理人のomoroyaです。

「Arduino」を使ったマイコンのプログラミングを子供と一緒に学習するブログ。

少しずつ、子供と一緒に楽しみながら気長にアップしてく予定です。

 

本記事はLesson 08 【チルトスイッチ編】です。
※Tilt Switch(チルトスイッチ)またはTilt Sensor(チルトセンサー)と呼ばれる部品です。

日本語で言うと、傾斜スイッチ、傾斜センサーといったところでしょうか。

原理を理解すると、センサーというよりもスイッチというのがしっくりくる部品です。

 

本Lesson解説で使用しているのはArduino互換品です。

互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段で豊富な部品が多数ついています。

 

スポンサーリンク

はじめに

チルトスイッチ(傾斜スイッチ)は、名前の通り傾きでONとOFFが切り替わるスイッチです。

原理は筒状の本体の中に、2つの接点、それに固定されていない導電隊(金属球)が入っています。

通常は下部の端子にボールが接触していて、端子間に電気を通すようになっています。

逆さになってボールが端子から外れると電気が通らなくなります。

正確な傾きを調べることはできませんが、傾いているいないの2値の検出には便利です。

 

倒れたらスイッチを切りたい機器などに使われます。

例えば、ストーブなど、倒れても動いていたら困るものに使われています。

補足ですが、正確な傾きを知るためには、加速度センサを利用します。

 

Lesson 08目標

チルトスイッチ(傾斜スイッチ)と、発光ダイオード(以下LED)を使用します。

チルトスイッチを傾けたり、戻したりすることでLEDが消灯、点灯する回路を作ります。

上記によりチルトスイッチが「オン」「オフ」しスイッチの役割をになっていることを確認します。

 

そのスイッチの働きをLEDの点灯、消灯で確認します。

また、今回はpinMode(pin,mode)コマンドにてINPUT_PULLUPを定義します。

デジタル入力のプルアップ機能についてもあわせて理解します。

 

本Lessonにでてくるコードはこれまで使用したコードばかりです。

そのためスケッチ(コード、プログラム)も理解しやすいです。

本Lessonも、遊ぶというところが今回一番大事なところです。

 

準備

今回のLessonの準備に取り掛かりましょう。

本Lessonも部品は多くないので、すぐに実践に移ることができます。

 

必要なもの

 

抵抗は単品で揃えるよりはセットをおすすめします。

 

Jumper wireは今後も頻繁に利用します。

できれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。

 

使用部品説明

新たに登場した部品について説明していきます。

本Lessonで新しく登場するのは、チルトスイッチのみです。

 

チルトスイッチ 実物写真

下の写真が、チルトスイッチ(傾斜スイッチ)です。

振ると中のボールがカチカチと鳴って動いているのがわかります。

今回購入したELEGOO UNO キットに合わせて梱包されています。

チルトスイッチには「+」、「-」極性は特にありません。

Arduino-lesson08-01

 

ちなみにAmazonで売られているものはこちら。

見た目が違いますが、同じ部品となります。

手持ちがない方は、こちらをどうぞ。

 

チルトスイッチ 原理

下記にチルトスイッチの原理図を示します。

センサーというよりスイッチという方がしっくりくるというのがお分かりいただけたでしょうか。

 

ON状態
直立時はボールが下部の端子に触れているためボールを介して導通します。
OFF状態
傾けるとボールが端子から離れるため導通が切れます。

Arduino-lesson08-02

 

チルトスイッチ(傾斜スイッチ)を利用した回路図

番外編 01にてFritzingが使えるようになったので、さっそく回路図を作ってみました。

 

こちらが回路図。

繰り返しになりますが、LEDが焼き切れないように抵抗の挿入を忘れないでください。

 

Arduino-lesson08-03.jpg

 

こちらがブレッドボード図。
※M-M jumper wireのみでできるようにしています。

Arduino-lesson08-04

 

回路接続での重要箇所
チルトスイッチを「5V」ではなく「GND」に接続したところです。

 

実践 回路作成とコード作成

さっそく、部品を接続しコードを書いて、動かしていきましょう。

どんな風に動くのか楽しみです。

 

接続

下図に示すように、用意した部品を使用して接続しましょう。

ブレッドボード図ではM-M jumper wireのみで書いています。

M-F jumper wireがある場合は、チルトスイッチはM-F jumper wireで接続した方が動かしやすです。

使用するポートは、Digital IOの「2」、「3」、電源の「5V」、「GND」です。

穴に挿入しづらいときは、ラジオペンチなどを使用してください。

 

Arduino-lesson08-05

 

コードの書き込み

接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。

本記事のコードを参考に書いてみてください。

実際書いてみた方が慣れるのに良いです。

コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で別名で保存しておきましょう。

今回のコードの肝は、pinMode(pin,mode)コマンドの使い方です。

 

コマンド説明

コードの説明をしていきたいと思います。

復習もかねて、今回の重要コマンドの説明をします。

特に、pinMode(pin,mode)のmodeの所を注目してください。

今回は、modeにINPUT_PULLUPを使用します。

コマンド説明
digitalRead(pin)指定したピンの値を読み取ります。
その結果はHIGHまたはLOWとなります。
例:val = deitalRead(pin)
変数valに入力ピンの状態が入ります。
pinMode(pin, mode)pin::設定したいピンの番号
mode:INPUT,OUTPUT,INPUT_PULLUP
INPUT_PULLUPは、内部プルアップ抵抗を有効にできます。
INPUTを指定すると、内部プルアップは無効となります。
※プルアップするとは?
ピンに何も繋がっていなくても「High」にできるということです。
UNOのデータシートには20kΩ~50kΩと記載されています。

※プルアップについて
指定したピンが20kΩ~50kΩの抵抗を介して5Vにつながっていると考えてください。

 

サンプルコード

サンプルコードを下記に示します。

下記をUNOに書き込んで動作を確認していきます。

※一部コードに誤記があったので修正しました。@2018年12月23日

//Lesson 08 傾いたらLEDを消灯させて知らせるスケッチ
//https://omoroya.com/

int tiltPin = 2;//チルトスイッチ
int ledPin = 3;//LED

void setup() //初期設定
{ 
  pinMode(tiltPin,INPUT_PULLUP); //2番ピンをプルアップありのインプットに指定
  pinMode(ledPin,OUTPUT);        //3番ピンをアウトプットに指定
} 

void loop()  //ループ関数
{  
  int digitalVal = digitalRead(tiltPin);
  if(HIGH == digitalVal)       //2番ピンがHighならAを実行
  {
    digitalWrite(ledPin,LOW);  //A 2番ピンがHighなら傾い導通していないためプルアップ。LED消灯させる。
  }
  else                         //2番ピンがHighでない場合Bを実行
  {
    digitalWrite(ledPin,HIGH); //B Highでなければ傾いていないのでGNDに接続される。LED点灯させる。
  }
}

 

実践 動作確認

では、さっそく動作を確認していきます。

・チルトスイッチ 直立時

LEDが点灯しています。

Arduino-lesson08-06

 

・チルトスイッチ 傾斜時

LEDが消灯しています。

Arduino-lesson08-07

 

チルトスイッチの、ON/OFF確認できましたでしょうか?

今回はLEDを利用しましたがLesson 06 で学習した電子ブザーを使ってみるのもおもしろいです。

倒れたらブザーがなる。

実際にそういう機器ありますよね?

子供が「おー、すごい」ということ間違いなし・・・多分。

 

身近にあるものと関連づけられると楽しみが増します。

とにかく遊ぶことが理解に一番近づく方法です。

 

なぜ「GND」に接続か

今回、チルトスイッチを「5V」ではなく「GND」に接続しました。

なぜ、「GND」に接続したのか?

これ、結構回路作成で重要だったりします。

「5V」に接続しても作成することはできます。

その場合、チルトスイッチが「ON」しているとき2番ピンは「High」と認識します。

では、チルトスイッチが「OFF」している場合はどうなるか?

2番ピンが浮いた状態になってしまい、High,Lowの状態が正しく認識できません。

認識させるためには、チルトスイッチが「OFF」の時にはプルダウンさせておく必要があります。

しかし、UNOの入力ピンにはプルダウン機能がありません。

そのため、外付けで数十kΩ程度の抵抗を2番ピンに付けてプルダウンを作る必要があります。
※プルダウンの接続方法:2番ピン ー 抵抗 ー GND

部品が1個増えてしまいます。

回路を作成するときは、できるだけ部品数を少なくした方が良いです。

部品が少なければ少ないほど、不具合も少なくなりますしコストも下がります。
※趣味で遊んでいる分には、気にする必要がありませんが・・・。

ちなみにチルトスイッチを5Vに接続し、プルダウンを追加した回路図を載せておきます。
※下図

試しにこちらも遊んでみてください。

今回のコードをそのまま使用した場合、動作が逆になることがわかります。
※ただしプルアップを無効にするために
pinMode(tiltPin,INPUT_PULLUP);
pinMode(tiltPin,INPUT);
に変更してください。

チルトスイッチが直立時、LEDがOFF。

チルトスイッチが傾斜時、LEDがON。

Arduino-lesson08-08

 

まとめ

今回は以下の内容について理解してもらいました。

特に項目4の遊ぶことが一番の目標でした。

1.チルトスイッチが「オン」「オフ」しスイッチの役割をになっていることを確認する。
2.チルトスイッチの動きをLEDの点灯、消灯で確認する。
3.デジタル入力のプルアップ機能についてもあわせて理解する。
4.楽しんで遊ぶ。
その他 プルダウンについても、ついでに理解する。

 

いかがだったでしょうか。

Lesson 08 【チルトセンサー編】はここまで。

ぜひ、みなさんも子供と一緒にやられてみることをお勧めします。

 

次回、Lesson 09は【サーボモータ編】です。

ラジコンのステアリングのようなことができます。

子供が喜ぶこと間違いありません。

Arduino 入門 Lesson 09 【サーボモーター編】
本記事はLesson 09【サーボモーター編】です。サーボモータは信号に応じて0度~N度の範囲で回転するモーターです。今回はサーボモーターの制御方法を理解します。また、サーボモーターをラジコンのステアリングのように動かしてみます。そのためポ…

 

最後に

疑問点、質問などありましたら気軽にコメントください。

この電子部品の解説をしてほしい!などなどなんでもOKです。

リンク切れなどあればコメントいただけると助かります。

 

Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。

 

Arduino入門編で使用しているUNOはAmazonにて購入可能です。

互換品とは言え、Arduinoはオープンソース。

複製して販売するのもライセンス的に問題なし。

 

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

学習用、遊び用、お試し用には安価な互換品がおすすめです。

 

Amazon ベストセラーNo.1
ELEGOO UNO キット レベルアップ  チュートリアル付 uno mega2560 r3 nanoと互換 Arduino用

 

上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。

 

Amazonでお得に買う方法

Amazonでお得に購入するなら、Amazonギフト券がおすすめです。

現金でチャージするたびに、チャージ額に応じたポイントが付与されます。

最大2.5%!!!(Amazonプライム会員ならさらにお得)

チャージ額(一回分)一般プライム会員
5,000円~19,999円0.5%1.0%
2,0000円~39,999円1.0%1.5%
40,000円~89,999円1.5%2.0%
90,000円~2.0%2.5%

さらに、初回チャージで1000ポイントもらえるキャンペーンも実施中!

\Amazonギフト券 1000ポイントキャンペーン/
Amazonチャージ 初回購入で1000ポイントキャンペーン

 

補足情報
コンビニ・ATM・ネットバンクが対象
購入は1円単位で可能

コメント

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