訓練家的佈弱格-Patch1.2

The BLOG of trainer



編輯日期:2020-07-06 01:10

類型:FZR 150
作者:羽山
文章時間:2020-07-06 01:10:23
瀏覽人數:5614人
標題: FZR150 自製轉速表 - Part2 4Digit Display
網址:http://sunnyriver.3wa.tw/blog/blog.php?id=1862
內容:
 

 

 

 之前作了 Servo 版本的轉速表,順手就再調整一下程式,改作七段顯示器的版本

市面這個 TM1637 價格很便宜,雖然只是 4Bit ,讓你覺得只能顯示 0~9999

實際上其實是夠了,我在作的過程,覺得字幕超過2個字,就容易覺得眼花

而且十位與個位數一直跳動,會覺得不太舒服,如果要作七段,其實 3 bit 應該就夠了

「萬千百」

羽山作的這個是 「萬千百十」

由於「十」在那跳相當不順眼,我就把 轉速取100餘數,以下的轉速都減去餘數

 

4 Bit Digit Display 是 TM1637,只有4支接角,實際佔用 Arduino 只需2個 I/O Port

VCC、GND、DIO、CLK

 

製作七段顯示器版本的過程大概需要注意幾件事:

1、讀到的轉速最好要濾波,比如連續儲存在一個陣列中,每次取用前先排序、取中間的,頭尾差太多的略過

2、由於眼間視覺暫留,顯示到 TM1637 必需作好延遲,每次要顯示先判斷主程式是否走已走一小段時間,如 550ms 以上,才能更新數值,不然眼睛會跟不上數字的跳動,最後都覺得像 8  全亮。

3、TM1637 模組驅動還滿多人開發,我使用 Grove TM1637,他的範例容易理解開發。

 

 

 接線圖

https://sunnyriver.3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1593969001_1.png&noshow=1

 

實際運作的狀況

 

GIT 位置:

https://github.com/shadowjohn/4_Digit_Tachometer

 

以下是所需要的材料:

  1. Nodemcu V2 x 1 ( 我個人比較喜歡 V2,因為板子 比 V3 小一些些 )
  2. 4 Digit Display TM1637
  3. PC817 x 1 光偶合器
  4. 12V 轉 5V ( 羽山是用 YwRobot 545043 ),強烈建議用其他的 Buck,體積較小,輸出電流大
  5. 小麵包板 x 2
  6. 電阻 220Ω 1/2w
  7. 電阻 680Ω 1/2w
  8. 電阻 4.7KΩ 1/2w
  9. LED 高亮度發光二極體 紅色 x 1
  10. Micro USB 傳輸線 x 1

 

 

 當 Grove TM1637 的套件裝好後,可以試跑看看他附的範例

從範例中發現要把數值顯示在 LED 上滿容易的

