![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720364757.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720364757.jpg)
之前就一直在想,如果黃色小鴨可以發光就太好了
材料:
1. 鋰電池 14500 3.7V 800mAh $90
2. ATtiny85 $65
3. 8 Pin IC座 $2
4. W2812B 軟燈條 黑色PCB IP65 防水 $208 (2米) ,約只用 10cm = $20
5. 開關 $10
6. AA 3號電池座 $5
7. 電阻 1.2KΩ $1
8. 洞洞板 $3
9. ABS 板 $3
10. 雙面膠 $5
11. 2.54mm 90度3頭公插 $2
12. 2.54mm 3頭母插 $2
13. 單芯線材 紅、黑、白 $3
14. 恥力
製作屁孩限定藍光呼吸燈安全帽
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321855.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321855.jpg)
最近研究 ATTiny85 覺得可以把電路作得很小很不錯
左邊在 Arduino Uno 開發,燒錄程式到 ATTiny85
然後再把燒好的晶片移到右邊
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321857.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321857.jpg)
因為要使用 W2812B 所以晶片的時脈要設定 Internal 8MHz 模式
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321879.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321879.jpg)
要放在安全帽上,拉電線有點危險,不過使用 14500 (鋰電池) 3.7V 800mAh 倒是還可以
接上 OLED 面板,嘗試顯示目前鋰電池的電壓
14500 電池,滿電時約 4.2~4.35V
低電壓約 2.4V,我希望額外多作的是 2.8V 直接把藍色呼吸燈改成 紅色呼吸燈
就可以作到提醒我自己該把電池拔下來充電
如影片所示,可以透過 OLED 顯示目前程式裡可以抓到電池電壓了
這個過程方便在追蹤接近沒電時,可以把光線變成紅色提醒我自己充電
非常重要的一個步驟
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321869.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321869.jpg)
上網試了好幾種偵測電壓的方法,有的提到要用電阻分壓
問 chatgpt 也是提到分壓電路
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321877.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321877.jpg)
找了好幾種方法,後來找到一個現成的 Arduino Library
https://github.com/cano64/ArduinoSystemStatus
這個專案寫的相當好,可以在不接任何額外電路就可以讀到 VCC 電壓
可以取得的資料還有好幾種~像是剩於記憶體、時脈、溫度!?
或是作 Sleep 模式的 Wake !?
int getVCC();
int getVBatt(int vcc);
int getFreeRAM();
int getkHz();
int getMHz();
int8_t getTemperatureInternal();
void SleepWakeOnInterrupt(uint8_t i);
感謝前人種樹
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1721233125_1.png&n](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1721233125_1.png&n)
這個電路是開發模式,接 OLED 的接線
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1721233422_1.png&n](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1721233422_1.png&n)
然後這個是接安全帽的電路,相當簡單,ON/OFF 開關作在電池的正極即可
程式碼:https://github.com/shadowjohn/helmet_rgb_breath_led
有幫到您的話可以幫忙點個星星 XD
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321881.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321881.jpg)
使用 OLED 把抓到的電壓顯示出來,然後放幾個二極體限制鋰電池餵入
ATTiny85 的電壓,看看抓到的資料對不對
如圖電壓表抓到 3.07V OLED 顯示 3.04V
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321883.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321883.jpg)
再加一顆二極體,2.28V,顯示紅燈了
OLED 也抓到 2.28V 相當好
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321884.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321884.jpg)
然後鋰電直供,3.78V 抓到 3.81V
看來相當好
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321886.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321886.jpg)
再試一次
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321888.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321888.jpg)
再試一次,看起來相當美好
ATTiny85 在很低電壓時,仍可以正常運作
W2812B 的燈也是
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321889.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720321889.jpg)
藍光燈在低電壓時,明顯比紅光清晰
所以顯示紅光時,亮度都要再調高一些,紅光 LED 吃電比較重
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720338146.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720338146.jpg)
好了,紅光時亮度調高,藍光再調回去
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720338147.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720338147.jpg)
然後把剛才 31 顆 W2812B (144) 燈條 切二半,再燈電線
這次是測能不能用同一組輸入接二組燈條,看來沒啥問題
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720338148.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720338148.jpg)
測試完成,可以裝到安全帽了
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720364756.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720364756.jpg)
製作電路,用 ABS 板當底板,焊電路,燈條的部分用插頭
電路的部分用熱融膠封一封防水,不要超大雨應該沒問題吧 (汗)
這個開關在電子街買到,相當不錯的平面型有段開關,薄薄一顆
按起來很紥實
![//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720364758.jpg](//3wa.tw/photo/small.php?w_size=1280&compassion=95&file_name=users/shadow/1720364758.jpg)
電路藏到小鴨披風裡裡面,相當完美
經測試,充飽的 14500 (800mAh) ,連接點亮,連續使用可以超過 15 小時(電壓大概掉到2.7V)
這個時間有包含 OLED 的電路,精簡後裝上安全帽應該可以用更長時間~
照每天晚上下班回家 30min 的路程,大概一個月充一次電即可
2024-08-30 補充:
我一直在等何時會沒電變紅燈,但從07/07 用到今天 08/30 每天下班都點燈,都還有電,還亮藍燈~
下班回家約30分鐘,週末有時晚上還會騎出門,好猛啊
目前約使用了 50天,每天 30 分鐘算的話,約 1500 分鐘 ,算起來總時長是 25 小時了