Arduinoと戯れてみる!

Arduino 入門 Lesson 33 【リニアホールIC・磁気センサ】

arduino-lesson33-00Arduino入門編
スポンサーリンク
子供と一緒に始める マイコンプログラム
Arduino 入門
Lesson 33
【リニアホールIC・磁気センサ】

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

センサーの使い方の基本を学習する入門編。

最近、Processingで遊んでいてアップをしていませんでした・・・。

 

世の中には、まだまだ色々なセンサーがあります。

これからも、色々なセンサーで遊んでいきます。

 

本記事はLesson 33 【リニアホールIC・磁気センサ】です。

本Lessonで使用する「リニアホールIC」は「Linear Hall Effect Senser」「アナログ・ホール磁気センサ」とも呼ばれます。

 

使用するセンサ型番は「SS49E」。

ホール効果を利用して磁場に比例した電圧を出力するホール素子を内蔵。

ホール素子の出力をアンプで増幅しリニア出力します。

使用用途は、電流センサー、角度検出など多岐にわたります。

 

本Lessonで使用するリニアホールICは以下と同じものになります。

基板に実装されていますが、IC単体でもかまいません。

 

高いものではないので、間違ってもぼったぐり値段のものは購入しないでください!

送料との見合いになりますが・・・

日本にある電子部品パーツ専門店から購入した方が安い場合もあります

 

Arduino入門編の解説にて使用しているArduinoは互換品です。

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

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

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

 

正規品の本体単品がほしい方はこちらとなります。

 

スポンサーリンク

はじめに

まず、「ホール素子」をWikipediaで確認。

ん~、あまりいい説明がないです。

 

ということで、簡単に解説。

中学の「フレミングの法則」を思い出していただければ理解しやすいです。

■ホール素子

  1. ホール素子に電流を流し、電流の向きと直角に磁界(磁石)を近づける
  2. 電流の担い手であるキャリアがローレンツ力の影響を受ける
  3. ローレンツカにより、電流と磁界の向きに対して直角方向の電圧(ホール電圧)が発生
    →これがホール効果
  4. 直角方向の電圧(ホール電圧)は、フレミング左手の法則に従う。
  5. フレミング法則に従うということは、磁界の向き「N極またはS極」によって電圧の向きが変わる

arduino-lesson33-01

 

■ホールIC

  • ホールIC は、ホール素子で発生した電圧を検知することにより磁界の存在を検知
  • 出力される電圧は磁束密度に比例して増加
  • 電圧の向きにより磁界の向き「N極またはS極」も検知が可能

 

原理は理解できなくても、遊ぶことは可能です。

磁石をICに近づけると、出力電圧が変わる。

その出力電圧の値によって、磁界の存在、磁界の向きを検知することが可能。

上記理解だけでOKです!

 

Lesson 33 目標

本Lessonの目標は以下です。

1.リニアホールICの使い方を学習する
2.リニアICで磁石の「磁束密度」と「極」を検知するスケッチを描く
3.リニアICで遊ぶ

いつものように、遊ぶことが重要です。

 

厳密な原理は置いといて、まずはスケッチ描いて、遊ぶ。

磁石を近づけて、N極なのかS極なのかがわかるだけでも面白い!

 

準備

ではLessonの準備に取り掛かりましょう。

 

部品は「ホールセンサIC」のみ。

型番「SS49E」もしくは「KY-035」で検索すれば色々でてきます。

接続は3端子のみのため簡単です。

基板に実装されたモジュールでもIC単体でもかまいません。

 

必要なもの

※ジャンパワイヤーは「M-M」「M-F」を必要に応じて使い分けてください。

 

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

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

短めが使いやすい場合も。

 

使用部品説明

SS49E」 のリニアホールICについて説明していきます。

こちらも、なかなか情報を探すのが大変ですが検索を駆使すればなんとかなります。

ちなみに、部品だけ購入してデーターシートの説明がない場合、拡大鏡必須です!

 

部品から、型番読み取り。

ネット検索。

これ必須。

たまに、型番すらないものがありますが・・・

その場合は、使ってみて類推。

 

リニアホールIC SS49E(KY-035) 実物写真

下の写真がリニアホールICの実物写真です。

ブレッドボードに挿しやすいように、基板実装されたものです。

型名:KY-035、実装されているICはSS49E

arduino-lesson33-02

 

リニアホールIC ブロックダイアグラム

ブロックダイアグラムを示します。

あくまでも、概略図とお考え下さい。

3端子構成となります。

  • ピン1:VCC、Arduinoの5Vに接続
  • ピン2:GND、ArduinoのGNDに接続
  • ピン3:Vout、Arduinoで処理するピンに接続

arduino-lesson33-03

 

ここで1つ注意点。

IC単体と、基板実装されたモジュールでPINの順番が違います。

VCCとGNDが入れ子になっているため気を付けましょう。

arduino-lesson33-04

 

リニアホールIC SS49E 仕様

管理人は素性の良くわからないものを平気で購入します。

ただし、データシートとのつきあわせなど面倒なのでおすすめしません。

データシートわかる素性のしっかりしたものを購入することをおすすめします。

 

管理人が使用した「SS49E」の仕様はこちらだろうと思っています。

Arduinoでスケッチを描いて遊ぶためだけなら以下の項目さえわかればOK。

  • 磁束密度(B) = 0の時の出力電圧
  • 感度
