とりあえず PIC12C509A のプログラムを PIC16F84A に移植してみた。クロックは PIC12C509A に内蔵されている RC 発振回路の 4MHz に合わせて 4MHz のセラロックを使用。
PIC12C509A に書き込んだプログラムは、送信機のスイッチでパルス幅を瞬間的に切り替えた場合は問題ないのだが、スティックでゆっくりパルス幅を変化させていくと、シャッタ出力に設定したパルス幅を横切るときにチャタリングが起きてしまう。
実際にはデジタルカメラのシャッタに使われているスイッチもメカニカルなものなのでチャタリングが起きるはず。当然カメラ内部でこのあたりの対策はされていると思うので、問題になるほどのことはないと思われるが、PIC からの出力はチャタリングがないに越したことはない。
このチャタリングを防ぐために、設定した 1.6msec のパルス幅を連続して 4 回受け取ったらシャッタ出力を ON にするようにプログラムを組みなおした。 PIC12C509A の時はパルス幅の設定を 1.9msec にしたが、今回はその値を 1.6msec にしてみた。
結果は素晴らしくよくなった。送信機のスイッチで操作してみると出力に若干の遅れを感ずるが、全く問題にならないレベルだ。 PPM 受信機のパルス周期はおよそ 23msec 、 PCM 受信機でおよそ 14msec なので最大 0.1 秒ほどの遅れがでる。
今回は横着をせず、きちんとユニバーサル基板に部品を取り付けて実験を行った。PIC マイコンとセラロックはソケットを使用。シャッターの出力に圧電ブザーを取り付けて動作の確認を行った。念のためオシロスコープでセラロックの発振波形も確かめてみた。このあたりで電子工作の楽しさを味わっていると言う実感が湧いてきた。きちんと動作したときの嬉しさはなんともいえない。
今回も PIC 入力にトランジスタを組み込んだ。これは使用する受信機によってパルスの振幅が違うためで、通常電源電圧とほぼ同じ振幅の場合は必要ないと思われるが、Futaba の受信機ではパルス振幅が約 3V と電源電圧の 5V に比べてかなり低くなっている。この回路を挿入したために PIC 入力は負論理となる。
出力にもトランジスタを組み込んだが、PIC から最大 25mA の電流を流す能力があることから、今回の圧電ブザー負荷の場合は直接駆動が可能なはず。デジタルカメラ用のシャッターとして使う場合にはホトカプラを直接駆動できるだろう。現在ホトカプラを調達中なので入手できたら試してみようと思っている。