電子工作 LM393+AVR(ATtiny2313) Auto Light Controlの実験

当サイトの車両は車齢30年にも満たない若輩車ですがサビ具合だけはそれ以上に見えます。いわゆるただのポンコツ車ですが4月より新型の乗用車はオートライトが義務化されるということもあり当サイトでも検討してみることにしました。

オートライト仕様

JAFによるオートライトのテスト検証ページがあります。
https://jaf.or.jp/common/safety-drive/car-learning/safety-light/autolight-test
現状の使い方をそのままを+オートライト仕様にするには少々面倒な作業になりそうです。
通常走行はオートライトONで全ての操作が可能を目標とし、手持ちのLM393(CDS)とATtiny2313でコントロールしてみる事にします。
薄暮時ポジションランプ点灯5S 消灯2S
本点灯ヘッドライト、ポジション点灯0.8S 消灯2S
点灯時のハイ切り替えはパッシングの長押し(Pull)0.6S パッシングショート解除
コントロール基板に2個のSWを設けそれぞれローのみ消灯、ローポジション消灯(トグル)
エンジン停止時は点灯しない。
万一不具合があった場合は簡単に元の回路に戻せるようにします。

オートライト回路 プログラム

auto-light.pdf

現状の回路はリレーキットを組んでありLまたはRのH4ソケットにプラグを差し込んでL,Hリレーを動作させ左右に振り分ける単純な回路です。
回路はソケット、プラグの入出力を一旦AVRに接続してコントロールします。マニュアル操作もAVR経由でコントロールすることになります。
ポジションランプのコントロールはリレーを追加して既存の回路に割り込ませます。
万一の場合はソケット、プラグを直結することで元のとおりになります。

$ avr-gcc -mmcu=attiny2313 -Wall -Os autolight.c
$ avr-objcopy -O ihex -R .eeprom a.out autolight.hex
$ avrdude -p t2313 -U flash:w:autolight.hex:a


autolight.c

MCUはピン数、サイズ、手持ちの関係からATtiny2313を用いました。
オルタネーターから交流を取り出し整流して始動信号(E-Run)としています。(エンジン停止時オートライトOFF)
PD1(H)オートライトオン 信号が無い場合は10Kでプルアップしておくかプログラムを変更しておきます。

作成


センサは手持ちのLM393(CDS)を使います。AVRでもコンパレーターまたはADCでも可能と思いますが今回はコントロールに徹して問題があれば再度考慮。


LM393は1回路遊んでいるので薄暮時のポジションランプ点灯用に増設します。


絶縁して張り合わせます。


赤SWでLOW消灯、モニタLED(緑)点滅
黃SWでLOW、POSITION消灯、モニタLED(橙、緑)点滅
再度押すと解除、赤SWは黃SWモードも解除


47mmx37mmサイズ


書き込みはlinuxgpioを使っています。
回路は5V動作ですが書き込みは3.3Vとなるため外部から5Vを加えないようにします。


実際に12Vを加えてリレーの動作テスト

取り敢えず机上のテストではほぼ希望通りの動作をしているようです。