發表文章

機車頭燈自動開關裝置 II

圖片
大燈自動開啟II-全時開啟 機車六期開始頭燈全時開啟,那還需要大燈自動開啟裝置嗎? 見仁見智,我習慣日行燈跟小燈全時開啟,至於車頭燈我還是習慣天灰灰時才讓它自動亮,跟汽車一樣。 啥!奴才你在說什麼? 尋找大燈電源路徑 全時大燈點亮裝置已無大燈照明開關,所以我們必須另外想辦法。 參考上圖(A),黃色插頭接H4燈泡,標示(1)接地,(2b)近光燈,(3)遠光燈。 增加一顆車用繼電器 參考上圖(B),我們多了一個繼電器。 怎麼找出線圈啟動的兩根PIN腳呢? 很簡單,把你的三用電錶拿出來,轉到電阻值區,兩兩相測,有電阻值的兩PIN就是線圈啟動區,如上圖(B)顯示的(a跟b)兩PIN,另外兩支PIN腳(c跟d)就是大電流要通過的線。 設計電路 參考上圖,將近光燈這條線剪開分成2a,2b兩段;2a接車用繼電器的c點及我們的自動開關機板Vin;2b接繼電器的d點;其他的自己看圖說故事,A picture is worth a thousand words。 修改PCB電路圖 有看過上篇文章的讀者,一定會發現SO4(自動開啟裝置)裡面已經有一顆繼電器。如果把這兩顆繼電器合在一起,是否可以?當然可以,業界繼電器百百種,自己可以上網找找車用繼電器,一定可以找的到。這時的設計可能就要分成機車PCB板跟汽車PCB板兩款了,端賴自己的需求而定,沒有一定要設計成什麽車種都可通用。

機車頭燈自動開關裝置

圖片
大燈自動開啟 做一個大燈自動開啟裝置並不難,讓我們先了解機車的大燈原理,這樣比較好發揮。 大燈電源路徑 主電源經由(1)棕色線到(10)照明開關,藍色(後燈及儀錶小燈),藍黑色大燈開關(14),遠燈黃色,近燈綠色。 這樣子,就跑完整個燈系了。如果是雙大燈的車種(例如光陽的雷霆150),電流可能就會經過繼電器然後才到大燈燈泡,如果燈泡瓦數有點大,直接經過照明開關可能會導致開關承受不住大電流。 Kymco & SYM 主電源(黑色),小燈(棕色),大燈(藍白色) 公式概略計算: P=I*V 一顆燈泡35W, 如果是兩顆大燈燈泡的車種,就35x2=70W 70w=I * 12v, I=5.83 大約要 6A 安培的電量,實際上還要加上儀錶燈跟其他小燈的電量。 其他電路的走法,大概也是大同小異。 製作電路 我們以上圖為例,如果將棕色跟藍色接在一起,儀錶燈就會亮;如果將棕色跟藍黑色接在一起,近光燈(大燈)就會亮,好了,至少我們知道該怎麼接了。 設計線路圖 製作大燈自動開啟裝置的方法很多種,有用電晶體直接開啟,有用555 PWM驅動,也可以用358,393比較器,而啟動的方式也有好幾種,大部分都是用繼電器,但是用mosfet也是可以的啦。至於光感應器,可以選擇光敏二極體,也可以採用光敏電阻。以下我採用最經濟實惠的元件來完成。 電壓12V, 由光敏電阻p1跟可變電阻來做2/3及1/3電壓的分配,當555的pin2(trig)電壓低於4V時會令pin3(out)輸出high, R1及C2就變成延遲充放電時間。 當pin3輸出high時,就會驅動電晶體2n2222, 因為R2設定10k,採用BC547之類的電晶體比較好,繼電器就會被導通,大燈CircuitOut就會亮了。 如果不用555,改用LM339,LM324也是可以,線路多一點而已。 線路接法(直流電, 交流電不可行) 在這裡有Vin, Vout, Gnd三條,一般的 直流電 機車頭燈切換開關通常都在右手邊,跟啟動按鍵在同一邊。 接法有幾種,可以參考一下,以上圖為例: Vin併接棕色線, Vout併接藍黑色(圖例灰色), Gnd併接旁邊的黑線,只要天一黑,大燈就會亮。 (J1機板, J2機車把手的頭燈切

Android 設計-4 藍牙

圖片
開始設計 BluetoothService 上一篇我們主要是把 Bluetooth 設備找出來,然後啟動它。為了程式的包裝,所以我們用了一點技巧,直接在 onStart() 執行,對於 Android 來說它強調 Activity / Fragment 的生命週期,所以你不可不知,你的程式該擺在哪個位置。 我們的 BluetoothEnable 沒有 extented Android 的類別,同樣的 BluetoothService 也沒有。首先我們還是取材自 BluetoothChatService,請自行下載 Android 的 BluetoothChat 範例,我直接口頭說明。 簡單分析一下,BluetoothChatService,它建立三個 Thread 分別是 ConnectThread,ConnectedThread,AcceptThread,然後一大堆的 synchronized 綁來綁去。對 Java 菜鳥來說可能搞到最後還是搞不清楚,何時用 Thread vs. Runnable,何時用 synchronized? 我也搞不清楚?! 然後在為了避免與 UI 顯示衝突,藉由 handle 傳送資料。通常在寫 windows 的 API 上很常見,阿貝已經有 N 年沒寫 Windows API 了,這是年輕人的宿命,阿貝老了。 Java 為了 JVM 創造出一些多工 (multiTasking) 的方法,其中大家最常用的就是 Thread 及 Runnable,兩個差別在哪裡,簡單來說一個是 Abstract Class,一個是 Interface Class。哪裡用 Abstract,何處用 Interface? 說實在,見仁見智,因為一個物件的定義,沒有一定的規律,你可以把 車輛 Vehicle 定義成 Abstract 然後保留空間給 車廠名稱 FactoryName ,依此類推。你也可以當作 Interface 然後保留 車輛顏色 CarColor , 給車種。都是看你當時的系統設計原理而定。不要告訴我,什麼是 Interface 什麼是 Abstract 你不懂,那你就只是個程式員,要加油了。 至於多工?那就跳過吧,我們要從計算機概論開始了解,就很累