2026年1月25日日曜日

PIC12F1840とPIC16F18313の比較

8ピンのPICマイコンである、PIC12F1840PIC16F18313を比較します。
自分用の忘備録も兼ねてます。

12F1840は登場してから そこそこ経過しておりますが、
8ピンのPICマイコンとして割と中身が充実していたので、
ベストセラーの1つと言えると思います。

12F1840の完成度が高かったせいなのか、
その後しばらく、8ピンの高機能PICマイコンがお目見えしませんでしたが、
ついに登場した製品が16F18313というわけです。

片や「12F」で、片や「16F」という名称の違いがありますが、
マイクロチップの命名ルールが変わったことに起因しているもので、
12F1840と16F18313は同列に考えて頂いて問題ありません。

 

まず、サクッと違いを纏めてみた表が以下です。 


 

 

 

 

 

 

 

 

 

 

 

あまり細かい内容を詰め込むと見づらくなってしまうので、
参考にできる範囲で 割と簡素にしてみました。

改めて見てみると、12F1840の完成度の高さを実感しますね。
割と最近の石である16F18313に対し、基本的な部分のスペックで引けを取りません。

プログラムメモリーは16F18313の方が僅かに少ないのですが、
8ピンのPICマイコンでこの容量を使い切るケースは少ないのでは?
そう考えると この差は大した問題ではないと思われます。

16F18313は16F18300シリーズですので、周辺機能は充実さは素晴らしいところ。 
8ピンのPICマイコンに こんなにも必要なのか?という疑問も感じますが、
まぁ無いよりは有った方がベターですね。

 

それでは差について、もう少し説明していきましょう。

1.TMR0について 

TMR0は古のPICマイコンから搭載されている、もっとも基本的なタイマーです。
12F1840は従来通りのTMR0を搭載しておりましたが、
16F18313では16ビット動作可能な、拡張版のTMR0を搭載してます。 

2.コンパレーター・PWM等について

表では解釈が紛らわしいかもと思い、補足の意味で記載いたします。 

12F1840ではコンパレーターが1つと、ECCPが1つ搭載されています。
ECCPは拡張版CCPですので、キャプチャー・コンパレーター・PWMの、
どれか1つの機能を選択して使用可能です。

12F18313ではCCPだけで2つ存在する他に、
コンパレーターとPWMがそれぞれ2つ搭載されています。
8ピンパッケージでは積みすぎですよね(笑) 

3.外部I/Oピンの入れ替え機能について

周辺機能とパッケージ外部のピンとの接続ですが、
12F1840ではAFPCONというレジスタの設定により、
極一部の周辺機能についてのみ、ピンの割り当て選択が可能ですが、
自由度がとても低い為、事実上回路設計段階の考慮が必要という代物です。

それに対し16F18313では「PPS」という割り当て変更システムを搭載してます。
これによりほとんどの周辺機能ピンを自由に割り当てる事が出来ます。
(ICSPで使うピンは変更できませんが) 
これだけ自由度が高いと、回路設計の柔軟性が高まりますね。

4.データーEEPROMについて

EEPROMという名称が使用されておりますが、
実際には搭載されているフラッシュメモリーの一部です。
最近のPICでは「NVM」という呼び方に変わってきております。
表の通り、容量等に変化はない様に見受けられますが、
アクセスに関する仕様が変更となってます。

従来のデーターEEPROMには絶対値アドレスとも言うべき値が存在してました。
具体的には12F1840ならば0xF000~0xF0FF領域です。
これにより、以下の例の様にソースコード上に記載する事が可能になります。

DATAEE    ORG  0xF000
    DE    "Hello World"

すると、FLASHメモリーへの書き込み時に、
データーEEPROMへ"Hello World"という文字列も同時に書込んでくれます。 

これは結構便利な機能だったのですが、最近のPICマイコンでは使えなくなりました。
なぜならば絶対値アドレスが無くなり、NVM Control レジスタ経由でしか
アクセスできない仕様になったからです。

