Arduino 入門
Lesson 35
【光遮断センサ・遮光センサ】
こにんちは、管理人のomoroyaです。
センサーの使い方の基本を学習する入門編。
世の中には、まだまだ色々なセンサーがあります。
これからも、色々なセンサーで遊んでいきます。
本記事はLesson 35 【光遮断センサ・遮光センサ】です。
本Lessonで使用する「光遮断センサ・遮光センサ」は「Photo Interrupter Sensor」「Optical broken Sensor」とも呼ばれます。
名前を統一してほしいです・・・。
原理は簡単。
「発光素子」と「受光素子」が埋め込まれています。
2つの素子の間に遮光物があるかどうかを検知できるようになっています。
このセンサがなくても発光素子と受光素子があれば自分でも作れます。
それを一体型したということですね。
本Lessonで使用する「光遮断センサ・遮光センサ」は以下と同じものになります。
基板に実装されていますが、センサ単体でもかまいません。
おそらく実装されているのは、この型番のセンサ。
Amazonだとオムロン製のものしかないかも・・・。
高いものではないので、間違ってもぼったぐり値段のものは購入しないでください!
Arduino入門編の解説にて使用しているArduinoは互換品です。
互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。
そのため互換品の品質も悪くなく、それでいて値段は安いです。
正規品本体の値段程度で豊富な部品が多数ついています。
正規品(Arduino UNO R3)の本体単品がほしい方はこちらとなります。
Arduino入門編2では「Arduino UNO R4 Minima」「Arduino UNO R4 WIFI」にて遊ぶため今のところは正規品を使用。(まだ互換品が・・・ほぼない)
はじめに
本Lessonで使用する「光遮断センサ・遮光センサ」は動作は単純。
発光部からの光を受光部で検出するこよによって、物体の有無や使い方によっては位置を検出することができます。
本Lessonで使用する光遮断センサ・遮光センサは「透過型」と呼ばれるもの。
構造も簡単。(下図参照)
発光素子と受光素子を向き合わせて一体化しただけ。
特長としては以下が挙げられます。
- 遮断するものは、完全遮光体でなければならない
- 光軸の位置合わせ不要
- 発光素子と受光素子の距離が決まっているため、検知対象物が限られる
Lesson 35 目標
本Lessonの目標は以下です。
2.「遮光」を検知するスケッチを描く
3.「光遮断センサ・遮光センサ」で遊ぶ
いつものように、遊ぶことが重要です。
今回のセンサは構造も単純。
光を遮断すれば検知できるというもの。
単純なだけに、使い道は色々あります。
例えば、カード、チケットの通過を検知する。
位置の検知も可能です。
液体のはいったボックスに遮光物をいれておき、遮光センサの位置まで液面が下がったら遮光するようにすれば、位置検知ができますよね。
また、「ある」「なし」の検知も可能です。
通常セットした状態で遮光しておいて、セットしたものがなくなれば知らせるといった仕組みも可能です。
この「光遮断センサ・遮光センサ」、用途を考えると色々使い道があることがわかります。
使い方は簡単なので応用の幅が広がります。
準備
ではLessonの準備に取り掛かりましょう。
部品は「光遮断センサ・遮光センサ」のみ。
センサ型番は「SX1103」。
モジュールは「KY-010」で検索すると出てくるようです。
下記に示す実装されたモジュールであれば10kΩ、330Ωの抵抗が面実装されています。
そのため、改めて10kΩ、330Ωの抵抗を用意する必要はありません。
センサだけでも、抵抗があれば遊ぶことができます。
センサ型番「SX1103」で探してください。
必要なもの
- USB接続用のPC(IDE統合環境がインストールされたPC)
→管理人が勝手に比較したBTOメーカーを紹介しています。 - UNO R3(以下UNO)、おすすめUNO互換品(ELEGOO)
- PCとUNOを接続するUSBケーブル
- ブレッドボード安価(大)、ブレッドボード安価(中)
※おすすめブレッドボード(大)、おすすめブレッドボード(中) - SX1103実装の光遮断センサ・遮光センサ
- 10kΩ、330Ω、220Ω 1本
※10kΩ、330Ωはセンサ単体の場合必要(使用するセンサによって調整必要)
220ΩはLEDを使用する場合必要 - M-M Jumper wire(UNOと部品をつなぐための配線)
- M-F Jumper wire(UNOと部品をつなぐための配線)
※ジャンパワイヤーは「M-M」「M-F」を必要に応じて使い分けてください。
Jumper wire、抵抗は今後も頻繁に利用します。
Jumper wireはできれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。
短めが使いやすい場合も。
抵抗も単品で揃えるよりはセットをおすすめします。
抵抗、LEDなどを個別でセット品を購入しても、そんなに使わない!
という方は、「電子工作基本部品セット」が使い勝手が良い。
使用部品説明
光遮断センサ・遮光センサについて説明していきます。
光遮断センサ・遮光センサ 実物写真
下の写真が光遮断センサ・遮光センサの実物写真です。
搭載されているセンサは「SX1103」。
本Lessonで使用するものは、基板実装されたものです。
また図に示す赤枠部分に10kΩ、330Ωが面実装されています。
センサ単体で使用する場合は、この10kΩ、330Ωに相当する抵抗を用意してください。
真ん中のくぼんだ所を遮光することで検知します。
光遮断センサ・遮光センサ 回路図
光遮断センサ・遮光センサの回路図を示します。
10kΩ、330Ωが実装されたモジュールの回路図となります。
センサ単体で組む場合は、330Ω、10kΩを別に用意して下に示す回路図通りに組んでください。
- 1:VCC Arduinoの5Vに接続
- 2:GND ArduinoのGNDに接続
- 3:S Arduinoで処理するピンに接続
こちらがセンサモジュールのピン配置。
光遮断センサ・遮光センサ SX1103 仕様
詳細仕様はデータシートを確認いただくのが良いと考えます。
オムロン製であれば以下となります。
Arduinoの仕様範囲内で使用していれば問題になる仕様はとくにありません。
遊び、学習以外での使用用途をお考えの場合はデータシートを必ず確認しましょう。
実践 回路作成とコード作成
最初に回路図を確認してください。
次に、回路図に合わせて部品を接続します。
最後にコードを書いて、光遮断センサ・遮光センサを動かしていきましょう。
Arduinoのピン配置を確認したい方は番外編02を参照してください。
回路図
光遮断センサ・遮光センサが実装されたモジュールの端子を接続していきます。
Arduinoはデジタル入力ピンとして10、デジタル出力として13を使用。
あとは、5VとGNDのみ。
回路図がこちら。
※LEDが不要の場合は、13番ピンには何も接続する必要はありません。
こちらがブレッドボード図。
回路図は「fritzing」を利用しています。
「fritzing」の使い方は下記を参照してください。
接続
下図に示すように、用意した部品を使用して接続しましょう。
部品は「光遮断センサ・遮光センサ」とLED、抵抗のみとなります。
※SX1103が実装されたモジュール
※外付けのLEDは無しでもOK
部品は3個、接続は簡単です。
光遮断センサ・遮光センサと接続するジャンパーワイヤーはF-Mを使用してます。
そのため、Arduinoに面実装されているLEDで確認する場合はブレッドボードもいりません。
使用するポートは、デジタル入力10、デジタル出力13、5V、GND。
穴に挿入しづらいときは、ラジオペンチなどを使用してください。
コードの書き込み
接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。
コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。
コマンド説明
本Lessonでは、特に新しいコマンドはありません。
サンプルコード
本Lessonのスケッチではデジタル出力として13を指定しています。
そのため、外付けのLEDがなくてもArduinoに面実装されているLEDが「点灯」「消灯」します。
面実装されたLEDで確認できるため外付けのLEDはなしでもかまいません。
//Lesson 35 光遮断センサ・遮光センサ //光の遮断を検知するセンサ //https://omoroya.com/ //★補足★ //使用モジュール KY-010 //モジュール実装センサ SX1103 int led = 13; //光遮断センサ・遮光センサ状態の出力先 int shade = 10; //光遮断センサ・遮光センサの信号ピン接続先 int val; //変数設定 void setup () { pinMode(led, OUTPUT); //13番ピンをOUTPUT指定 pinMode(shade, INPUT); //10番ピンをINPUT指定 } void loop () { val = digitalRead(shade) ; //10番ピンの状態を読みとり if (val == HIGH) { //10番ピンが"HIGH"遮蔽がある場合 digitalWrite(led, HIGH); //13番ピンに"HIGH"を出力 } else if (val == LOW) { //10番ピンが"LOW"遮蔽がない場合 digitalWrite(led, LOW); //13番ピンに"LOW"を出力 } }
動作確認 LEDの「点灯」「消灯」
では、さっそく動作を確認していきます。
- センサ遮光なし → LED消灯
- センサ遮光あり → LED点灯
センサ状態 | LED状態 |
---|---|
センサ遮光なし | |
センサ遮光あり |
光遮断センサ・遮光センサを「遮光」するとLEDが点灯します。
まとめ
本Lessonは、以下を目標としました。
2.「遮光」を検知するスケッチを描く
3.「光遮断センサ・遮光センサ」で遊ぶ
光遮断センサ・遮光センサを使えば・・・
何かが通過した!
物体(液体)の位置検知!
物体の「ある」「なし」を検知!
というように色々なことを検知することができます。
身近なものに応用しやすい便利なセンサです!
Lesson 35【光遮断センサ・遮光センサ】 はここまで。
色々工夫ができます。
ぜひ、遊んでみてください。
疑問点、質問などありましたら気軽にコメントください。
次回、Lesson 36は【RGB フルカラー LED SMD】。
カラフルな色で遊びましょう。
最後に
疑問点、質問などありましたら気軽にコメントください。
この電子部品の解説をしてほしい!などなどなんでもOKです。
リンク切れ、間違いなどあればコメントいただけると助かります。
Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。
Arduino入門編、Arduino入門編2で使用しているUNOはAmazonにて購入可能です。
Arduino入門編では互換品を使用。
Arduinoはオープンソース。
複製して販売するのもライセンス的に問題なし。
そのため互換品の品質も悪くなく、それでいて値段は安いです。
正規品本体の値段程度で豊富な部品が多数ついています。
学習用、遊び用、お試し用には安価な互換品がおすすめです。
ELEGOO UNO キット レベルアップ チュートリアル付 uno mega2560 r3 nanoと互換 Arduino用
上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。
Arduino入門編2では「Arduino UNO R4 Minima」「Arduino UNO R4 WIFI」にて遊ぶため今のところは正規品を使用。(まだ互換品が・・・ほぼない)
Amazonでお得に買う方法
Amazonでお得に購入するならAmazon Mastercard、Amazonギフト券がおすすめです。
時期により異なりますが、様々なキャンペーンを実施しています。
\Amazonギフト券/
Amazonギフトカード キャンペーン
\Amazon Mastercard お申込み/
Amazon Mastercard 申し込み
いずれの場合もプライム会員である方がお得!!
\Amazon Prime 30日間の無料会員を試す/
無料会員登録
コメント
こういうセンサーを使って通過した物体をカウントする際にチャタリングっておきますか?
コメントありがとうございます。
下記のような場合、チャタリングが起きる可能性があります。
・物体の移動速度がとても遅い
・物体の反射率が高い
・物体の運動が不規則
など。
回避方法
・コンデンサを入れる
・シュミットトリガ回路を出力に追加
などがあります。