#何を制御するのか
arduinoでタイマーを利用して2つの時間間隔を制御して、車の外気モードの時間と内気循環モードの時間をそれぞれ異なる時間で切り替えたいと思って早くも数ヶ月。
実は特に真夏は、内気にしてクーラーをかけないと冷える効率はよくない。
しかし、ずうっと内気ばかりでも湿度がさがりすぎたり空気がこもった感じになるのでたまに外気を入れられたら、、そんな発想で作成したものの今はもう寒くなってきて。
##2つの時間を交互に切り替えるだけなら簡単ではあったが
arduinoはプログラミングができるのでおおざっぱに言えば2つの時間を変数にもたせて交互にタイマー割り込みをかければそれ自体はたいしたことないことですぐ実現できていた。しかし、何が大変だったかといえばたまに手動で切り替えたとき、どうするかという問題。そんなのまあたいした問題ではないことだがこだわったためちょっといろいろ制御を加えた。まず現在のモードが外気モードか、内気循環モードかを判断してから、タイマー割り込みで次の割り込み時間を選択する場合にたとえば現在外気だったら内気の時間変数で次のタイマー割り込みをかける。必ずしもインターバルではないような判断を加えた。判断は内気の場合自分のホンダ車はLEDが点灯するので、それをもってきて判断するというやりかた。
これをヤフオクで安くゲットしたコンパレータを使ってその電圧を判断してarduinoのアナログ入力とコンパレータICの出力をつなげた。日立製のHA17393はデータシートから読み取れなかったが、出力は電圧は変化しない。アースとなるか、アースにならないかの違い。ちょうどarduinoのアナログ入力、読み取りモードはデフォルトで使用していたため、アナログ入力端子をアースとの抵抗値を変化させることで、analogReadの戻り値が変化するモードで使用していた。そのため、アナログ入力値に電圧を変化させて入力させても、読み取れない。あくまでこのモードではアースとの抵抗値で値が変化するのである。しかしこの方が安全に利用できる。まちがってarduinoに使用している電源電圧より高い電圧をアナログ入力に入れてしまうとぶっこわれる可能性が高い。これは調べていたころそんな注意はあったし、実際自分のarduino nanoはA0のアナログ入力は壊れてしまった。
#QAPASSの表示で注意すること
さて、やっと本題。
なかなか表示できずこまっていたがなんのことはない、V0端子はLCDのコントラスト調整端子で、なにもしないと表示されない。それで、検索した配線図で、目に付くのは電源とGNDに可変抵抗をいれて電圧を変化させて調整できるようになっているもの。それ以外はまだよく検索していないので見つけられていないが、自分は単にこのV0端子もGNDとの抵抗値を調整できるように半固定抵抗を取り付けた。この半固定抵抗のGNDの対極には電源は接続していない。自分のQAPASS LCDはGNDとの抵抗を変化できればこれで十分よく調整できた。
上記写真は、まだ表示文字列を精査していない、段階で表示ができるようになったばかりのもの。LCDにくっついている半固定抵抗はコントラスト調整、その後ろ
arduino基盤にくっついている半固定抵抗はコンパレータもすぐ近くにみえるが、内気循環モードのときの電圧判断のGNDとショートするかどうかの分岐点の電圧値を調整するもの。
前書きにも書いたが、正しく現在の外気/内気のモードをarduinoが判断しているかどうかをチェックするにはやはり何らかの表示が必要で、シリアル通信ではデバッグ情報を表示できるが、車の走行中にパソコンとUSB接続したくないし、だいたいからして、12Vの電源は取っているし。
#ケースに収めて
配線が細い線を使ってみたので、(ウン十年前に購入してずっと保持していたオレンジのリード線)ハンダののりが悪かったので何度も導通を確認して表示できたもの