|
|
|
準備編
|
|
TOPページ > コンピューターROMチューン入門 > マイコン制御方法
概要:
マイコン制御の作成。プログラムの作成。随時このページを更新します。
ペリを制御するサイトは知る限りこのサイトしかない!またプロの記事も見つけられていないので、結果的に嘘になってしまったらごめんなさい。素人の趣味レベルの電気知識と素人プログラマーだから許してください。
|
|
|
|
■プログラムを書き始めると:
前回書き出せなかったので今度こそ。
先に言いますがココではメモと思ってください。
いきなり書き出しますので構文等は多少間違っていると思います。が
ハードと接続するので、テストしながら何度も書き換えると思います。
ので細かい指摘はしないように。素人なんだから。
で、前回のブロック図にあった「AA」から考えます。
ですが、まずはどのPINに何をつなげるかを宣言。
const int IG1=0; //イグニッションコイル 入力1 D0 デジタルpin
const int IG2=1; //イグニッションコイル 入力2 D1 デジタルpin
const int IJA550=13; //フロントローター用 550ccインジェクター出力 D13 デジタルpin
const int IJA860M=11; //フロントローター用 860ccインジェクター出力 D11 デジタルpin
const int IJA860S=9; //フロントローター用 860ccインジェクター出力 D9 デジタルpin
const int IJB550=12; //リアローター用 550ccインジェクター出力 D12 デジタルpin
const int IJB860M=10; //リアローター用 860ccインジェクター出力 D10 デジタルpin
const int IJB860S=8; //リアローター用 860ccインジェクター出力 D8 デジタルpin
const int AC1=2; //アクセル ON信号用 入力 D2 デジタルpin
const int AC2=3; //アクセル OFF信号用 入力 D3 デジタルpin
const int O21=A0; //O2センサー用 入力 A0 アナログpin
const int WT1=A1; //水温センサー用 入力 A1 アナログpin
const int ST1=4; //スターター 入力 D4 デジタルpin
const int 12V=5; //12V電源 入力 D5 デジタルpin
とこんな感じ。
燃料噴射を制御するだけでこれだけの接続が必要。点火もしていたら相当大変?
で次は、ブロック図の[AA]から考えます。
[AAプログラム]
Void loop()
IGval = digitalRead(12V); //12Vにつながった信号をデジタルで読み込み IGvalに保管する。
STval = digitalRead(ST1); //ST1につながった信号をデジタルで読み込み STvalに保管する。
AC1val = digitalRead(AC1); //AC1につながった信号をデジタルで読み込み AC1valに保管する。
AC2val = digital Read(AC2); //AC2につながった信号をデジタルで読み込み AC2valに保管する。
if (IGval == HIGH) { //もしIGval が HIGH(5V)で
if (STval == HIGH) { //もしSTval が HIGH(5V)で
if (AC1val == HIGH { [アクセルONプログラム] //もしAC1val が HIGH(5V)だったら アクセルONプログラムを実行
}
if (AC2val == HIGH { [アクセルOFFプログラム] //もしAC2val が HIGH(5V)だったら アクセルOFFプログラムを実行
}
else { [アクセルパーシャルプログラム] //それ以外だったら アクセルパーシャルプログラムを実行
}
となるわけ。
具体的なマイコンにつなげる信号線の回路図も示さないとよくわからないかな。
テキストで書かないで環境をダウンロードして書いたほうがらくだなぁこりゃ。
このパソコンではないパソコンにプログラム作成環境を作ったが、そのパソコンがレースの赤外線測定機として利用しているので、貸し出し中でない。
面倒だがやはりこのPCにインストールするか?
続く
|
|
|
|
|
|