Zclub討論區 Z板

 找回密码
 註冊
搜索
查看: 3164|回复: 10

[分享] 自製轉速表測試電路

[复制链接]
发表于 2014-12-28 00:54:32 | 显示全部楼层 |阅读模式
本帖最後由 stw_shadow 於 2014-12-28 01:00 編輯

最近常在修轉速表,總覺得每次都拿到車上拉轉測試很傷車~
所以花了點時間研究一下轉速表餵入的訊號

引擎的訊號可以想成 1500rpm ~ 12000rpm / 60 (25HZ~200HZ)
所以 555 要想辦法配出這個 range 的 frequency
目前我影片是抓
C = 0.47uf
R1=10KΩ
R2=1KΩ(固定電阻) + 0~50KΩ (可變電組) (27.413    Hz~255.851    Hz) ,所以起始轉速大概落在1950rpm,當然後面會超轉超過14000rpm)
產生出來的訊號,是5~6V AC 頻率就如同上面寫的這個range

因為50KΩ的可變比較好買,如果要測更低的(lower than 27HZ,要改C的電容,也許找0.8uf再抓一次吧 或是二顆0.47並聯應該也可)

總之就作出來了~~哈哈

影片:https://www.youtube.com/watch?v=KROJ6m24rxM&feature=youtu.be



參考資料:
http://artoowang.blogspot.tw/2008/05/fzx.html
http://www.ohmslawcalculator.com/555_astable.php (用來配555 freq很方便的網站)
http://www.sentex.ca/~mec1995/circ/555dcac.html (555 DC 轉 AC 的電路圖)

评分

4

查看全部评分

回复

使用道具 举报

发表于 2014-12-28 15:59:47 | 显示全部楼层
這還要搭配另一個轉速表才行

像我幾個月前買一個二手表
轉速拿下來用ac 110v轉ac 12v的變壓器來測
正確會顯示在3600轉左右
因為60Hz=1秒60次波=3600次波/1分=3600轉/1分
不過因為看不到其他轉,所以只能簡單測試和校準

假如是電子資訊的學生那拿訊號產生器來試最方便了
回复

使用道具 举报

 楼主| 发表于 2014-12-28 23:12:39 | 显示全部楼层
本帖最後由 stw_shadow 於 2014-12-28 23:24 編輯

我一開始也是餵市電的110v 的 60hz(轉18-12-8-0v下去)


不過實際拿電表測量我家裡的市電,他也不是剛好60HZ,而是62HZ (3720RPM)~_~

手邊有電表可以量HZ會比較可靠些 :D



回复

使用道具 举报

 楼主| 发表于 2015-1-2 21:20:07 | 显示全部楼层

當訊號源改成 8051 ,那就可以輕易的作成全自動測試機了~~

回复

使用道具 举报

发表于 2015-1-2 22:45:58 | 显示全部楼层
stw_shadow 發表於 2015-1-2 21:20
當訊號源改成 8051 ,那就可以輕易的作成全自動測試機了~~


可以拉到一萬四千轉嗎?

点评

可以輕易的超過 :D  发表于 2015-1-2 23:33
回复

使用道具 举报

 楼主| 发表于 2015-1-2 23:47:49 | 显示全部楼层

全自動雨刷

int loops[22] = {12000,12000,10000,8000,6250,3030,2000,1500,1200,1000,857,750,666,599,545,500,461,428,380,320,280,260};




点评

帥翻天了。拉轉好快啊。呵  发表于 2015-1-3 01:21
回复

使用道具 举报

 楼主| 发表于 2015-1-3 09:35:06 | 显示全部楼层
stw_shadow 發表於 2015-1-2 23:47
全自動雨刷

int loops[22] = {12000,12000,10000,8000,6250,3030,2000,1500,1200,1000,857,750,666,599,5 ...

可以更快呦,不過怕弄壞
回复

使用道具 举报

 楼主| 发表于 2015-1-19 15:50:47 | 显示全部楼层
總算做好了,好開心~~~
自製的【可程式化 FZR-150 儀表信號產生器】



如果程式碼可以調整更好,歡迎修正呦
晚點再放到 GitHub 分享~
https://www.youtube.com/watch?v=1B3jSu6hLXs&feature=youtu.be


電路圖:

程式碼:
/**
* Homemade Yamaha FZR-150 Portable 8051 Tachometer Signal Generator
* CopyRight By http://3wa.tw (Feather Mountain)
* License: GPL & MIT
* Free free and free. Feel free and feedback let me know :))
* Version: 1.0 (2015-01-16 01:50AM)
*/
#include<AT89x51.h>                    
   
#define CNT  100
long i=0;
void delay_us(unsigned int us_count)
{   
  while(us_count!=0)
  {
    i++;
    us_count--;
  }
}
void delay_1ms(int msec)
{
    int i;
    while(msec--) {
        i = CNT;
        while(i--);
    }
}
int loops[27+15] = {
    12000,12000,12000,12000,12000,7000,5000,3000,2000,1500,1200,1000,857,750,666,599,545,500,461,428,380,340,330,330,330,330,330,
    330, //14000
    360, //13000
    395, //12000
    435, //11000
    480, //10000
    540, //9000
    610, //8000
    700, //7000
    830, //6000
   1020, //5000
   1300, //4000
   1750, //3000
   2700, //2000
   5500, //1000
  12000  //0
};
void main(void)
{
    int j = 0;
    int next = 1;
    int step = 0;
    int ls = sizeof(loops) / sizeof(int) -1;
    long thelimit = 6000;
    int after27 = 10;
    //Wait 3 seconds then start
    delay_1ms(3000);
    step = 0;   
    i = 0;   
    while (1) {
        if( i >= thelimit )
        {
            i=0;
            if(step >= 27)
            {
                j++;
            }
            if( step < 27 || j >= after27 )
            {
                j = 0;
                step += next;
            }
        }
        if( step >= ls )
        {
            next = -1;
        }
        if( step <= 0 )
        {
            next = 1;
        }
        if( loops[step] == 12000 )
        {
            // Do nothing when 12000 ( 0rpm )
            P0 = 0xFF;
            P1 = 0xFF;
            P2 = 0xFF;
            P3 = 0xFF;
            delay_us(loops[step]/4);
            P0 = 0xFF;
            P1 = 0xFF;
            P2 = 0xFF;
            P3 = 0xFF;
            delay_us(loops[step]/4);
        }
        else
         {
            // Half High and half Low
            P0 = 0xFF;
            P1 = 0xFF;
            P2 = 0xFF;
            P3 = 0xFF;
            delay_us(loops[step]/4);
            P0 = 0x00;
            P1 = 0x00;
            P2 = 0x00;
            P3 = 0x00;
            delay_us(loops[step]/4);
        }
    }
}

回复

使用道具 举报

发表于 2015-3-9 23:04:46 | 显示全部楼层
非常好用又簡單的測試電路,感謝分享,不過可能曲高和寡XDDD,對大部分人來說是天書
回复

使用道具 举报

Yahoo
您需要登录后才可以回帖 登录 | 註冊

本版积分规则

手機版|Archiver|Z板 Sitetag 訪客統計

GMT+8, 2024-12-23 01:31 , Processed in 0.069497 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表