
かなり時間が経過しましたが、エスティマのステアリングパッドスイッチを利用して赤外線リモコンの信号を送信する回路を作っていましたが、PICマイコン用のプログラムに悪戦苦闘していました。ただ何とか使えそうなレベルまで完成したので、進展状況を紹介したいと思います。
以前のブログでは赤外線信号の解析、PICマイコンでの送信までは完成していましたが、エスティマのステアリングパッドスイッチの解析がまだ終わっていませんでした。

まずエスティマのステアリングパッドスイッチは、押されたスイッチの抵抗値を元にスイッチ判別を行っています。PICマイコンで抵抗値を判別する為には、抵抗値に対する電圧変化を利用すれば、スイッチ判別が可能そうなので、PICマイコンに内蔵されているA/D変換を使ってみる事にしました。
A/D変換とは英語で「Analog-to-digital converter」と書くようにアナログデータをデジタルデータに変換するという事で、変換(converter)も含めて「ADC」と表現する事もあります。利用したPICマイコンは以前のブログでも紹介したPIC12F1822をベースにやってみました。
このマイコンは100円程度と安価ですが、10bitのA/D変換が利用できます。ただA/D変換機能を利用した事がなかったので、テスト回路やプログラミング、動作確認にかなり時間が掛かってしまいました(会社の決算処理で忙しかったのも一理ありますが...)。
10bitのA/D変換と書きましたが、10bitとは10進法でいう0~1023までの1024段階で電圧表現が可能という事です。仮に5Vで動作するマイコンの5V、GNDをA/D変換の基準電圧とした場合、0V~5Vが0~1023としてデジタル化(数値化)されるので、抵抗値による電圧をif文などの条件分岐に利用できる様になります。
エスティマのステアリングパッドスイッチでは、AU1、AU2、EAUにて回路が構成されているので、この部分より分圧&A/D変換します。

AU1のSEEK+スイッチ及びAU2のMODEスイッチに関して、AU1-EAU間及びAU2-EAU間の抵抗値が0(短絡)になるので、必ずプルアップ抵抗(R1)を使って分圧・A/D変換する必要があります。また、AU1とAU2をA/D変換のデータ用として利用する為、本PICに4つあるA/D変換の内2個を使いました。

ステアリングパッドスイッチの抵抗基準値は点検マニュアルに記載されているので、その抵抗値を元にADCの値も求めることができます。ADCの値が分かれば、ADC範囲内にある数値=押されたスイッチ!という事を処理できます。
赤外線の送信に関しては、9msと4.5msのリーダーを送信後、PWM制御を利用して16進数化したカスタムコード、データーコードを送信させるルーチンをプログラムで作りました。
また、カスタムコード及びデーターコードによってリモコンでの制御内容が変わる為、デジ像リモコンの全コードをヘッダーファイルとして作成、ステアリングスイッチのキーとリモコン送信内容が把握しやすいようにしました。
PIC12F1822では入出力に6つのポートが使えますが、AU1入力、AU2入力、IR(赤外線)出力に3つ使っているので、後3つ入出力に利用できます。ただ、当方はステアリングスイッチをMOPナビ制御にも使っている為、AU1、AU2を赤外線用、MOP用へ切替える為のリレー制御が必要になりそう...なので、その為の制御用にポートを1つ使う予定です。後残り2つをどうするか?ただいま検討中です。
案としては、
・クルーズコントロールをA/D変換してさらにスイッチ制御を増やす。
・シフトキーの入力用として使い、シフトキー+スイッチを押す事で機能を増やす。
・LEDを点けて、MOP⇔赤外線のどちらの機能になっているか表示させる。
などなど、もう少し機能性がだせそうなので、ちょっと思考中。
今回、ブレッドボード上にてスイッチ部分を擬似的に組み立て、動作確認しています(スイッチは現在MOPで利用しているので外したくない為)。当初はEAUもリレーで切り離し5Vを入力・分圧する方向で考えていましたが、回路図を調べたところ、EAUはアースとして使っている様なので、このままGNDとして利用し、回路とプログラム内容の一部変更した方がよさそうなので、近日中に修正予定です。
[動作テスト中の動画]
Posted at 2017/06/25 23:27:34 | |
トラックバック(0) |
電気・電子関連 | クルマ