看板 ASM 關於我們 聯絡資訊
各位版上先進^^"a 小弟這幾天做了一個小小的8051實驗 概念是用ADC0804把可變電阻轉成一個8bit數位訊號 然後把這個讀值設給色輪轉換公式裡面的H(Hue色調)變數 http://zh.wikipedia.org/wiki/HSV_%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4 算出r,g,b的權重,再用PWM法去點亮RGB-LED 經過一天的努力有了個初步的成果 大致上都友達預想的動作,但是嚴格來看還是有幾個問題 1.在轉動可變電阻的時候,RGB-LED雖然會隨著轉動變色,但是因為  ADC0804轉換速度關西,色輪顏色變化會有不連續的感覺 2.我的PWM點RGB-LED,是用三個獨立的sbit去控三個獨立PNP電晶體分別點亮 R,G,B 但是目前還是可以察覺會有一點閃爍狀況。 針對問題1.我目前只有想到找找看是不是有轉換速度更快的ADC IC,不過 小弟對8051的接觸只有大約半年,懂得比較少,所以想問一下版上的大家 有沒有其他的方法可以解決這種問題呢?and以前那種可以調EQ的音響他們 是用類比還是數位的方法去調整阿?(後來仔細想想,這應該還是跟震盪速 度不夠快有關,因為算了一下,現在的ADC線路一秒可以轉換10000次 囧) 另外問題2.自己想了一下大致上有兩個問題 一.是我用的震盪器時脈不夠快,目前這個實驗是用11.0592的震盪器,但是PWM的 計時中斷副程式有點小長.....所以中斷時間無法設太短。由這個問題又衍 生出另一個問題,就是要判斷程式執行時間是不是要去看機械碼的長度才可以抓 出個大致的執行時間?我目前計時中斷的時間是亂抓的,盡可能的小這樣..Orz 回到原問題,我這幾天是打算換一個速度較快的振盪器約30MHz~40MHz(希望有 這麼高的頻率and我的51可以支援),不知道這樣是否恰當? 二.透過LED DRIVER IC是否會比較好?例如下面這個DD313 LED DRIVER IC http://www.siti.com.tw/product/spec/LED/SP-DD313-A.003.pdf 不過自己看了一下spec,有點疑惑,這個IC似乎也是用PWM的訊號去控IC的 RGB電流輸出,這樣輸出的電流不也是跟PWM訊號是一樣的嗎?還是說這個DRIVER IC 的功能只是提供一個穩定的電流,以增加壽命跟穩定性? 感謝大家耐心看完這麼長的問題,囧rz..... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.181.99.9 ※ 編輯: Petrucci99 來自: 175.181.99.9 (10/02 19:12) ※ 編輯: Petrucci99 來自: 175.181.99.9 (10/02 20:09)
POWERPC:PO錯區了吧,有硬體存在己非本板所能了,去電子板問問看 10/02 20:24
lion21:我認為是單純軟體的問題.效率要提高.pwm要順.都要靠軟體 10/02 22:21
ksmrt0123:2.PWM寫法可參考本板 #1BZWffSY W大的文章 10/02 22:25
ksmrt0123:1.當從AD讀到設定值時, 用timer把現在值慢慢變過去 10/02 22:26
Petrucci99:ksmrt板友,小弟不才,#1BZWffSY<=這個是什麼呢Orz? 10/02 23:32
Petrucci99:感謝感謝~^^" 10/02 23:32
ruemann:文章代碼 是本版的1056篇 10/03 00:27
Seabook:2. ==>ADC有雜訊, 可以稍微濾波一下 10/03 07:50
Petrucci99:感謝~^^ 10/03 11:12
WolfLord:ADC的讀取與PWM的輸出可以TIMER岔開非同步動作這樣會比 10/03 14:12
WolfLord:較順暢,如果MCU無法中斷,那ADC提取時間把LED關掉。 10/03 14:13
WolfLord:人的眼睛很容易欺騙,結果這樣會比一邊提取ADC一邊做PWM 10/03 14:14
WolfLord:"看起來" 順暢。 10/03 14:14
hengchieh:可以用io的方式來算每段程式到底花多久時間才計算出來 10/04 00:30
hengchieh:知道每個片段程式所耗的時間,就大概知道就往哪個方向 10/04 00:31
hengchieh:去優化。 10/04 00:32
hengchieh:所謂IO的方式是指一個片段程式執行完打個PULSE,用示波 10/04 00:32
hengchieh:器去量測間隔時間。 10/04 00:33
Petrucci99:感謝~ 10/05 11:55