
純タコの資料的な憶書です。
さて純タコですが、PICの出力Pinの信号を何も増幅せずに直接繋いだら動いたので、5V20mAくらいのパルスの入力でもちゃんと感知してくれるようです。
ただ、パルス幅は0.5mS(0.0005秒)くらいないと安定してカウントしてくれませんでした。パルス幅が余り短いと、認識しないか、しても不安定になります。
取り敢えず、3発猿人の場合は、(この辺が上限だろうと思われる)9000回転で発生する猿人パルスの周波数だと225Hzになります。この周波数時での1パルスの周期幅を計算すると4.4…mS程度になるので、上記で入力しているパルス幅0.5mSの信号を入力すると(225Hzなら)デューティ比は約9%となります。
但し、写真の状態では225Hzではなく、ジェネレーターで発生させた181Hzの信号を入力していますのでデューティ比は9%より上になります。
この時点で針は7300rpmくらいを指していますので、181Hz入力時の論理値である7240rpmとほぼ一致しています。
上は純タコのメーター裏です。
尤も、メーターASSYに組まれた状態ではネジの頭だけが見えている状態です。
しかしASSY組込みのままでもこのネジはドライバーで緩められるので、ここにリード線を繋げば、元々の配線を切ることなく、小容量の電源が取れたり、シフトアップランプ取り付けなんか用の回転信号も取れたりします。
また、元々タコのない車に純タコを付ける場合、ECUのTA端子かキャブ車ならIGコイルから信号を取ってここに繋げばタコが動くようになります。
最後に、上記で使用したメーターテスト用のソース『Test Pulse Generator(笑)』。実験には便利です。
; ========================== ここから ==============================
;
; PIC12F683
; clock:INTOSCIO 8MHz
;
; テスト用のパルス出力
; 約7000rpmシュミレート
; 7Pin,GP0で出力
;
;
LIST P=12f683
#INCLUDE
__CONFIG _CP_OFF & _CPD_OFF & _WDT_OFF & _BOD_ON & _IESO_OFF& _PWRTE_ON & _INTOSCIO & _MCLRE_OFF
T5SCNT EQU 020h ; 5mSループカウンタ
T05SCNT EQU 021h ; 0.5Sループカウンタ
ORG 0
; 初期化
INIT
MOVLW 07h
MOVWF CMCON0 ; GP2-0はデジタルIO
BSF STATUS,RP0 ; ■バンク1に切替え
CLRF TRISIO ; GP0-5は出力
MOVLW 070h ; CLOCK=8MHz
MOVWF OSCCON
CLRF ANSEL ; デジタルIO(AN機能を使用しない)
BCF STATUS,RP0 ; ■バンク0に切替え
; メイン処理
MAIN
BSF GPIO,GP0 ; GP0On
CALL T05mS ; 0.5m秒の待機,これがパルス幅になる
BCF GPIO,GP0 ; GP0Off
CALL T5mS ; 5m秒の待機,これがパルスとパルスの間になる
GOTO MAIN
; ウエイト用のタイマ
; << 5mS >>
T5mS
MOVLW D'10' ; ループ回数10
MOVWF T5SCNT
T5LP
CALL T05mS ; 0.5mS待つ
DECFSZ T5SCNT,F ; ループ回数-1して0になったら次の命令をスキップ
GOTO T5LP
RETURN ; このサブルーチン呼出し元に戻る
; << 0.5mS >>
T05mS
MOVLW D'249' ; ループ回数249
MOVWF T05SCNT
T05mLP
NOP ; 何もせず1サイクル消費
DECFSZ T05SCNT,F ; ループ回数-1して0になったら次の命令をスキップ
GOTO T05mLP
RETURN ; このサブルーチン呼出し元に戻る
END
; =========================== ここまで ===============================
Posted at 2014/11/13 14:26:44 | |
トラックバック(0) | 日記