只是試好久才知道原來 -1 可以讓數值熄滅

 

 

 數值能熄減才不會越顯示越多,總算可以單獨出現一個 0

 練習這篇主要可以學到幾件事:

  1. 如何將一個長整數,如 RPM 0 顯示到 七段上 我是先轉成字串,然後 LPAD 補齊左邊為 XXX0
    然後從左至右就是 str[0] str[1] str[2] str[3] 一個一個顯示,如果值是 'X' 就用 -1 取代
  2. 讀取轉數時,增加判斷超時的問題,低於 50 rpm ,超時讀不到 pulse 代表熄火
  3. 字串轉數字,數字轉字串的方法
  4. 濾除誤判的轉速,利用一個陣列連續收集轉速資料,每次取值時,重新排序這個陣列,取中間平均值,通常數值會比較穩定,不會瞬跳的太嚴重
  5. 引擎轉速判斷參考:
     
       參考:http://stm32-learning.blogspot.com/2014/05/arduino.html
       轉速   100 轉 = 每分鐘   100 轉,每秒  1.67 轉,1轉多少秒呢,一轉 = 0.598802   秒 = 598.802 ms = 598802us
       轉速   200 轉 = 每分鐘   200 轉,每秒  3.3  轉,1轉多少秒呢,一轉 = 0.300003   秒 = 300.003 ms = 300003us
       轉速   600 轉 = 每分鐘   600 轉,每秒  10   轉,1轉多少秒呢,一轉 = 0.1        秒 = 100.000 ms = 100000us
       轉速  1500 轉 = 每分鐘  1500 轉,每秒  25   轉,1轉多少秒呢,一轉 = 0.04       秒 =  40.000 ms =  40000us
       轉速  6000 轉 = 每分鐘  6000 轉,每秒  60   轉,1轉多少秒呢,一轉 = 0.01666... 秒 =  16.667 ms =  16667us
       轉速 14000 轉 = 每分鐘 14000 轉,每秒 233.3 轉,1轉多少秒呢,一轉 = 0.0042863. 秒 =   4.286 ms =   4286us
       轉速 16000 轉 = 每分鐘 16000 轉,每秒 266.6 轉,1轉多少秒呢,一轉 = 0.0037500. 秒 =   3.750 ms =   3750us

      

 

其他參考資料:

  1.   抓取引擎訊號的二種解法:
    https://kokoraskostas.blogspot.com/2013/12/arduino-inductive-spark-plug-sensor.html 為了解決 12000rpm 以上的轉速抓取,作了一些語法的改良
  2. PC817 (光偶合器,如:TLP 621、TLP 421) 的使用方法:
    機器人零件指南 / Ohmsha編著; 沈鄉吟譯
    http://wyj-learning.blogspot.com/2017/10/arduino-04pc817.html
    小老婆機車資訊網,尋找 killPeople 大大分享的 8051 轉速表的文章
  3. 呼吸燈:
    http://web.htjh.tp.edu.tw/B4/106iot/NodeMCU%E4%BD%BF%E7%94%A8%E4%BB%8B%E7%B4%B9.pdf
  4. Gensou 的 呼吸燈影片教學
    https://www.youtube.com/watch?v=27GkMk8ct0s
  5. stm32-learning [Arduino]霍爾轉速表
    http://stm32-learning.blogspot.com/2014/05/arduino.html
  6. Arduino 陣列排序
    https://github.com/emilv/ArduinoSort
  7. TM1637 套件 Grove 4Digital Display
    https://github.com/Seeed-Studio/Grove_4Digital_Display/

 

首頁  上十頁  上一頁  1 下一頁    最末頁 (總共有...1頁)

第 1 頁

有話要說  看留言 【0】
其他分類
當月訓練
(2020-07-23)
【機車綜合相關】自製方向燈 Relay ( 鹵素燈泡、LED )

(2020-07-12)
【3WA日常】FZR卡鉗整理-蔡先生

(2020-07-11)
【VR 150】VR150 改手把增高座

(2020-07-08)
【KTM 390】電壓轉電壓模組 XL4016E1

(2020-07-06)
【FZR 150】FZR150 自製轉速表 - Part2 4Digit Display

(2020-07-04)
【KTM 390】KTM RC390 尾牌架修改

最新訓練
(2024-12-22)
【KTM 390】KTM RC390 更換後輪

(2024-12-17)
【木工】三樓客廳椅子維修

(2024-12-17)
【出遊】聯合大學一日遊

(2024-12-02)
【NSR 150】NSR150 改裝回 14T

(2024-11-04)
【酷龍 150】酷龍150 換新鏈條 里程:39250km

(2024-10-31)
【機車綜合相關】煞車檢測筆測量電阻範圍

(2024-10-29)
【機車綜合相關】拆胎特工-輪胎拆胎架

(2024-10-25)
【NSR 150】NSR150 更換前煞車油(簡易) 43177km

(2024-10-25)
【網誌】加密文章測試

(2024-10-19)
【本田 MSX-125】MSX-125 更換前輪軸承