代替案としては、PICマイコンのブート後のイニシャライズ段階にて、
NVM Control レジスタを使用して"Hello World"を書き込むという手があります。
しかしNVM Control レジスタ経由では1byteずつしか書けませんので、
従来であればたった2行で済んだものが、数十行のコードになってしまうのは、
なんともスマートではありませんし、
PICがブートする度にデーターEEPROMへ書き込むというのも違和感を覚えます。

今後の改善を期待したいところですね。 

5.I/Oポートの機能設定について

16F18313ではI/Oポートについての機能が拡張されました。
具体的には以下の3つの設定レジスタが追加されてます。
  INLVLA
  SLRCONA
  ODCONA

INLVLAはデジタル入力ポートとして使用時のスレッショルドレベルの設定です。
TTLレベルかシュミットトリガ―レベルを選択できます。
通常はシュミットトリガ―レベルの方が好ましいわけですが、
CMOSレベルの電圧域となる為、入力信号の電圧レベルを考慮する必要があります。
どちらの設定でも、実際の閾値電圧は電源電圧に依存します。
具体的な値を知りたい場合はデーターシートを参照してください。

SLRCONAはデジタル入力ポートのスルーレート設定です。 
スルーレート制限無し設定が、通常のデジタル入力状態です。
CMOSデバイスの特性上、実際の入力レスポンスは電源電圧に依存します。
スルーレート制限有りにした場合の具体的な差ですが、
データーシートを見た感じ4000番シリーズCMOSロジック位でしょうか。
数十nsオーダーの話なので、ものすごくブロードな特性になるわけではありません。

ODCONAレジスタはデジタル出力のタイプ設定です。
これにより、従来と同じトーテムポール出力タイプの他、
オープンドレイン出力タイプも選ぶことが出来るようになりました。
通常のデジタルロジック回路ではトーテムポール出力での使用が多いと思いますが、
繋ぐ回路構成によっては電流引き込みで駆動したいというケースも有り、
そういう時はトランジスターなどを噛ませる等で対処していました。
これらが直結で済ませられる様になり、回路が簡素化できます。
また、不要な出力ポートもオープンドレイン出力に設定しておくことで、
不用意にHレベル電圧が出力されてコンフリクトを起こす事も予防できます。
この様にオープンドレイン出力機能は結構重宝すると思われます。

 6.その他

容量センシングモジュールとSRラッチについては12F1840のみの搭載。
対して、CWG・NCO・CLCは16F18313のみ搭載してます。 

周辺モジュールの供給電力を個別に制御する「PMD」機能も、16F18313のみの搭載。 
もっとも、そもそもPICマイコンはかなり低消費電力ですので、
PMD機能が必須となる場面は少ないかもしれません。

あと、内蔵発振器の1つである「MFINTOSC」についてですが、
12F1840には存在しているのものの16F18313には存在しません。
これは機能削減ではなく、不要になったので削除したと見るのが正解でしょう。
HFINTOSCから生成できる周波数バリエーションが、
MFINTOSCをカバーできてしまうからです。 
ですのでMFINTOSCの削除はなんらマイナスポイントになっておりません。 

 

以上の様な感じで、おおまかな違いはご理解頂けると思います。
上記以外でも各周辺機能モジュールについて、
16F18313で少々機能拡張されてる場合がありますが、
その点については逐次確認をお願い申し上げます。 

2026年1月24日土曜日

多機能化の弊害

 PIC16F1823用のプログラムをPIC16F18424へ移植した際の話です。

 桁が1つ増えてるくらい、16F18424は かなり世代の新しい強力な石です。
16F1823でも実用上は問題無いプログラムが書けたのですが、
後々の拡張性等を考慮し、16F18424へ移植して見る事を考えた次第。

 

この移植のメリットは大まかに以下の2つ。

