字體:小 中 大 | |
|
|||
2014/07/02 21:18:40瀏覽3094|回應1|推薦0 | |||
前言: 呀,今天晚上不才又有空了 應該吧...... . 呀,就如各位所期待的(?),不才把程式碼放了上來wwwwww . https://drive.google.com/file/d/0ByFM53DUVTU9Z2xVUG5UNENqcmc/edit?usp=sharing . 接下來來解釋要怎麼運作吧~ 雖然說有些無聊,但請大家別拿了程式碼後就跑走呀OAQ . 在複習一下要接的 訊號 Pin腳好了 . 因為怕接腳接到TX RX那裏會影響程式燒入所以那兩個腳位(Pin 0 跟 1)就先空著 然後Pin2 跟Pin 3分別是接 後方 跟 前方 的伺服馬達的 Pin4 接 latch ,相對於矩陣LED上的 LI Pin5 接 clock ,相對於矩陣LED上的 SK Pin6 接 data ,相對於矩陣LED上的 R1 Pin7 接到開關上,當作開關的輸入 Pin8 輸出高電位,也是接到開關上 Pin9~12分別接A~D . 剩下接地5V的就隨便接吧 . 接下來就拿著剛剛給的程式碼邊對邊看吧~ .
. . . . . . . . . . . . . . . . . . . 接下來是有關上面這個到底是什麼鬼東西的 因為呢,由於74HC595這個IC的驅動方法是一次傳送一個Byte的資料到IC上,如果後面有串接相同的資料就流到後面 這塊矩陣顯示器控制單行的部分是用兩顆MBI5026,用法相當於四顆74HC595 . 這裡 motion8_1[16][4] 裡面儲存的是一個16*32的臉的資料,其中0b00111100 代表一個Byte的二進位碼 0b00111100的1的部分就單行中是要讓它亮的那顆燈 . 也就是說,其中一行 {0b10001001,0b01000100,0b10000001,0b00100001}, 裡面16*32的顯示器長度為32的那一行 意思說由左邊數過來,第1 5 8 10 14 17 24 27 32顆LED會亮 . 如果你會16進位的話,0b00111100也可以寫成0x3C 但相對的難以直接用肉眼判別自己究竟畫了些什麼 . 然後在 void loop()裡面 有一個 Main_script() ,這裡面是撰寫腳本的地方 簡單來說,在幾秒內如果觸發幾次開關,就會呼叫相對應動作 ,例如script1() . script1()~ script3()裡面是被包好的動作 主要功能是呼叫表情,還有伺服馬達的轉動速度,間隔時間等等 . 裡面的 for(int i=0;i<60;i++) p=""> line(1); 是說呼叫60次 line(1),每呼叫一次line(1)臉的畫面會閃過一次 說呼叫60次 line(1),差不多會顯示 臉部1 一秒又多一點 如果不呼叫,整個LED顯示器就會暗掉了 .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 而Line(X),而X可以放入1~4 這裡主要是驅動兩顆74LS138 簡單來說,就是分別控制A B C D的高和低電位,來讓單行的LED發亮 也就是一般矩陣LED,或是顯示器的驅動方式 . 簡單來說,能夠讓這片16*32矩陣LED顯示出畫面的方式就是 先讓第一列亮出 第一列該亮的 LED, 然後快速的切換到第二列 亮出 第二列該亮的 LED ...... 等亮到16列之後,就完成一個畫面, 靠著偉大人類的視覺暫留,如果第一列~到16列刷過一圈 然後不到1/30秒,眼睛就可以保留完整的畫面一下下 每一秒這樣刷過30次以上,就可以看到連續的畫面了wwwwwww . 也就是說,每一秒會呼叫大約16(形成一個畫面的LED行數)*60(每秒針數) 差不多960次的 Play_motion(i,select); . i 是行號,select是要顯示的畫面 . 基本上除非是要改變LED顯示器的行數,例如改成32*32,不然即使擴充功能也不需要動到這裡wwwww .
. . . . . . . . .
. . . . . . . . . . . . . . . 最後就只剩下這個要解釋了 Play_motion(i,select)這個函數個功能主要就是顯是單一行LED用的 . 因為這塊矩陣顯示器控制單行的部分是用兩顆MBI5026,用法相當於四顆74HC595 74HC595的驅動方式是靠輸入一個Byte,然後轉成二進位,例如二進位的0b11001100 二進位中3 4 7 8 是1 相對應的Pin腳就會輸出高電位或是低電位,然後接到高電位Pin腳的LED就會發亮 . 這裡的做法是先把Lateh輸出低電位,讓資料能夠輸入進去 然後輸入四個Byte,剛剛的Select就是選擇要用哪個Byte陣列裡面的臉譜 如果之後畫出新的臉譜也要在Switch(Case)裡面新增選項 輸出完後再把Lateh輸出高電位,不讓資料進來wwwwww . 結束了~ 如果要擴充的話,大家應該知道要從哪裡著手了吧~ 很好,不才要去尻尻洗睡睡了 . 7/7補充 . 這個是最後做出來的效果 如果之後還有更新的話會用Part 3 Part4來繼續補充 之後如果會用Mini板的話在考慮要不要加暴走功能好了XD . |
|||
( 興趣嗜好|電腦3C ) |