項目SymbolTYP単位備考
動作電圧Vcc3.0~6.5V
動作電流Icc4.2mAAverage
出力電流Iout1.5mA
応答時間T3μs
静止出力電圧Vo2.5V@磁束密度(B) = 0G
@Ta = 25℃
@動作電圧 = 5V
感度ΔVout1.8mV/G@Ta = 25℃
出力電圧(Min.)0.86V@B = -1500G
出力電圧(Min.)4.21V@B = 1500G

 

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

最初に回路図を確認してください。

次に、回路図に合わせて部品を接続します。

最後にコードを書いて、リニアホールICを動かしていきましょう。

 

Arduinoのピン配置を確認したい方は番外編02を参照してください。

 

回路図

リニアホールICが実装されたモジュールの端子を接続していきます。

Arduinoはアナログ入力ピンであるA0及び5VとGNDを使用。

 

回路図がこちら。

 

arduino-lesson33-05

 

こちらがブレッドボード図。

arduino-lesson33-06

 

回路図は「fritzing」を利用しています。

「fritzing」の使い方は下記を参照してください。

 

接続

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

部品は「リニアホールIC」のみとなります。
※KY-035、SS49E

部品は1個、接続は簡単です。

ジャンパーワイヤーをF-Mを使用しているためブレッドボードも使用していません。

 

使用するポートは、アナログ入力のA0および5VとGNDを使用。

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

arduino-lesson33-07

 

 

コードの書き込み

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

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

 

コマンド説明

本Lessonでは、特に新しいコマンドはありません。

 

サンプルコード

本Lessonのスケッチ(コード)は特にキャリブレーションは行っていません。

精度が必要な場合は、オフセット、Aruduinoの電源電圧など必要なキャリブレーションを実施してください。

//Lesson 32 リニアホールIC(磁気センサ)
//磁石の磁束密度の測定と及びS極、N極の検知
//https://omoroya.com/

//★補足★
//使用部品IC SS49E
//モジュール型番 KY-035
//N極、S極はICの向きで決まる
//このスケッチはキャリブレーションは省略

float ref_vol = 4.94;  //Arduinoの5V電圧を設定
float v_gau25 = 2.5;   //2.5V @0Gauss,25℃.
float vpgau   = 0.018; //0.018V/G(1.8mV/G)←感度設定、ICの仕様による

void setup() {
  Serial.begin(9600);                //シリアル通信のデータ転送レートを設定しポート開放
  Serial.println("--- Started ---"); //スタート表示
}

void loop() {

  float voltage =  (analogRead(A0) / 1024.0) * ref_vol; //アナログ入力を電圧に変換
  Serial.print("voltage = ");                           //電圧表示
  Serial.println(voltage);                              //電圧表示
  float v_s = voltage - 0.05;                           //±0.05Vは測定しない
  float v_n = voltage + 0.05;                           //±0.05Vは測定しない

  if (v_gau25 < v_s) {                         //2.5V未満ならS極
    Serial.print("S極: ");                    //S極表示
    Serial.print((voltage - v_gau25) / vpgau); //S極Gauss換算
    Serial.println(" Gauss");                  //単位Gauss

  } else if (v_gau25 > v_n) {                  //2.5V以上ならN局
    Serial.print("N極: ");                     //N極表示
    Serial.print((v_gau25 - voltage) / vpgau); //N極Gauss換算
    Serial.println(" Gauss");                  //単位Gauss

  } else {
    Serial.println("Null");                    //2.5V±0.05VならNull表示
  }

  delay(500);                                  //500msの遅延
}

 

動作確認 シリアルモニタ

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

「ツール」⇒「シリアルモニタ」を開いて、「9600bps」に設定してください。

下記に示す表示がでれば、磁束密度の読み取り、極の検知できていることになります。

状態シリアルモニタ
磁石がない状態
arduino-lesson33-08
arduino-lesson33-09
N極を近づけた状態
arduino-lesson33-10
arduino-lesson33-11
S極を近づけた状態
arduino-lesson33-12
arduino-lesson33-13

 

N極、S極の検知ができ、なおかつ磁束密度も測定できました。

 

まとめ

本Lessonは、以下を目標としました。

1.リニアホールICの使い方を学習する
2.リニアICで磁石の「磁束密度」と「極」を検知するスケッチを描く
3.リニアICで遊ぶ

 

リニアホールICを使えば磁気に反応して、何かをさせるといったことができます。

LEDと組み合わせて、検知したら光らせる。

液晶Displayと組み合わせて、磁束密度をグラフィカルに表示させる。

などなど、色々できそうです。

Processingで磁束密度を表示させるのも面白そうです。

 

Lesson 33 【リニアホールIC・磁気センサ】 はここまで。

管理人、磁石のN極、S極を検知するところが「いい感じのスケッチ」かなと勝手に考えています。

ぜひ、遊んでみてください。

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

 

次回、Lesson 34は【振動センサ・振動スイッチ】

Arduino 入門 Lesson 34 【振動センサ・振動スイッチ】
Lesson 34 【振動センサ・振動スイッチ】。本Lessonで使用する「振動センサ」は「振動スイッチ・Vibration switch」「衝撃センサ・Shock Sensor」とも呼ばれます。センサといいつつ、動作を考えるとスイッチと言…

まだまだ、色々なセンサーを学習していきます。

 

最後に

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

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

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

 

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

 

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

互換品とは言え、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%

さらに、初回チャージで2000ポイントもらえるキャンペーンも実施中!
※いつもは1000ポイント、今なら2000ポイントです!

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

 

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

コメント

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