1、Foscの高速化

  16F1823ではタイマーに使うクロック源のバリエーションが少ないため、
  長時間のタイマーが欲しい場合はFoscの周波数を抑えるしかありません。
  すると当然ながら、各命令の処理速度も落ちてしまうわけですね。 

  16F18424ではタイマーへ低速のクロックを割り当てる事が可能なので、
  Fosc周波数を抑える必要が無くなります。
  常に最高速度である32MHzで回す必要はありませんが、
  そこそこの速度にしておくと処理に余裕が出来て好ましいです。

2、オープントレイン出力

  16F1823のI/O出力はトーテムポール出力のみです。
  それ自体がデメリットというわけてはなく、
  適切に設計されていれば通常問題になるわけではありません。

  16F18424ではオープンドレイン出力に設定することが可能です。
  今回の回路では十分大きなプルアップ抵抗が存在し、
  立下りタイミングが動作関与する為、オープンドレインで事足ります。

  もちろんこの場合でもトーテムポール出力で支障が出るわけではありません。

  ただ、何らかの原因で誤動作が発生した際、
  オープンドレイン出力ならばコンフリクト発生を回避できる可能性があります。
  そういう意味で、問題無ければオープンドレイン出力を利用した方が安全。

  そんなわけで、出力ポートを全てオープンドレイン化したのでした。

 

さて実際の移植ですが、アルゴリズム的には変更不要です。
手を加えなければならないのはバンク指定。 

16F18424は非常に機能が増えた分、レジスタもガッツリ増大しております。
PICの仕様上、1つのバンクに納められるレジスタ数には限界がある為、
レジスタ数が増えたならバンクを増やして対応することになります。

16F1823では7つ程度だったバンクが、16F18424では約20個に増えてます。
単に増えたのみならず、レジスタの配置を大幅に変更されているんですね。
ですのでレジスタへアクセスする箇所で、
切り替えるバンクを全て確認/変更しなければなりません。

実はこれが かなり厄介。
16F18424ではバンクへの配置が かなり散らばったんですね。
16F1823では同一バンクに有ったものが、16F18424では別バンクに、
というケースが非常に多かった為、バンク切替が多発する事に。

すると当然ながらバンク切替の命令が増えるのでコードが長くなっちゃいます。
バンク指定のミスというバグの発生確率も上がるので、
バンク切替が多発するというのは 個人的に好ましく思いません。
(そういう意味で、多機能の石は18Fシリーズを使うべきかも)

 

というわけで、必ずしも最近の機能の石に置き換えるのがベスト、
とは言えないケースがあるという話でした。 

 

2026年1月20日火曜日

PIC16F1527

 先の記事でPIC16F1947を書きましたが、
64ピンパッケージの16Fシリーズというのはもう1つ存在します。

それがPIC16F1527

番号を見て、16F1947の下位互換かなと思っていたので、
16F1947を使えるなら16F1527はスルーしていいかと思ってました。

16F1947のテンプレファイルを作り終えた後、
改めて16F1527について ちょっと調べてみました。
すると・・・・単なる下位互換と言う代物ではない事が判明。
かなりお株が上がってきたのでした。

そんなこんなで16F1527のテンプレファイルを作成。
その結果を基に、16F1527の評価を記載してみます。

 

解り易い様に、16F1947との比較と言う形で解説することにします。 
パッケージ形状やI/Oの本数は16F1947と同一です。
I/Oピン振りも同一というのは、マイクロチップさんお馴染みですが、
移行が楽なので大助かりです。

基本的なところでの差としてはクロックが挙げられるかと。
16F1947は4倍PLLも内蔵しMAX32MHzで動作可能ですが、
16F1527はPLLも無く、MAX20MHzでしか動作しません。
内蔵発振器は16MHzまでしかない為、もし20MHzで動かしたい場合は、
外部デバイスが必要となる為、事実上16MHzが上限になるかと。

