• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

toyspの愛車 [トヨタ プリウスα]

プリウス(ZVW30)ATシフトレバー 自作 自爆への道6

カテゴリ : 内装 > シフト・スイッチ > 自作・加工
目的修理・故障・メンテナンス
作業DIY
難易度★★
作業時間30分以内

作業日 : 2013年11月30日
1
最終 スタイル 

シフトを ボタンタイプにし
ステアリングスイッチを シフトがわりにしてみました


触るな危険!!!


量産化???
一台しかないのに・・・・

緊急用においとこうかな・・
車検いけるんかな・・・・


一段落してしまい やることがなくなりました。
もし いいアイデアがありましたら コメントお願いします

以上
2
おぼえがき


#include <EEPROM.h>
int value[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

//const int buttonPin[] ={3,4,5,6}; //other type
const int buttonPin[] ={0,1,2,3};
const int shift_pin[] = {9,10,8};
const int set_pin[] = {11,12,13};
const int other_pin[] = {5,6,7 };
//const int LOWPin = 7; //other type
const int LOWPin = 4;
const int LOWPin1 = 18;
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

const int analogInPin[] = {A0,A1,A2,A3};

void setup() {
pinMode(set_pin[0], OUTPUT);

pinMode(set_pin[1], INPUT);
digitalWrite(set_pin[1], HIGH);
pinMode(set_pin[2], INPUT);
digitalWrite(set_pin[2], HIGH);

digitalWrite(set_pin[0], LOW);
// anarogu
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);

pinMode(LOWPin1, OUTPUT);
digitalWrite(LOWPin1, LOW);


// initialize the LED pin as an output:
pinMode(shift_pin[0], OUTPUT);
digitalWrite(shift_pin[0], LOW);
pinMode(shift_pin[1], OUTPUT);
digitalWrite(shift_pin[1],HIGH);
pinMode(shift_pin[2], OUTPUT);
digitalWrite(shift_pin[2], LOW);
pinMode(LOWPin, OUTPUT);
digitalWrite(LOWPin, LOW); // initialize the pushbutton pin as an input:
pinMode(buttonPin[0], INPUT);
digitalWrite(buttonPin[0], HIGH);
pinMode(buttonPin[1], INPUT);
digitalWrite(buttonPin[1], HIGH);
pinMode(buttonPin[2], INPUT);
digitalWrite(buttonPin[2], HIGH);
pinMode(buttonPin[3], INPUT);
digitalWrite(buttonPin[3], HIGH);




EEPROM_read();

/*
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}*/
}


void loop(){
if ((LOW==digitalRead(set_pin[2]))&(LOW==digitalRead(set_pin[2]))){


shift_do() ;


}else{
set_do();

}




}

int button_stage;
int button_stage2;

void set_do(){
for (int i=0;i<4;i++){
if ( digitalRead(buttonPin[i]) == LOW) {
set_do01(i);
}
}
}

void set_do01(int ss){
analog_b_check2();
//int button_stage;
//int button_stage2;
/* Serial.print("ss");
Serial.print("\t");
Serial.print(ss, DEC);
Serial.print("\t");
Serial.println();*/
if (button_stage==-1){
//
}else{
// ss
//int button_stage;
//int button_stage2;
EEPROM.write(ss*2, button_stage);
EEPROM.write(ss*2+1, button_stage2);
EEPROM_read();

// D_Shift();
/* Serial.print("ss");
Serial.print("\t");
Serial.print(ss, DEC);
Serial.print("\t");
Serial.print("button_stage");
Serial.print("\t");
Serial.print(button_stage, DEC);
Serial.print("\t");
Serial.print("button_stage");
Serial.print("\t");
Serial.print(button_stage2, DEC);
Serial.println();*/
}

}

void EEPROM_read() {
for(int i=0;i<8;i++){
value[i] = EEPROM.read(i);
}

}



void analog_b_check2() {
int ov=0;
int b_pin=-1;
int b_swich=-1;

int sensorValue=1023 ;
int sensorValueD[]={0,0,0} ;
int outputValue = 0;

sensorValueD[0] = analogRead(analogInPin[0]);
sensorValueD[1] = analogRead(analogInPin[1]);
sensorValueD[2] = analogRead(analogInPin[2]);
int i=-1;
if(sensorValueD[0]<600){

sensorValue=sensorValueD[0];
i=0;
// D_Shift();

}else if(sensorValueD[1]<600){
sensorValue=sensorValueD[1];

i=1;

// D_Shift();
}else if(sensorValueD[2]<600){

sensorValue=sensorValueD[2];
i=2;
// D_Shift();
}

outputValue = map(sensorValue, 0, 1023, 0, 255);
int c=0;

do
{

ov = map(analogRead(analogInPin[i]), 0, 1023, 0, 255);
c++;

//c=c%200;
delay(1);
// if (c>2){led(i);} ;
} while ((((outputValue <ov+3)and(outputValue >ov-3)and(c<6)))and(i!=-1));

if (c>5)
{
b_pin=i;
b_swich=outputValue;
}

delay(1);


button_stage= b_pin;
button_stage2=b_swich;
}



