有了之前開發 Nodemcu 轉速表的經驗,就可以轉移到 Arduino uno 與 ATtiny85
讓轉速表的電路體積更小一些
需要的材料:
1、勇氣 ($10)
2、Arduino UNO R3 ($150) 現在很便宜了
3、ATtiny85 ($70)
4、WS2812B 8位 RGB LED ($11 x 2) 需要二支
5、TM1637 4位數字顯示模組 ($25)
6、PC817 ($5)
7、DC-To-DC Buck MP1584 ($20) 將機車 12V 轉 5V
8、電阻 1KΩ 1/2w ($0.5)
9、電阻 470Ω 1/2w ($0.5)
10、電阻 10KΩ 1/2w ($0.5)
11、LED 最便宜普通的 ($1)
12、單芯線 紅、黑、白...
13、麵包板
14、焊接用麵包板 ($10)
15、成就感 ($9999)
扣掉開發成本的話,一個自製轉速表的成本: 70+22+25+5+20+3+10+10 = $ 165
TM1637 或 WS2812B 可以二個都裝,或是只裝其中一種,那可以再省一些^^
轉速表電路說明
細部接線圖
第一次開發 ATtiny85 不熟的同學,可以參考這張照片的開發方式
ATtiny85 在左邊開發,燒錄程式
然後移到右邊測試
打開 Arduino
檔案→偏好設定→額外的開發板管理員網址,加入:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
工具→開發板→開發板管理員
輸入 attiny 搜尋,找到
attiny by David A. Mellis 版本 1.0.2 進行安裝
初次使用,需先對 Arduino UNO 作成可以燒錄 ATtiny85 的燒錄板
開一個空白的專案,選
工具→開發板→Arduino AVR Boards→Arduino Uno
檔案→範例→11 ArduinoISP→ArduinoISP
打開範例,並執行,把程式 Run 進 Arduino UNO
電腦接上 Arduino UNO 版後,上傳,把這個範例執行
讓 Arduino UNO 變成可以燒錄 ATtiny85 的燒錄機
進行燒錄 ATtiny85 的接線
接線,這樣就可以把程式燒錄進去
Arduino--> ATtiny85
5V 8 (VCC)
GND 4 (GND)
Pin 13 7 (PB2)
Pin 12 6 (PB1)
Pin 11 5 (PB0)
Pin 10 1 (PB5 也叫 Reset)
ATtiny85 接角圖
下載程式、打開 轉速表程式 GITHUB
RPM_TACHOMETER_PIXEL_LED.ino
程式碼要稍微看一下,二行程、四行程引擎不一樣,要稍微調一下程式碼
安裝 Grove 4-Dital Display (1.0.0)
安裝 Adafruit NeoPixel (1.12.2)
安裝二個相依套件,Windows 每次安裝套件都很痛苦
畫面會卡很久,要有耐心慢慢等,慢慢輸入文字
草稿區→匯入程式庫→管理程式庫
搜尋 TM1637 安裝 Grove 4-Dital Display (1.0.0)
搜尋 adafruit neopixel 安裝 Adafruit NeoPixel (1.12.2)
接下來這個步驟很重要,第一次新的晶片要作這個步驟
-
- 工具→開發版,要選 ATtiny Microcontrollers ATtiny25/45/85
- 處理器選:ATtiny85
- Clock: 要選 Internal 16 MHz
- 燒錄器: Arduino as ISP
- 進行燒錄,第一次使用的晶片都要燒錄 Bootloader ,或是你更換 Clock 也要再燒一次
燒錄 Bootloader 完畢
補充說明:
因為要用 Adafault Neopixel 跑 WS2812B 燈條,吃的 CPU 時脈要比較高,至少 8 Mhz 以上
如果有調整頻率,就要重新燒錄一次 Bootloader ,不然時脈會出錯,delay時間也會錯
發生錯誤時,WS2812B 不管怎麼寫都是全亮,羽山抓這個 bug 抓了二天
眼睛閃到快瞎 XD
如果要更省資源,可以考慮用 FastLed 或 Adafault Neopixel-attiny85 的套件
不過程式碼就要再改寫,如果要控超大量矩陣 led 再來研究吧~
當上面的 bootloader 燒好,就可以把程式燒進 ATtiny85 晶片了
按下「上傳」等大概15秒鐘,看到「上傳完畢」即可開始測試
接下來就可以把晶片移到接好的電路,進行過電池測試
這裡電同樣利用 Arduino uno 5V 即可正常運作
附上 fritzing 製作的電路圖 ATtiny85 機車轉速表
注意一下,這裡的 PC817 羽山轉了 180 度,第1腳在右上
接好後就長這樣,電路少少,佔的空間很小
接線細節,應該是 OK 了,找時間焊到板子,放到機車上玩玩
接下來要考慮顯示的光線,不要調太亮會刺眼睛
在表面蓋一層 ABS 板,可以作出柔光的效果
另外就是這個程式預設是給 2 行程引程使用,4 行程引擎要調整 rpm 那行
rpm *=2; 移除註解
二行程引擎,點火一次曲軸轉一圈
四行程引擎,點火一次曲軸轉二圈
延伸閱讀:
1、RPM 訊號產生器 Nodemcu 版 網址:https://59-126-75-42.hinet-ip.hinet.net/blog/blog.php?id=1928
2、RPM 訊號產生器 555 版 網址:https://59-126-75-42.hinet-ip.hinet.net/blog/blog.php?id=1378
3、酷龍 150 自製轉速表 網址:https://59-126-75-42.hinet-ip.hinet.net/blog/blog.php?id=2082
4、KTM RC 390 自製轉速表 網址:https://59-126-75-42.hinet-ip.hinet.net/blog/blog.php?id=2083