前回の温度センサーと一緒に秋月電子のお楽しみ袋にはホールIC(DN837)というセンサーが入っていました。
ホールICには磁気の強さを検出するものと磁気の極性を検出するものがあるそうですが、このDN837は磁気の強さを検出するタイプのようです。5V電源で動作するのでArduinoなどにそのまま接続できそうです。
今回のセンサーのテストにはATtiny13Aを使ってみます。センサーの出力を読み取るだけなので、フラッシュメモリが1024バイトしかないATtiny13Aでも十分でしょう。
読み取ったセンサー値の表示には昔作ったPICをコントローラーにしたLCDを使います。
DN837には電源端子と2つの出力端子があります。データシートによると出力端子の電圧や電流を計測することで様々な利用方法があるようですが、今回は出力端子1つの電圧を読み取り、磁石を近づけたときに電圧がHIGHやLOWになるのを確認します。
出力端子はオープンドレインとのことなので10KΩのプルアップ抵抗を付け、それをATtiny13Aにつなげて電圧を読み取ります。磁気が無いときのセンサーの出力はATtiny13Aのアナログ入力が10ビットなので3FFに、センサーに磁石を近づけたときは0となるはずです。
配線は以下のようにしました。
DN837(2ピンは10kΩでプルアップ)←→ATtiny13A
1 VCC
2 Output1 − A3(3ピン)
3 Output2
4 GND
スケッチはこちらです。
ATtiny13HallIC.ino
このスケッチはMicroCoreを使ってコンパイルしました。スケッチ中のsendChar()とsendStr()はLCD表示のために作った独自コマンドなので、スケッチを利用するときには書き換えて下さい。
ATtiny13Aはフラッシュメモリが少ないので、読み取ったアナログ値を文字列に変換するときにsprintf()などのライブラリは大きすぎてフラッシュに書き込めません。そのためアナログ値を16進文字列にするhexString()を用意しました。
センサーのテストにはダイソーのネオジム磁石を使いました。
ホールICの出力はプルアップされているので、通常は5V(アナログ値は3FF)になっています。ここにネオジム磁石を近づけると出力が0になるのを確認できました。ただし、ホール素子には検出できる磁束の向きがあるので、磁石の向きが合っていないと検出できません。
DN837のデータシートにスイッチタイプとあるように、まさに磁石によってオンオフ出来るスイッチですね。色々な用途に使えそうです。非接触のスイッチになるので頻繁にオンオフするような消耗の激しい場所に向いてそうです。
お楽しみ袋にはDN837が幾つか入っていたので、複数組み合わせて入力デバイスが出来そうです。なにに使えるか後で考えてみましょう。
最新の画像[もっと見る]
- ラスベリーパイのベアメタル環境でLVGLを使う 5日前
- ラスベリーパイのベアメタル環境でLVGLを使う 5日前
- ラスベリーパイのベアメタル環境でLVGLを使う 5日前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
※コメント投稿者のブログIDはブログ作成者のみに通知されます