2012年11月20日火曜日

CNZ1023 (フォトインタラプタ) + Arduino

 

フォトインタラプタ、あるいはフォトセンサなどと呼ばれるセンシングデバイスをArduinoで使う実験です。このデバイスは、LEDとフォトトランジスタを一体化したパッケージになっており、物体が近傍を通過することでLEDの光がフォトトランジスタで受光されたり、あるいは遮られたりする、その状態変化を電気信号として出力します。

LEDとフォトトランジスタが向かい合わせになっていて、その間を通過する物体を検知するタイプを「通過型」、LEDとフォトトランジスタが同じ面を向いていて、物体が反射するLEDの光を検知するタイプ「反射型」といいます。今回使ったのは「通過型」のCNZ1023、秋月で10個入り300円50個入り800円で手に入るお安いパーツです。

接続は下図のとおり。outはArduinoのDigial 2pinに接続しています。

 

まずは普通にポーリングで信号を取るコード。センサの間隙に紙とかキャッシュカードを入れると、シリアルに出てくる値が変わります。実用的にはDigital inを使うことが多いと思いますが、単純なセンサの実験としては、Analog inで値をとってみるのも面白いです。


次に割り込みを使うコード。
  • 物体が入る → 光が遮られる → フォトトランジスタがOFF → 出力がfallする
  • 物体が出る → 光が届く → フォトトランジスタがON → 出力がriseする
この二つを取っています。

4 件のコメント:

  1. digitalの値が常に0で反応してくれません。
    回路は下の写真です。
    プログラムはkimniiさんのをそのまま使わせていただいています。

    http://www.flickr.com/photos/77258724@N05/8588877456/in/photostream

    返信削除
  2. みさきさん>

    こんにちは、コメントありがとうございます!

    写真を拝見しましたが、下記を確認していただけますか?

    (1) CNZ1023の3ピンと4ピンの配線が逆になっていませんか?
    秋月の商品ページに下記リンクのPDF仕様書がありますが、3ページ目のピン配は下から部品を下から見た図になっているので気をつけてください。
    (http://akizukidenshi.com/download/ds/panasonic/CNZ1023%28ON1023%29.pdf)

    (2) CNZ1023の1ピンに電源は供給されていますか?
    部品内部で電源コモンにはなっていないので、5Vを3ピンと両方に接続する必要があります。

    返信削除
  3. できました!
    ありがとうございます!
    これからもkimniiさんのブログみながら勉強します!

    返信削除
  4. みさきさん>

    結果をお知らせいただきありがとうございます!
    お役に立てて幸いです。

    返信削除