次にメモリー周りの違いが挙げられます。
RAMに関しては16F1947は1024byte持ってますが、
16F1527は1536Byte持ってますので、RAMはこっちの方が多いです。
ですが、従来EEP-ROM領域と呼んでいた、データーメモリー領域については、
16F1527ではバッサリ削除されてしまってます。
データーメモリーは使わない方もいらっしゃるかもしれませんが、
有ればそれなりに便利なので、ちょっとだけ不便を感じてしまいます。

 

以下は周辺機能の差についての話です。 

まず16F1947と比較して削除されてる機能が以下。
  ・LCDコントローラー
  ・容量センシング
  ・ECCP
  ・D/Aコンバーター
  ・コンパレーター
  ・SRラッチ
という感じ。

LCDコントローラーや容量センシングは使用者が多くないと思うので、
ほぼ支障が無いと思います。
ECCPは削られましたがCCPは残っているので、
それで足りないという方には残念かも。
D/Aコンバーターはどうなのでしょう?
5bit程度の代物なので、私は使用したことがありませんが、
必要と言う方も存在するのでしょうか?
コンパレーターはCCPで代替できるので、問題無いかと。
SRラッチも実用例を見たことが無いので特に不便は無いのかも?

 

次に16F1527の方が充実してる機能です。 
なんとなく意外ですが、以下の機能は16F1527が勝ってます。
  ・アナログ入力チャンネル数
  ・タイマーの数
  ・CCPモジュール数
  ・プルアップ機能付きポート数

アナログ入力というのは、すなわちA/Dコンバーターの入力チャンネルですが、
16F1947も16F1527も、全I/Oピンでアナログ入力できるわけではありません。
もっとも、A/Dコンバーターは1つしかないので、
入力チャンネルがめっさ多くても どないすんねんという感じはありますが(笑)
16F1947ではポートA・ポートF・ポートGの一部でアナログ入力が可能。
総数では17チャンネルというところですが、
16F1527ではポートB・ポートD・ポートEの一部も合わせ、
総数で30チャンネルに増えています。
これにより設計の自由度が増したという感じでしょうか?

タイマーに関してはお馴染みの代物ですが、
16F1947ではTMR0・TMR1・TMR2・TMR4・TMR6という構成ですが、
16F1527ではTMR0・TMR1・TMR2・TMR3・TMR4・TMR5・TMR6・TMR8・TMR10という構成。
とんでもなく増えてますね(笑)

数が増えただけではなく、ちょこっと嬉しい差もあります。
16F1947では容量センシングモジュールを搭載している関係で、
TMR1のクロック源に容量センシング出力を使うことが可能になってます。
その為、LFINTOSCからのクロックが入力できなくなってしまってるんですね。

対して16F1527では容量センシングモジュールが無い分、
TMR1・TMR3・TMR5のクロック源にLFINTOSCを使う事が出来ます。
私としては非常に嬉しい仕様です。

CCPの数も16F1947では5個(その内3個はECCP)ですが、16F1527は10個!! 
こんなに沢山何に使うのでしょうか?(笑)

最後にプルアップ機能です。
I/O制御で使う事が多い身としては、この差は結構嬉しいです。
16F1947ではポートBしかプルアップできませんでしたが、
16F1527では更にポートDとポートEもプルアップ可能になりました。
全ピンプルアップ可能な最近の石と比べると見劣りしてしまいますが、
これだけ増えただけでも使い勝手は向上するのでヨシという感じです。

 

という感じで、ざっくり解説してみましたが、
私感としては16F1527の方が使い勝手良い気がしてます。

もちろん最終的には必要な周辺機能との相談にはなりますが、
16F1527で機能が不足したら16F19197を選ぶ、という使い分けが良いかも? 

 

結論としては、以下の機能が必要ならPIC16F1947を選択。 
  LCDコントローラー
  容量センシング
  ECCP
  D/Aコンバーター

それ以外ならPIC16F1527を選択という流れでしょうか。 