void shift_do01(){

analog_b_check2() ;
//int button_stage;
//int button_stage2;

int pp=0;
for (int i=0;i<4;i++){
if((pp==0)&( value[i*2]==button_stage)&(( value[i*2+1]==button_stage2-1)or( value[i*2+1]==button_stage2)or( value[i*2+1]==button_stage2+1))){
pp=1;

/*
Serial.print("Shift");
Serial.print("\t");
Serial.print(i, DEC);
Serial.println();
*/
Shift(i);

}
}
}
void shift_do(){
// read the state of the pushbutton value:
shift_do01();
for (int i=0;i<4;i++){

//int i=0;
buttonState = digitalRead(buttonPin[i]);

// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == LOW) {
// turn LED on:
Shift(i); delay(1000);
}
else {
// turn LED off:

}
}

}

void Shift(int ii) {
switch (ii) {
case 0:
D_Shift() ;

break;
case 1:
N_Shift();

break;
case 2:
R_Shift();

break;
case 3:
B_Shift();
break;

}


}



void N_Shift() {
digitalWrite(shift_pin[2], HIGH) ;
delay(1000);
digitalWrite(shift_pin[0], LOW) ;
digitalWrite(shift_pin[1], HIGH) ;
delay(100);
digitalWrite(shift_pin[0], LOW) ;
digitalWrite(shift_pin[1], HIGH);
delay(100);
digitalWrite(shift_pin[2], LOW) ;
delay(500);
}

void D_Shift() {
digitalWrite(shift_pin[2], HIGH) ;
delay(500);
digitalWrite(shift_pin[0], HIGH) ;
digitalWrite(shift_pin[1], HIGH) ;
delay(500);
digitalWrite(shift_pin[0], LOW) ;
digitalWrite(shift_pin[1], HIGH);
delay(100);
digitalWrite(shift_pin[2], LOW) ;
delay(500);
}

void R_Shift() {
digitalWrite(shift_pin[2], HIGH) ;
delay(500);
digitalWrite(shift_pin[0], LOW) ;
digitalWrite(shift_pin[1], LOW) ;
delay(500);
digitalWrite(shift_pin[0], LOW) ;
digitalWrite(shift_pin[1], HIGH);
delay(100);
digitalWrite(shift_pin[2], LOW) ;
delay(500);
}


void B_Shift() {

digitalWrite(shift_pin[0], LOW) ;
digitalWrite(shift_pin[1], HIGH);
delay(100);
digitalWrite(shift_pin[2], LOW) ;
delay(500);
digitalWrite(shift_pin[0], HIGH) ;
digitalWrite(shift_pin[1], HIGH) ;
delay(500);
digitalWrite(shift_pin[0], LOW) ;
digitalWrite(shift_pin[1], HIGH);
delay(100);
}
3
設定ピンは 外して起動し ボタンとステアリングボタンを同時押しで設定

刺して 再起動で ステアリングボタンが作動
4
接続部1

黒 アース
赤 5V
黄 シグナル
5
接続部2
6
シフトボタン

イイね!0件




 

入札多数の人気商品!

 

関連整備ピックアップ

ミラースイッチの光る化 接続イメージ図

難易度:

DIY

難易度:

プリウスα シフトノブ交換

難易度:

純正のLEDが暗いのでとりあえずお決まりの打ち替え基盤の交換。

難易度:

ステアリングスイッチ交換

難易度:

ヘッド純正加工その3

難易度: ★★

関連リンク

この記事へのコメント

コメントはありません。

プロフィール

「ハイブリッドシステム異常警告灯2 http://cvw.jp/b/2021120/40244284/
何シテル?   08/14 22:10
トーイです。よろしくお願いします。
みんカラ新規会員登録

ユーザー内検索

リンク・クリップ

ヤマハ COX ボディダンパー 
カテゴリ:その他(カテゴリ未設定)
2014/06/20 23:53:51
エアコンパネル取り外し 
カテゴリ:その他(カテゴリ未設定)
2014/06/08 21:17:26
エアコンパネル解体 
カテゴリ:その他(カテゴリ未設定)
2014/06/08 21:14:48

ファン

4 人のファンがいます

愛車一覧

トヨタ プリウスα トヨタ プリウスα
トヨタ プリウスαに乗っています。 DIYでどこまでできるか・・・ インテリアのプラス ...
ヤマハ R1-Z ヤマハ R1-Z
復活 2スト 高燃費 高加速・・・・時代錯誤の バイク 転倒 注意
スズキ ウルフ250 ウルフ (スズキ ウルフ250)
ガラクタを かってしまいました・・・・ 動くのか? ・・・・ こわーーー
ダイハツ トールカスタム ダイハツ トールカスタム
本日納車 嫁 写真拒否のため 悪しからず... 20170625
ヘルプ利用規約サイトマップ
©2017 Carview Corporation All Rights Reserved.