發表文章

目前顯示的是有「電子電路DIY」標籤的文章

Arduino [7SEGX8] 七段顯示器x2 使用74HC164驅動

圖片
這是一塊2排4位數7段顯示器(共8位數)的板子,由2顆74HC164控制,它的線路非常的單純排除電源之外,就只有DATA和CLOCK兩個訊號源而已。 由於它是由74HC164組成,所以資料傳輸方式就是使用位元資料PUSH出去的方式: shiftOut (data_pin, clk_pin, MSBFIRST , ~output[index]); shiftOut (data_pin, clk_pin, MSBFIRST , 1<<index); delayMicroseconds (delayTime); 從上面的範例有執行兩次shiftOut的動作 第一次是送顯示位元(bit)送出去 第二次是重送定位(Digit)第幾位數 第三行是delayMicroseconds是顯示停留時間      顯示停留時間如果太短,你會幾乎看不到顯示的數字,顯示時間太久,你會看到一個數字一個數字的移動,因為這個設計一次只能顯示一個位置的一個數字,然後利用快速切換將每個位置的數字依序跑一遍。然後利用視覺暫留的時間讓你的眼睛看到該數字出現在那裏。 模組樣式 這個模組顯示方式從第 0 位置到 7 位置,從左上方開始,於右下方結束 0 →1→2→3 4→5→6→7 這次我們做個計數器來測試,接線方式如下: 程式碼如下: #define data_pin  2 #define clk_pin   3 int16_t delayTime = 2500; // 顯示暫留時間 / / 顯示七節字碼 [0,1,2,3,4,5,6,7,8,9,空] // B00111111,B00000110,B01011011,B01001111,B01101101,B01111101,B00000111,B0111111,B01101111,B00000000 uint8_t seg7[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F , 0x00}; uint8_t output[8]; long count = 0; void setup() {   // 設定輸出   pinMode (clk_pin, OUTPUT );   pinMode (data_p

12V LED 電壓設計

圖片
因為有不少朋友問道: 使用電壓 12V下 LED 的電路設計如何處理,所以這裡我簡單的講解一下電路上的設計方式好了。 其實這是基本電學複習,沒有很特別,讓一些不太懂電學朋友參考。 一般我在設計車用LED電路時,對於LED的電路大概會用下面的方式,當然有的人會使用多少LED來串連是事情況而定,沒有絕對。 Figure 1: R1 = (12 V - (1.6 Vled x 2)) / 15 mA = 0.5866... ≒ 580 Ω (可以買到的電阻) Figure 2: R2 = (12 V - (1.6 Vled x 3)) / 15mA = 0.48 ≒ 470 Ω (常用電阻) Ω 也可用 Ohm 表示,唸成『歐姆』 這裡有幾個要注意的地方: 1、LED 的電壓,LED 是一顆二極體,電壓順向時有一定的偏壓存在,發光 LED 因應顏色不同,其化學材料也不同,所以每一家生產的 LED 也會有不同的偏壓,最好使用時要使用同一家且同一種型號的 LED 比較不會燒壞 LED。我使用的 LED 偏壓大約 1.6 V,所以計算時我註記成 1.6 Vled。 2、一般 LED 的電流( 這裡指 5Φ 左右的 LED ),可以承受到 25 mA,但這個電流值幾乎接近熱衰竭電流(也就是在這個電流下 長時間 工作會讓 LED 內的材料受熱損壞),所以通常我們都會設計在 15 mA ~ 20 mA 左右,以維持 LED 壽命。 3、在這電路上 Q1、Q2 作為 SWITCH (開關) 使用,CE 導通偏壓約莫 0.7 V,通常我會忽略不計。 4、電阻 瓦數可用 1/4W (0.25W) 大小, 依照 P=VI ,Figure 1 上的電阻偏壓約 8.8 V 所以 W = 8.8 V x 15 mA = 0.132 W,1/4W足夠使用了。 5、如果 LED 發光不同不建議串接使用,會發生偏壓較大的 LED 反而不太亮的問題,如果有不一樣顏色的 LED 建議單獨使用不同的電阻來偏壓。

Arduino 控制 - 使用 L293D 來驅動馬達

