フォトインタラプタ、あるいはフォトセンサなどと呼ばれるセンシングデバイスをArduinoで使う実験です。このデバイスは、LEDとフォトトランジスタを一体化したパッケージになっており、物体が近傍を通過することでLEDの光がフォトトランジスタで受光されたり、あるいは遮られたりする、その状態変化を電気信号として出力します。
LEDとフォトトランジスタが向かい合わせになっていて、その間を通過する物体を検知するタイプを「通過型」、LEDとフォトトランジスタが同じ面を向いていて、物体が反射するLEDの光を検知するタイプ「反射型」といいます。今回使ったのは「通過型」のCNZ1023、秋月で10個入り300円、50個入り800円で手に入るお安いパーツです。
接続は下図のとおり。outはArduinoのDigial 2pinに接続しています。
まずは普通にポーリングで信号を取るコード。センサの間隙に紙とかキャッシュカードを入れると、シリアルに出てくる値が変わります。実用的にはDigital inを使うことが多いと思いますが、単純なセンサの実験としては、Analog inで値をとってみるのも面白いです。
次に割り込みを使うコード。
- 物体が入る → 光が遮られる → フォトトランジスタがOFF → 出力がfallする
- 物体が出る → 光が届く → フォトトランジスタがON → 出力がriseする


