騎了NSR五年多,這陣子翻維修手冊,看到 CDI 的接線圖
一直以來都覺得這是一塊很巨大的拚圖,想著想著就推著自己往前走,心中閃過一個想法
不如~來自製一顆可程式的 CDI 吧~~~
羽山對於電子只有高職、二專時代念書時的程度
久沒碰觸總是一知半解,文章也許錯誤百出
但心中對於好玩的東西總有一絲熱情爆炸開來
~文章若有任何錯誤也請大家多多指教~
最初是在網路上看到一個日本人的分享「CDIの製作」
https://seiko.hatiju-hatiya.com/cdi/newcdi2a.htm
電路圖似乎也滿容易的,抱著嘗試的心情印出來試試
從NSR維修手冊把相關的接腳接線圖也都印出來
依樣畫胡盧,就接看看吧
羽山 NSR小藍 的CDI,拔下來研究
為了讓研究順利,網路上看到防水型插頭,2P、4P 公母,都買了一些回來
這個還滿重要的,激磁線圈打出來的高壓電不小心短路就怕電壞東西
或是電得全身吱吱叫
CDI 看似很複雜,但仔細看也才 6 條線,反覆一直背這 6 條線的用途
慢慢的~就不會覺得那麼困難
4P :
綠線:接地
青/黃:脈波線圈,電盤拾波器,用來偵測轉子的「凸台」位置
黑/黃:接點火線圈正級,輸出很大的直流電給高壓線圈,轉換成更高的高壓電讓火星塞跳火
白/紅:接給RC伺服馬達,通知它目前轉速多快,RC閥要開多少
2 P:
黑/紅:激磁線圈,當引擎在旋轉時,磁鐵跟線圈會產生約40~70V交流電,注入CDI的大顆電容充電
黑/白:熄火開關,其實就是把激磁的高壓電接地,電容不充電就熄火了
不得不說,日本人的這個電路圖還真的跑的起來,可惜沒有穩定的怠速,也相當難踩發
其中裡面的 SCR SF10JZ47 與 SCR SCF25C60 台中跑了好幾間電子材料行
都找不到,最後拿了容易買的 5P4M 替代,會是這個關係嗎 XD ?
或是二極體用的 1N4007 太小了?
在嘗試了各種電容、輸入二極體、輸入電容更改嘗試後,總覺得還是點火時間不對
最終還是需要把原廠 CDI 的點火角度抓出來研究才行...
從這個電路,對於讓火星塞跳火這件事覺得似乎已不是這麼困難
心中開始有點期待,覺得很雀躍起來~~~
總之,隨便拿網路上看到的電路直接無腦在車上試是相當危險的~
錯誤的點火角度會放屁、爆震、甚至爆缸
網路上大部分的CDI 電路其實羽山都試著接了一次,真的拿到車上玩 XXD
幾乎大部分看的懂好接線的,通常都是給割草機那種單純的引擎使用吧...
還好小藍很乖,還沒壞...
幾乎都是踩到腳痠也發不動,發動也不穩定
晚上吃完飯躺沙發追劇還抽筋好幾次生不如死~
但這個過程真有意思...
So...
是該拿出 Arduino、Nodemcu 來抓訊號了
這張照片是追風的轉子,我手邊沒有 NSR 的轉子,不過原理大概都相同
總之就是「拾波器」偵測到凸台後,依照當時的轉速,來決定點火的時間
這張照片是來自追風的維修手冊,使用正時燈照射的地方~
正時燈點亮時,就是火星塞點火的位置
凸台後面的那條線~ So...追風的點火位置都是固定的嗎@_@?
還是正時燈只能在固定某個轉速使用,這個羽山不太清楚^_^~?
(後來田老師說,NSR150,是在 4000rpm 從正時窗口看,會剛好打在線上)
手冊裡也有提到的樣子
那 NSR 維修手冊裡不同轉速的點火角度又是什麼意思呢~~~
接下來,要處理的事有二件
第一件事:拾波器抓到訊號...等待...拾波器又抓到訊號
說明:就是轉一圈,轉一圈的時間就可以拿來算轉速~~
以怠速 1500rpm 來說 = 一分鐘轉 1500 圈 = 一秒 轉 25圈
所以一圈是 1/25 = 0.04 秒 = 40ms = 40000us
所以知道藉由二次拾波器觸發過程經過多少時間,就可以得到轉速
T(us) = (1 / (RPM/60)) * 1000 * 1000
RPM = (1000*1000*60) / T(us);
註:人的一生一定要學代數,我的一生之敵是數學...
假設時間是 20000us 那轉速多少
RPM = (1000*1000*60) / 20000
RPM = 3000
答:3000轉 ,答對嘍~
第二件事:拾波器抓到訊號..... 等待 ..... 發生點火
|xxxxxxxx碰-----------------|xxxxxxxxx碰--------------| 點火
|----------------------------|---------------------------| 拾波器觸發 1圈~1圈
畫個簡單的圖似乎比較好說明~(排板不好對齊,對齊著看就好)
如果可以自己作簡單的電路,抓到原本 CDI 在抓到 拾波器開頭<--->點火碰
xxxxxxxx 的時間差,然後再記下當下的轉速,就可以知道什麼樣的轉速下,在抓到拾波器訊號後
要等多少時間,再打開 SCR 讓火星塞點火~~~
總之先把原本NSR 的 CDI 點火時間抓出來,之後自己作 CDI 才能根據這個資料作設定再微調最佳化~
先作橋接線,4P公、母互接線,這樣原本 CDI 接橋接線,就可以裝上車
把「脈波拾波器訊號線(青/黃)」、「高壓點火線(黑/黃)」接出來
接著利用NodeMCU 跟 二顆 PC817、一顆 74LS14 來設計電路
PC817是光耦器,可以容易把亂七八糟的電壓變成固定電壓讓單晶片使用
在參考許多濾雜訊的設計後,在網路上找到一部 Youtube 分享
https://www.youtube.com/watch?v=9UKM0vlHGkI
除了用簡單的 RC 時間整流濾波,再用施密特讓波型消除餘弦
在 PC817 的 第三支腳輸出,接地的電阻(R2 與 R4 , 100Ω)跟電容(0.1㎌)
RC = T , 100*0.1㎌ = 10us
假設 NSR 拉到 16000rpm,一圈多快~
1/(16000/60)*1000*1000 = 3750us
10us 的充放電時間應該是 ok
這個電路使用了「鉭值電容」鉭值也是有正負極,使用一般塑膠電容應該也是 ok
之前修 FZR 轉速表剩的拿來用
把「CDI脈波至點火時間差偵測機」的電路接好
開發 Arduino 程式 (使用的是 Nodemcu V2)
程式連結(GITHUB)
程式感謝 @FB 田峻墉 幫忙修正開發~
資工大師級用ISR抓轉速的部分寫的真好,太神啦...
由於這個硬體是基於 5V Vcc 輸入,從車上拉電要記得經過 7805 來供板子
最好放顆基納5.1V、電容在正負極,確保電路不會爆炸
接著把電路裝上車,裝上原本的 CDI 啟動引擎,拉轉
羽山沒有示波器,只好架 MQTT、Websocket MQTT
再使用 paho.mqtt.javascript 訂閱 mqtt topic
每隔 0.1秒,把抓到的數值透過手機分享的網路,傳到3WA網站即時顯示
2021-08-22 第一次嘗試,沒想到雜訊好多,有點小失望~~
但抓到訊號,真的很開心,真是好的開始
查了許多關於 PC817、Debounce、去 noise
https://www.youtube.com/watch?v=9UKM0vlHGkI
2021-08-23 總算作出一組雜訊比較少的 (握拳啊!),雜訊才幾粒啊...
也許把 R2、R4 改成 220Ω,或是 2.2KΩ
RC=T , 220 * 0.1㎌ = 22us
RC=T , 220 * 0.1㎌ = 220us
雜訊可以再少一些 !?
(此處必有本,後面文章建議先看完...哈哈)
這張圖表示 X 軸:轉速,Y軸 凸台--->點火,的時間差
在 1300rpm 時,點火時間差約 7000us
在 10000rpm 時,點火時間差約 900us
這張圖是直接: ( 時間差 / 轉速時間) * 360
例如:怠速 1500rpm
時間差:5941us
1圈時間:40000us
(5941 / 40000) * 360 = 53.47
在想是不是因為拾波器的位置、凸台的大小都有關聯,如果將延時的角度作成可以調整
上圖的 65 來說,換算後的型狀幾乎跟手冊上寫的是一樣
65 - ( 時間差 / 轉速時間) * 360 = 65 - 53.47 = 11.53
這部分的換算方式還在思考怎麼換算中 XD
但有了轉速對照的延時時間,應該就可以繼續下一步製作可程式 CDI
文章將採用滾動式修正,目前也都還在測試階段^_^~
玩車真有趣,大家一起來玩玩
延伸議題:
1、CDI 接拾波的地方,外加一次過濾雜訊,會不會讓老年 CDI 取得較乾淨的訊號,點的更好!?
2、能不能直接拔 CDI,直接用電子電路量 CDI 出廠的點火時間差?
3、74LS14、74HC14 會不會差很多呢?
4、NSR 凸台大小到底是多大,起始點的位置到底在哪? 為何是 60度、65度才是跟手冊一樣的波形?
5、要自製正時燈嗎? PC817 發現點火,推LED手電筒點燈來看~
需要解盲的事好多,又要改天嗎...
2021-08-29 補充:
使用 Nodemcu V2 應注意不要使用 D0、D3、D4 來當 INPUT
D0 預設是 LED_BUILTIN 沒事就會閃啊閃
D3、D4 只要接東西,Reset 或過電後似乎都不會自動跑程式,接腳拔出再 Reset 才能正常
所以不要用這三支腳~
待續...
下一篇:NSR-150 自製可程式 CDI - Part2 (研究方法目錄)