圖片
L293D 式一顆用雙路直流馬達的控制器,用這顆 IC 可以用來驅動一般的小型馬達/玩具馬達之類的,相當方便。 其內部結構大概就是一個 4路半H橋式驅動電路。 Pin 2 與 Pin 7 屬於一對,Pin 10 與 Pin 15 也屬於一對。 Pin 1 與 Pin 9 雖然做為 Enable 接腳,但是也可以輸入 PWM 訊號來控制馬達出力的力度。 Pin 8 是提供給馬達的電力,可以獨立供給,也可以和 Pin 16 的 Vcc 共用。 底下是利用 Arduino 做的簡易的控制電路: 藍色 LED 是用來觀察 PWM 的強度用的,可以不接。 我這邊另外用 9V 提供給 L293D 來驅動馬達,速度會比較快。 程式碼方塊如下: 程式源碼如下: int counter; int counter2; void setup() {   pinMode(3, OUTPUT);   pinMode(5, OUTPUT);   pinMode(6, OUTPUT);   pinMode(13, OUTPUT); } void loop() {   analogWrite(3, 255);   digitalWrite(5, HIGH);   digitalWrite(6, LOW);   for (counter = 0; counter < 5; ++counter) {     digitalWrite(13, HIGH);     delay(500); // Wait for 500 millisecond(s)     digitalWrite(13, LOW);     delay(500); // Wait for 500 millisecond(s)   }   analogWrite(3, 64);   digitalWrite(5, LOW);   digitalWrite(6, HIGH);   for (counter2 = 0; counter2 < 5; ++counter2) {     digitalWrite(13, HIGH);     delay(500); // Wait for 500 mill

LED流水燈(方向燈)-電路實驗

圖片
最近看到不少新車的方向燈都配備有流水燈的效果,想說興致來潮,做一個這樣的電路試試看。 這樣的電路當然可以用 attiny85 來做,只是手頭沒有 attiny85 所以就利用傳統電路來製作,順便解析一下原理。 點亮順序原則就是 L1 → L2 → L3 → L4 ,這個週期時間必須在方向燈點亮時間內跑完,推估大約在1秒左右吧。 L1 首先點亮,沒啥技巧,R1、R2 分壓直接給 P3055LDG 閘極偏壓,導通後點亮 L1。 L2大約延遲 0.3 秒點亮,且點亮後維持住,所以這裡我用了 SCR 來控制,時間由 R4、C1 來決定,依照 RC 充電到 63% 大約一個 t 時間。 RC時間常數 = R x C = 10k x 33uf = 0.33 秒 當RC充電到63.2%時,觸發 SCR 導通,R5上出現 較高電壓(接近VCC),藉此導控制 L2 的MOSFET,此電壓並帶往下一個 RC,並觸發下一個 SCR,依此類推,下一個 LED於 0.3 秒後後亮起。 當方向燈停止供電後,SCR 狀態恢復(釋放),待下一次供電啟動。 ○至於模擬方向燈閃爍的電路,就用 555 來完成,如下圖: 555 的第三接腳直接供電給流水燈電路的 VCC ※※請注意,以上電路為模擬電路,使用的電壓為 5V,如果要用在汽車上,部分電阻值需要更動,LED 與其限流電阻部分,可以用 LED 排燈,或是 COB 燈 + 適當限流電阻, P3055LDG 有足夠驅動能力,要注意 P3055LDG背部必須靠電路板的銅箔散熱。

使用arduino設計EBD展示燈

圖片
其實這個構想很久了, 指是要先處理單線電力供電問題,再處理高低壓控制,以及演示計算問題。 我再這之前有作出一個簡易的 EBD 煞車燈, 但是,看久了還是希望有點變化,可是又不希望買市面上的燈條來組合: 一來是我希望展示燈有有延遲啟動效果,市面上燈條做不到。 二來是希望展示的方式可以依照自己喜好組合,市面上燈條也難辦到。 所以只好動起 Arduino 歪腦筋,看看能不能塞進去第三煞車燈了。 先勾勒出電路圖 不算太難,只是線路有點多而已,由於要塞到第三煞車燈裡面所以要進量縮小 因此比較多零件的驅動電晶體使用了SMD的N通道MOSFET - P3055LDG來製作。 原則上Arduino NANO 是5V 驅動與電力提供, 控制 TLC5940NT 一路都是5V 但是要轉到控制12V的LED燈板就需要用到偶合電路比較安全, 因此這裡選用了簡單形式的 LTV847 光耦合IC來串接, 這樣就可以隔離12V電力,避免逆流回Arduino 或TLC5940NT導致燒毀問題。 Arduino NANO TLC5940NT LTV847 P3055LDG 程式的部分改天再分享上來

[記錄]淺談麵包板品質與杜邦連接線的問題

圖片
最近在做一些 Arduino 控制電路, 但是一直很不順心的是關於 DS1302時鐘模組與TLC5940NT的多通道PWM控制。 在這些通訊控制中通常都需要用到 CLOCK 同步。 這故事是一開始的實驗板電路,大部分都會使用麵包板和一些跳線來做, 因為要外接 Arduino 模組和一些驅動板,通常除了麵包板上跳線會使用單芯線外, 會使用一些杜邦2.54端子的聯接線來聯接。 一開始簡單的實驗都很正常,然後就這樣用久了,同樣再做一次相同的電路時, Arduino 電路的運作開始出現異常。 比較常見的像是 DS1302 取到的時鐘資訊常常便成亂碼, 又或是 TLC5940 的 PWM 控制一直出現干擾(動作亂跳)。 經過不斷抓狂的抓蟲後來發現 連接線 和麵包板的嚴重問題,如下: 像是杜邦2.54端子上圖紅色圈起位置,發現用久之後會斷芯,外觀完全看不出來, 不確定是否為線材本身問題還是人為問題,因為這種斷芯會讓訊號時有時無。 其次是麵包板: 第二點,品質不好的麵包板,接孔內的彈片金屬彈力衰退,常見接觸不良, 接觸點造成接觸電阻升高,導致分壓/分流不正確,訊號異常等。 造成我浪費大量時間在找問題(明明電路是正確的,但實際運作一直出狀況) 所以,解決方法如下: 1、更換 / 使用好的線材聯接線,使用前量測聯接線是否有電阻升高或是斷線問題。 2、更換 / 使用較好的麵包板,如果發現麵包板部分插孔開始鬆脫,無法夾緊零件或是聯接線,就得考慮更換。 只能說該換就換,不然浪費大量時間又讓自己信心崩潰真是划不來啊。

改造我的檯燈-使用LED取代日光燈管

圖片
最近我的檯燈故障了,鄉更換燈管,發現這款燈管超級難找:T4 12W 1202環形燈管 由於我的檯燈上有放大鏡,因為工作需要常常很靠近燈,常常會覺得很燙。 因此讓我想既然難找到這行燈管乾脆決定使用LED取代燈管,因此進行了改造。 這是我首次拍長時間的 Youtube 影片,因為設備操作不熟悉,所以花了很多時間調整與調教甚至還臨時做了補光燈還呢!!

霹靂燈設計(帶尾) K.I.T.T Scanner Light

圖片
這次的霹靂燈製作式為了接下來的 霹靂車模型 製作的,因為模型比例不大,車體空間又非常小,所以盡量找零件最少的來製作,而且希望使用CR2032當電源。雖然使用PLC是最少,但麻煩的是要Codding,也要一定產量(回想當初我在手機店改裝Motorola CD928的時候,老闆訂PLC粒都是以條為單位的,每條約30顆)。因此對於只需要少少一組的使用者來說,真的不實用。 也許網路上都找得到的霹靂燈套件,最早最傳統的莫過555+74193+74154的電路,但是要做出帶尾效果,加上要塞到模型加上希望使用鈕扣電池,這個74系列的設計完全就出局了,那就更不用說要用8051來設計的霹靂燈了。 而外面買的霹靂燈條大都是汽車用,所以光是電力就out了。 後來在逛電子街的時候看到了祥昌電子的OK-154套件,發現它只使用2顆IC,而且都是MOSFET為主的驅動+40系列IC,而且只需要2顆AAA乾電池。已經非常接近我所需要的規格了;原本套件使用了25顆LED,但實際上只有5組(5組*5顆)而已。所以我便把他做了一點修改(如下圖)。 我把LED改成純5顆,然後在555端的電容器C1旁併上了一顆1uf的電容,以稍微降低一點速度(這個很重要,在接下來的改造都會有很直接的關連了)。 這裡有一件不得不注意到的事,是它們的555震盪器的設計方式真是少見啊!! 居然把output當成discharge來使用,這樣的話就不需要在discharge上裝設一顆電阻(Rn),而頻率公式就從原本的 f = 1 / (0.693 x C x (Rn + 2 x R7)) 變成 f = 1 / (0.693 x C x (2 x R7)) 而且上下弦波時間也都一樣,真是太棒了! 不過前提是,輸出必須加上覆載電阻,當然電流會變小,不可以直接當成驅動使用,當訊號使用是非常OK的。 霹靂燈帶尾 來說說這個故事吧,當年霹靂遊俠李麥克盛行的年代,LED大燈泡是不存在的,當時的LED真的只是很小的指示燈的燈源而已(亮度不是很夠),所以霹靂車前面的Scanner Light是真的邏輯電路+燈泡帶來的效果,而那個帶尾的效果,很單純的是燈泡熄滅後的餘光Fade out(我的學長就做過)。 直到LED光源近年來大放異彩,取代了燈泡,當然LED的特性就顯現出來的,光源

自製簡易混音器

圖片
最近因為公司給了一個會場音控的任務而需要用到混音功能,但是市面上的混音器最便宜也要3000左右,而且接頭都不是3.5mm的音源孔,因為我的音樂來源是3部筆電,也不想買一堆轉接頭。公司也沒經費補助的情況下。遂想說手頭還有一些零件與OPA可以利用,所以就自製了簡易的混音器來使用,雖然手邊的OPA不是啥高音質的IC但是拿來撐場面應該綽綽有餘。 先構想一下架構 這個架構前面先用個加法器來完成初級混音,然後再分割耳擴(監聽)與輸出,然後再加個VU表監看輸出量,電力的部分我不想搞雙電源,因為太麻煩了,而且手上有12V/1.2A交換式變壓器,想直接利用。 接下來就準備細分電路了。 第一部分:混音電路(OPA加法器) 第二部份:耳擴與輸出(電路相同) 第三部份:VU表電路 以上參考不少其他網站的電路,但是很多都是設計成雙電源,也因此修改了一些部份設計。 接下來,開始製作電路部份 還是很苦力的用洞洞板來完成,哈! (因為個人不太想碰藥水) 連接部份都設計成接頭形式方便日後維護。 再來製作外殼,這真是折煞的工作,誤選了鐵殼來製作,下蓋是鋁製比較好施作,上蓋卻是很硬的鐵製品,搞得全身酸痛,光是挖LED排燈的孔就累死了(銼刀一直挫挫挫⋯⋯ 內部樣式: 接下來就是要開始連接各VR的電線了(還真是多的不像話啊) 最後蓋上上蓋,完成,GOOD JOB! 背後的樣子 還沒有時間測試,改天再來測試看看。 ======反應部分網友回覆=================================== 我使用的輸入/輸出用的是3.5mm立體聲接頭/插座,一般安裝在外殼上的是下面這種(黑色),他的R/L接法如下: 不要買到白色的喔,白色是單聲道,只有R聲道: 另外,我的總音量是下面圖片這一顆,日本製(蠻貴),有中間抽頭(在畫面最左邊那組就是中間抽頭),中間抽頭在這次電路沒用到,且這顆VR有段(轉起來有一節一節的感覺),這樣音量定位比較明確。 關於NE55322接腳 關於VR(音量可變電阻): 這種可變電阻,是兩個VR串在一起,又稱連動式可變電阻,通常用於音量控

第三剎車燈改LED(閃爍後恆亮)-有夜燈&無夜燈

圖片
最近在路上看到部分車系的車尾燈剎車時會有閃爍後便恆亮的狀態,看起來對後方車輛的警示效果不錯,尤其常上高速公路而言,有比較好的效果。 當然,網路上有不少筆戰關於剎車燈閃爍的議題,主要包括了法律、車型、原理、地區特性以及最常見的主觀。朔其來源應該是歐洲最先採用這種剎車規範,我記得叫做EBL或是EBD。汽車精品店有賣現成的(三角形),但是我發現它只會閃爍,且亮度不太夠,白天不是很清楚。 當然做這種東西不是為了讓車子像電子花車,主要的目的有兩個:純粹電子興趣、增加安全性而已,當然我不去改原始剎車燈,只改第三剎車燈,也是為避免後方混淆。原廠設計的話都會加上剎車力道感應,但是我的車是老車,沒有這類的感應設計,因此在設計時就只能考慮我的線路(只有一組啦),當然加上單軸加速計(Accelerometer)電路也可以做到,但電路可能會太複雜,且這類的零件不好買又貴。 網路上我找到不錯的論壇(喬治查爾斯) http://gcbbs.digitw.com/phpbb2/viewtopic.php?f=1&t=704&st=0&sk=t&sd=a 我個人是採用版主的設計來改,原因只有一個,我手上有現成的555,但是沒有4096。 一開始電路採用 夜燈+剎車燈 的設計: 這個電路在麵包板上是成功的,且不需要額外電源接入 電路原理: 1、僅夜燈時,電源進入經過2SA684,此時2SCA684基極對接地無分壓(剎車無電力進入),此時晶體導通,電源經過330Ω限流到LED組(亮度稍弱)。 2、當剎車時,剎車線路供電,分壓給2SA684,此時2SA684基極高壓,使得CE斷開,停止夜燈電源供給。 3、剎車供電時,電容100u需3~4秒充電達才能飽和,此時U1輸出高電位Hi,使得2SC1815導通,電容10u可正常充放電,此時U2輸出震盪並推動220Ω與LED組,使LED閃爍(最亮)。 4、電容100u在4秒後達到飽和,U1輸出成為低電位Lo,2SC1815不導通,CE斷開,電容10u無法充放電,致使U2輸出維持高電位Hi,LED組變成恆亮。 5、剎車不供電時,U1、U2所有電路復歸原態,待下次剎車時從2再次循環。 U1是設計成延遲電路,所以腳位7(放電)不接。 汽車的電力大約在13V ~ 15V間,1N4003可以稍微