PIC16F1947

 ビット・トレード・ワンのADSU01を使った新しいユニットを構想中。
汎用性を求めて機能拡張を行った結果、
制御の為のI/Oが35本くらい必要という結果になりました。

40ピンクラスのPICマイコンが なんとか足りるかな?という本数ですが、
これはオンボード書込みに必要なピン等も全て潰して、
全てI/Oにまわした場合の話。
なので現実的には40ピンクラスのPICマイコンでも足りません。

次に思いついたのが28ピンクラスのPICマイコンに、
MCP23S17でI/Oを増設するパターン。

MCP23S17を使用実績があるので、特に難儀する点はありません。
ところがこれでI/O数を検討すると、やっぱ僅かに足りないという結果に!! 
MCP23S17へ繋ぐSPI信号線に4本取られてしまうんですね。
いやぁ残念。(;;

そうすると40ピンクラスのPICマイコンにMCP23S17を増設、
というパターンが思い浮かぶわけですが、
それならいっそ64ピンクラスのPICマイコンを使ってしまう方が良くね?と閃きました。

 

1チップマイコンとしては64ピン程度は特に大規模というほどではありません。
しかし私の様に8ビットクラスのマイコンをメインにしていると、
64ピンは結構大きな部類になります。

今回の用途では低速な単純制御なので、PIC16Fシリーズで十分な領域。
16Fシリーズで探すと、大きくても40ピンクラスがほとんどなんですね。

そんな状況ですが、種類は少ないものの64ピンクラスも存在しました。
その1つが今回紹介するPIC16F1947です。

この石は一時期大人気だったPIC16F1939の多ピン版です。
ちなみにRAMを減らしたPIC16F1946という製品も存在します。

 

使い勝手としては16F1939とほぼ同じです。 
16F193xシリーズに存在した周辺機能は全て内包しています。

I/O本数ですが、16F1939では36本に対し16F1947は54本。 
16F1939に対してRE4~7とRF0~7、RG0~5が追加されています。

ここでちょこっと要注意なのは、ポートF及びポートGのバンクが、
ポートA~Eと異なっている点です。
Cで書いていたらコンパイラーが良しなに処理してくれるでしょうが、
アセンブラーで書く場合は意識しておく必要あります。
可能なら同じバンクに揃えて欲しいところですが、
バンクのレジスタMAPが埋まってしまっているので、
仕方なく別バンクに配置したという経緯でしょうから、やむを得ない話ですね。

 

その他の相違点としては、 コンパレーターが2つから3つに増えました。
あと、EUSARTとMSSPがそれぞれ2つに増えました。

私はコンパレーターを使ったことが無いので、
3つに増えても特に有難みは感じないのですが、 
EUSARTとMSSPが2つに増えたのは非常に嬉しいです。

シリアル通信系は使用する機会が多いのですが、
16F193xシリーズのシリアルポートの少なさには不便を感じていたからです。 

あとはLCDコントローラーの拡張されている様ですが、
私自身LCDコントローラーを使ったことが無いので、この点についてはスルーします。 

 

そんな感じで、基本的には16F1939の上位互換なのですが、
1ヵ所違いに気づいた点はVcapピンについてです。

16F1939ではVcapピンを3ヵ所選べたのですが、
16F1947では使えるピンは1ヵ所(RF0)のみです。 

実際、これで使い勝手が悪くなるとは思えないので、
むしろ改良と捉えても良いかもしれません。
ただ個人的な意見を言わせてもらえば、どうせならポートGに配置して欲しかったですね。そうすればポートFは8ビット一括アクセス可能だったわけです。

 

AFPCONレジスタによる代替ピン指定の内容もかなり変わっています。
16F1939ではMSSPやSRラッチに絡む内容も有ったのですが、
16F1947では全てCCPモジュール絡みになっています。

 

他には特に機能追加された点は見当たりませんので、
16F1939辺りを使い慣れてる方は かなり親しみやすいと思います。

逆に言えば、昨今の8ビットPICマイコンと比較すると、
かなり周辺機能が乏しいと感じてしまうかもしれません。

現時点ではPIC16F19197という石がリリースされていますので、
16F193xシリーズに拘りない無い方は、そちらを選択する手も有りだと思います。
 

2026年1月14日水曜日

上尾の極楽湯へ行ってみました

 先週より、一部の極楽湯にて「まどマギ」コラボが開催中。
というわけで、その中の一店舗である上尾店へ行ってみました。


 

 

 

 

 

 

 

 

 

 

 

上尾店は初訪問。
今回の様なコラボでもない限り、訪れる機会は無さそうなのです。

入館すると、特に変わったところは無い感じ?
施設的には少々小さめの店舗の印象。

食事処の横に、みんなが整列してました。 


 

 

 

 

 

 

 

 

 

ともあれまずはお風呂へ。

脱衣所も特に広いわけではないものの、窮屈な感じはしません。 
単にお客さんの数の問題なのかな?

浴室へ行くと、ほむほむのイラストが掛かった「ほむらの湯」が(笑)
昨日までは 「まどかの湯」だったんですよね。

各キャラクターにちなんだ湯の色になってるそうなので、
ほむらの湯は紫のイメージだと思うのですが、
黄土色みたいな濁った色になってました(笑)
まぁこの辺はご容赦という感じですかね。

ほむらの湯は温度が約41℃と、ゆったり入るには少々熱め。
柏店だと39℃位の炭酸泉浴槽を使っているので、
ゆっくり入りたいなら柏店の方が良いかも?

しかし柏店と比べ、お客さんの数が少ないせいか、落ち着いてる感じします。
この点は好印象なのですが、ただ、お客さんのマナーがイマイチ。
扉を開けっぱなしにする人が多い!!
露天風呂への出入口は二重扉になっているのですが、
両方とも開けっ放しにする人の多い事・・・・・
そんなわけで、長湯せずにフロから上がりました。 

風呂から上がったのは23時前。
ここ上尾店では食事処のラストオーダーが0時半と遅めなので、
ちょこっと利用していくことに。

もっとも晩飯は上尾に来る前に済ませてしまったので、
ここは軽くドリンクにしてみます。

ということで選んだのが「ほむらのフローラルスカッシュ」。


 

 

 

 

 

 

 

 

 

 

 

ほむほむの大好物、というような話は全く無いと思いますが、
普通に美味しかったです。
コラボメニューを注文すると貰えるコースターは マミさんでした。
貰えるコースターも揃えてくれたら良かったのにと、ちょっと思ったり。

 

今回の上尾店、ボディケアやあかすりなども揃っているので、
スーパー銭湯としてみると まぁこんなもんかなぁという感じ。
食事処のラストオーダーが遅い点だけは特長ですね。

風呂上りの休憩スペースに関しては、圧倒的に柏店に負けてます。
というか、柏店が凄すぎるんでしょうね。
営業時間も柏店の方が1時間長い事を含め、
風呂上りノンビリしたいのならば、柏店に軍配が上がりそうです。 

 

2026年1月11日日曜日

シマホの乾電池

 以前、ニトリのPB(=プライベートブランド)乾電池が良いという話を書きましたが、
最近ちょこっと状況が変わった様です。

ニトリの~と書きましたが、以下の記載はホームズの乾電池事情です。
ホームズはニトリは手を組んだので、ホームズではニトリの電池を扱ってます。
以前試したニトリのPB電池はホームズで購入したもの。

 

ホームズの電池売り場へ行ってみると、以前よりかなり種類が増えてました。

パナソニック製などの定番商品もありますが、
それらは今回の話の趣旨から外れるので除外します。

 

以前書いたニトリのPB電池は1種類だけで、
ホームズのPB電池と言うのは存在しませんでした。
従ってホームズでPB電池を買おうとしたら必然的にニトリの物になります。

ところが今日売り場を覗いてみると、以下の様なラインナップになっていました。

1.ニトリのPB電池
2.ホームズのPB電池(中国製)
3.ホームズのPB電池(日本製)

これらの他に前述した日本メーカー製電池が並んでいるのですから、
さすがにちょっと種類多過ぎ感が否めません(笑) 

 

さて、これらのPB電池ですが、ニトリのPB電池は中国製でした。
もしかしたら2番の電池と中身が同一かもしれません。
どちらにしても確かに価格は安いのですが、ちょっとお勧めしかねる感じ。

お勧めは3番の電池。 

電池本体に富士通と記載されている物です。
FDK製ですので品質は間違いありません。
1番や2番と比べると価格は高いですが、
それでもパナソニック製電池等と比べてたら ずっと安いですよ。 

2025年12月23日火曜日

フォトインターラプターの発光電流

 某案件でフォトインターラプターによる硬貨検出の実験中。

フォトインターラプター部はこんな回路


 

 

 

 

 

 

 

 

 

U1がオムロン製フォトインターラプター。
CN1でマイコン基板へ接続して使用します。
CN1の1番ピンが6V電源入力で、4番ピンがGNDです。
なおR3は実装されておりません。 

フォトインターラプターの発光側電流はマイコン基板上で設定してるので、
この基板上には電流設定に関与する部品はありません。

フォトインターラプターの出力を取り出すなら、
U1からCN1へ直結すれば良いだけなのですが、
なにやら部品が繋がっています。
これは出力を反転させる為。 

静止状態ではフォトインターラプターが入光状態となるので、
フォトインターラプターは常時ONとなります。
もし直結されていたら、CN1の3番ピンから4番ピンへ
常時電流が流れる状態となります。

CN1の3番ピンをロジックICで受けていた場合、
その入力はデフォルトLowという状況になります。

もちろんそれで論理を組めば基本動作に全く問題無いわけですが、
CN1に繋がっているケーブルを外した時にはどうなるでしょう?

マイコン基板から見ると、デフォで導通状態の物が導通無しになるので、
フォトインターラプターが遮蔽物感知状態と認識するわけです。

だから何?と言われそうですが(笑)、
実稼働中には一切関係無くて、開発中のテスト時の話で、
この状態だと ちょびっとだけ面倒なのですね。

 

なのでわざわざ論理反転させております。
フォトインターラプターが遮蔽物検知状態になると、
CN1の3番ピンと4番ピンが導通します。 
デフォルトHigh・アクティブLowという動作ですね。

こうするとCN1のケーブルを抜いても、マイコンの検知状態は変わりません。 

 

さてここからが今回の本題 
この場合、フォトインターラプターの発光電流は どれくらいがベターでしょう? 

発光側は常時点灯なので当然ながら消耗が発生します。
MAX値で点灯させ続けたら、それだけ早く消耗してしまうわけです。

では逆に発光電流が少なすぎたら?
その場合は単純に遮蔽物有り同様の状態になってしまいます。

フォトインターラプターのデーターシートを眺めても、
これが正解!という値は読み取れないんですね。
ではどうするか?というと、実測するのが早いんですね(笑)

CN1の3番ピンの論理を見ながら、発光側電流を変えてテストします。
今回の場合、約5.5mAが閾値でした。

ですので、6mA以上流す必要が有る、という結論になるわけですが、
具体的にいくつにするのが良いのでしょう?
ギリギリの6mAがエコロジーで良いのでは?と思いきや、
発光素子が消耗してきた際に光量が落ちて誤動作を起こすリスクがあります。

ですので、閾値の2~3倍位にしておくのがよろしいかと。
今回の場合は15mAに設定いたしました。
なお、発光側電流の絶対最大定格は50mAですから、結構余裕有ります。 

 

今回は論理反転回路が存在する為に、電流設定が やや面倒になりましたが、
直結回路の際でも同様に決める事ができます。