さて、需要はあまりないかと思いますが、「純正ハンドルスイッチ」と、「3-drive AC」を接続する為の、「自作変換ユニット」のプログラムを紹介します
アウトランダー(CW5W)で使っていた、3-drive ACを、純正ハンドルスイッチで使う為の、変換ユニットのPICプログラム
純正ハンドルスイットの配線は、下の図の様になっています。
—————————————車両側へ
| | | |
抵抗1 抵抗2 抵抗3 抵抗なし
| | | |
—————————————車両側へ
「純正ハンドルスイッチ」と、「3-drive AC」を接続する機器構成は、次の様なイメージとなります。
純正ハンドルスイッチ → 自作変換ユニット → 3-drive AC
変換ユニットを作る為の部品は?
この自作変換ユニットの材料は、次のとおりです。
①PICマイコン1個(変換ユニットプログラムを格納するもの)
②トランジスタ3個(ここに電圧が掛かったら、PICマイコンからの電流をGNDに落とすスイッチの役割)
③3端子レギュレータ(12Vから5Vへ降圧するもの)
④コンデンサ(PICマイコンに接続し、電流を安定させるもの)
⑥抵抗(純正ハンドルからの電圧を分圧するもの)
⑦必要な物(PICKIT、パソコン、ハンダごて等)
PICマイコンのプログラムについて(C言語)
PICマイコンの中のプログラムは、次のとおりです。
//純正ハンドルスイッチ変換プログラム
//分圧用の抵抗は、1,000オームとする。
//以下配線図
// 5V-IN
// ↓
// |
// |———5.00V (ON-OFF MODE)
// 205 <=1002.5 (4.9V)
// |———4.64V (CANCEL AC-ON)
// 413(618) <= 818.4 (4.0V)
// |———3.91V (CST DOWN)
// 1242(1860) <= 409.2 (2.0V)
// |———1.74V (ACC UP)
// 1000(2860) <= 204.6 (1.0V)
// |
// GND
#include
#define _XTAL_FREQ 4000000
__CONFIG(INTIO & WDTDIS & PWRTDIS & MCLRDIS & UNPROTECT & BORDIS & IESODIS & FCMDIS);
void init_conv(void){
ADCON0 = 0b10000001; //result right; channel 0; ADV on;
ADCON1 = 0b00010000; //clocl Fosc/8;
ANSEL0 = 0b00000001; //RA0 analog_port;
TRISA = 0b00000001; //RA0 port in;
TRISC = 0b00000000; //RC0 port out;
INTCON,GIE = 0; //interrupt 0;
}
unsigned int voltage(){
ADCON0,GODONE = 1;
while(ADCON0,GODONE != 0) //convert terminate?
continue;
return (ADRESH << 8) + ADRESL; //ADV Result
}
void main(void){
init_conv();
unsigned int result;
while(1){
result = voltage();
if(result <= 204){ //閾値1V以下なら (NONE NONE)
PORTC = 0b00000000;
}
else if(result <= 409){ //閾値2V以下なら (ACC UP)
PORTC = 0b00000001;
}
else if(result <= 818){ //閾値4V以下なら (CST DOWN)
PORTC = 0b00000010;
}
else if(result <= 1002){ //閾値4.9V以下なら (CANCEL AC-ON)
PORTC = 0b00000100;
}
else{ //閾値4.9Vを超えるなら (ON-OFF mode)
PORTC = 0b00001000;
}
}
}
コメント