親愛的愛將沒有轉速表,
油表又從沒正常工作過,
所以就把它的位置拿來做轉速表了。
一般的轉速表是接到CDI的脈動線圈上抓取轉速訊號,
但不想大費周章拆車只為了找出這條線,
而檔車的火星塞就正在引擎的側邊,
因此直接使用霍爾元件去感應火星塞的點火訊號,
就可以抓到引擎的轉速。
使用示波器可以看出霍爾元件感應火星塞時所輸出的波形,
線性的霍爾元件在沒有磁場的狀況下輸出1/2Vcc的電壓,
這樣的電壓已經高於單晶片的閾值電壓,
因此需要使用電壓比較器來抓出脈波。
使用可變電阻來調整閾值電壓。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Servo.h> | |
Servo indicator; | |
unsigned long start; | |
unsigned long length; | |
int rpm; | |
long rpma; | |
int out; | |
void setup (){ | |
pinMode(7,INPUT); | |
pinMode(8,OUTPUT); | |
indicator.attach(8); | |
indicator.writeMicroseconds(670); //10000rpm | |
delay(550); | |
indicator.writeMicroseconds(2340); //0rpm | |
delay(550); | |
} | |
void loop (){ | |
while(!spike()); //wait for LOW signal | |
while(spike())start=micros(); //start at the falling edge of HIGH signal | |
while(!spike()); //wait for LOW signal | |
while(spike())length=micros()-start; //end at the falling edge of HIGH signal | |
if(length>6000&&length<100000){ //T=6000us equal 10000rpm; T=100000us equal 600rpm | |
rpm=60000000/length; //rpm=(1sec/T)*60=60000000(us)/T(us) | |
} | |
rpma=rpma*3+rpm; //averaging filter | |
rpma=rpma/4; | |
out=rpma/10; //accuracy=10rpm | |
indicator.writeMicroseconds(map(out,0,1000,2340,670)); | |
} | |
boolean spike(){ | |
return (PIND>>7);//read signal input | |
} |
Arduino mini pro
ss49e hall sensor
LP339n
Servo
Regulator
others
----------------------
HALL EFFECT SENSING AND APPLICATION
SS49e Hall effect sensor
LP339n Voltage comparator
遲遲
回覆刪除請問你是用那個模組 我用一般的霍爾 模組不行也
回覆刪除ss49e hall sensor
刪除http://dscl.lcsr.jhu.edu/main/images/3/31/SS49e_Hall_Sensor_Datasheet.pdf
大哥請問一下! 為甚麼我使用這顆http://goods.ruten.com.tw/item/show?21507474175272 都測不出來,但是拿磁碟靠近跟離開是可以取得到訊號的
回覆刪除類比霍爾跟TTL數位霍爾的我都有買 不知道是哪邊有問題 ?可以請教一下嗎?
你買的模組已經有帶比較器,調整模組上面的可變電阻就是調整門檻值。
刪除把霍爾元件壓在火星塞帽上,調整門檻值,應該就可以在示波器上看到脈波輸出。
作者已經移除這則留言。
刪除大哥LP339這顆的作用是做甚麼的呢? 線路應該怎麼接? 是否有照片可以參考 我看不太懂上面的線路圖,還有SS49E霍爾 跟3144霍爾有甚麼不一樣! 為甚麼一定要SS49E霍爾才能測試的出來呢? 不好意思~~是否可以跟小弟解釋一下 拜託了
回覆刪除LP339就是電壓比較器,原理可以參見連結:
刪除http://zh.wikipedia.org/wiki/%E6%AF%94%E8%BE%83%E5%99%A8
霍爾元件的原理都相同,只差別再測量的範圍跟精確度。
我選擇ss49e只是因為他方變購買而已。
請問大大
回覆刪除你拉的信號是 高壓線的電磁波 還是點火的高壓電信號
火星塞點火時,高壓線周圍會有磁場變化,霍爾元件就是感測磁場變化的頻率來回推引擎轉速。
刪除請問您知道如何克服雜訊干擾的問題嗎?我的方式是用Lm2596來降壓12v到5v,然後用arduino輸出方波給某通用轉速表,但是發現會有轉速亂跳的問題,而我手邊沒有專業的儀器,所以猜會不會是共地雜訊、還是lm2596穩壓模組問題或是訊號在傳輸時受到高壓線圈的干擾... 請問你知道大概要朝什麼方向才可以排除問題呢? 謝謝
回覆刪除可能因為車上的12V非常髒,也有可能抓到的霍爾信號不穩定。電源髒的解決辦法可以直接買模型玩具的穩壓模組來供電,或者加強lm2596的濾波電路。霍爾信號不穩定可以嘗試不同的感應位置,或者對輸出的轉速值做濾波。
刪除請問您一個問題,
回覆刪除"indicator.writeMicroseconds(670);"裡面的"670"還有"2340"是什麼數值?是怎麼對映到轉速的?如果要寫到1w5轉的話要怎麼改寫呢?
謝謝回覆
太感謝了 這方法好用
回覆刪除機車電路設計高壓電路是完全隔絕的,即使漏電也是只會回流到地線。現在你的電路板電源輸入一端接在機車主要電路樞紐上,另一條線接在上千伏特高壓線路上,有沒有可能遇到下雨時導電上千伏特電壓經由你的電路板返回到整個機車電路上燒毀所有東西?
回覆刪除霍爾元件本身即為非接觸式元件,上述應用僅在高壓線圈外側感應磁場,並無直接與高壓搭接,因此沒有高低壓共線的問題。
刪除