性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

自制玩意4——基于PIC12F實現(xiàn)RGB調(diào)色+調(diào)光、FADE+調(diào)速、EEP存儲

    本人電源工程師一枚,一直從事于LED驅(qū)動開發(fā)的行當(dāng),細(xì)數(shù)也近6年了,對于單片機的學(xué)習(xí)也是近期工作所需,硬著頭皮上,充其量只是入

     門,更談不上什么高手。

    此款RGB產(chǎn)品早在五年前便已流行于整個市場,路人皆知,在當(dāng)時此款24KEY的面板遙控器似乎成了通用遙控器,五年之后的現(xiàn)在,市場價值蕩然無存,現(xiàn)也難覓它的蹤影。為了留住過往,特自制此玩意,以此紀(jì)念!

      也是機緣巧合,當(dāng)時是拜讀了樂云兄發(fā)的《LED全彩遙控控制器(C語言程序+電路原理圖+PCB版圖)整套 原創(chuàng).. 》這個帖子后,就沖動了想弄個出來玩玩,在此得感謝樂云兄。完成這個確實花了不少功夫,特別是在解碼這部分,以及配色。光解碼程序就做了幾種嘗試,無論你是外部中斷查詢,還是主函數(shù)查詢都只能寫大部分的功能,譬如調(diào)光、變色、顏色跳變這些都可以用定時器來實現(xiàn),但是有一個FADE平滑漸變的功能,適合用循環(huán)的方式來實現(xiàn),如果用外部中斷或主函數(shù)查詢法解碼你將很難或無法實現(xiàn),因為太多的PWM需要變換將會拖累定時器。所以最終嘗試第三種解碼方式定時器查詢法便解決這所有的問題。

     品名:24KEY型RGB燈

     遙控器型號:暫且叫1616(24KEY型)

     單片機型號:Microchip PIC12F1822(帶EEP),8引腳,8M內(nèi)置振蕩,如果使能PLL功能4倍,最大到32M

全部回復(fù)(56)
正序查看
倒序查看
daihui713
LV.6
2
2014-06-22 10:11

.

0
回復(fù)
2014-06-27 00:23
@daihui713
.
沒有了,PIC我也有在玩了,不過新建的板塊大多都是初學(xué)者,所以都是以51為主,不然沒多少人回帖
0
回復(fù)
2014-06-27 14:27
@wangchuangwccc
沒有了,PIC我也有在玩了,不過新建的板塊大多都是初學(xué)者,所以都是以51為主,不然沒多少人回帖
戴工 單片機版塊的興旺也有你的軍功章,你可不能刪帖喲,得多帶帶頭!
0
回復(fù)
2014-06-27 14:27
戴工這個版塊才建幾個月,是咱們的新興版塊已經(jīng)有很多小伙伴加入進來了,樓主別棄樓,給我們來點鮮貨吧!~
0
回復(fù)
2014-06-27 14:28
@電源網(wǎng)-娜娜姐
戴工這個版塊才建幾個月,是咱們的新興版塊已經(jīng)有很多小伙伴加入進來了,樓主別棄樓,給我們來點鮮貨吧!~
師長都來啦,哈哈,加油!
0
回復(fù)
2014-06-27 14:28
@yueyunno1
戴工單片機版塊的興旺也有你的軍功章,你可不能刪帖喲,得多帶帶頭!
嗯嗯,時間好接近的回復(fù) 哈哈~
0
回復(fù)
2014-06-27 14:28
@yueyunno1
師長都來啦,哈哈,加油!
好巧哦~~
0
回復(fù)
2014-06-27 14:29
@電源網(wǎng)-娜娜姐
嗯嗯,時間好接近的回復(fù)哈哈~
我網(wǎng)速不給力,要不然都同時出現(xiàn)。
0
回復(fù)
daihui713
LV.6
10
2014-06-27 16:43
@yueyunno1
戴工單片機版塊的興旺也有你的軍功章,你可不能刪帖喲,得多帶帶頭!

呵呵,樂兄客氣了,單片機的版塊我還是經(jīng)??吹?,這個版塊你和王兄帶頭多啊,我只是打打醬油啊,呵呵。

0
回復(fù)
daihui713
LV.6
11
2014-06-27 16:47
@電源網(wǎng)-娜娜姐
戴工這個版塊才建幾個月,是咱們的新興版塊已經(jīng)有很多小伙伴加入進來了,樓主別棄樓,給我們來點鮮貨吧!~
路過這里,打打醬油啊,呵呵,  還是電源版塊熱鬧啊,不過真正的肉比較少
0
回復(fù)
daihui713
LV.6
12
2014-06-27 16:53
@wangchuangwccc
沒有了,PIC我也有在玩了,不過新建的板塊大多都是初學(xué)者,所以都是以51為主,不然沒多少人回帖
嗯 王兄威武,帖子給力,我只是偶爾過來打打醬油的,這個版塊也慢慢活躍起來了,
0
回復(fù)
daihui713
LV.6
13
2014-06-27 19:20
**此帖已被管理員刪除**
0
回復(fù)
daihui713
LV.6
14
2014-06-27 19:21
@daihui713
**此帖已被管理員刪除**

 先上裸機圖片,洞洞板的極致拼湊,慘不忍睹!

0
回復(fù)
2014-07-01 10:38
@daihui713
 先上裸機圖片,洞洞板的極致拼湊,慘不忍睹![圖片][圖片][圖片]
肉來啦!~ 頂起來~~此貼已被推薦到論壇首頁,戴工繼續(xù)繼續(xù)~~
0
回復(fù)
2014-07-01 14:33
@daihui713
 先上裸機圖片,洞洞板的極致拼湊,慘不忍睹![圖片][圖片][圖片]
RGB燈杯市場上確實不怎么見了,不過泛光燈還是有的,30W左右
0
回復(fù)
daihui713
LV.6
17
2014-07-01 15:15
@daihui713
 先上裸機圖片,洞洞板的極致拼湊,慘不忍睹![圖片][圖片][圖片]

針對此RGB產(chǎn)品,需要用到單片機的資源不多,一般普通的MCU即可滿足

外部資源:只需三個IO驅(qū)動口、一個IR紅外接收。

內(nèi)部資源:一個EEPROM存儲、一個8位定時器、一個8M內(nèi)部時鐘

此RGB玩意采用Microchip 12系列XLP超低功耗的MCU——PIC12F1822,此MCU內(nèi)部集成功能較多,當(dāng)然單價也會比較貴. 如果做產(chǎn)品建議可以選擇功能單一,價格便宜的MCU即可。

PIC單片機的通用性比較好,特別是普通功能寄存器的設(shè)置基本一致,特殊功能寄存器的設(shè)置只需多加了解DATASHEET重新定義即可。

針對內(nèi)部時鐘,初步設(shè)置為8M,如果使能4倍頻鎖相環(huán)功能(PLL),最大時鐘可以在8M的基礎(chǔ)上*4倍=32M,此功能比起直接外接32M的晶振,對外界的輻射干擾會小很多。

PIC12F1822簡介:

 

 

 

 

0
回復(fù)
daihui713
LV.6
18
2014-07-01 15:16
@電源網(wǎng)-娜娜姐
肉來啦!~頂起來~~此貼已被推薦到論壇首頁,戴工繼續(xù)繼續(xù)~~
多謝支持!
0
回復(fù)
daihui713
LV.6
19
2014-07-01 15:20
@wangchuangwccc
RGB燈杯市場上確實不怎么見了,不過泛光燈還是有的,30W左右

嗯 是的,此款RGB早在五年前我就已經(jīng)接觸過了,只不過那時還沒有正式接觸單片機。

0
回復(fù)
daihui713
LV.6
20
2014-07-01 17:09
@daihui713
 先上裸機圖片,洞洞板的極致拼湊,慘不忍睹![圖片][圖片][圖片]

玩意簡易說明:

一、此玩意的重點在于遙控器的解碼方式的選擇——出發(fā)點就是既不能打斷正在循環(huán)漸變或調(diào)光的LED,又要

      能準(zhǔn)確的接收遙控器的信號.

二、傳統(tǒng)紅外解碼常用有三種方式:    

   1、外部中段解碼,執(zhí)行級別高,速度快。缺點很明顯,在中斷的同時不能干別的事情   

   2、主函數(shù)循環(huán)查詢法,適合小型的程序。主函數(shù)執(zhí)行程序不能太多,不然紅外信號會偶爾丟失。優(yōu)點就是可以

       在中斷里面干別的事情。

   3、定時器查詢法,設(shè)定一個時基,定時查詢紅外的碼值,通過時基累積來判斷紅外碼的碼值的寬度,從而判斷

       是否是引導(dǎo)碼,或是連續(xù)碼,以及用戶碼高低電平的解碼。優(yōu)勢就是不打斷主函數(shù)中正在進行的循環(huán)PWM,

       通俗說就是抽個空進行了解碼。這樣既不占資源,也可以干別的事情,此方式誤碼率比較低,所以此方法是

      最適合此玩意。 

三、此款24健遙控器的燈管漸變模式分三種: 

    1. 不同顏色之間,以一定的時間間隔來實現(xiàn)跳變,也稱閃變(FLASH),跳變時間間隔長短可調(diào).

    2. 三基色平滑過度型實現(xiàn)16色的變化,也稱漸變(FADE),漸變速度可調(diào).

    3. 不同顏色實現(xiàn)慢慢從亮到暗,從暗到亮的呼吸漸變,漸變速度可調(diào)。

 四、對于RGB燈, 除了顏色漸變外,然后就是16色的單色調(diào)光與顏色切換,以及開關(guān)機。利用內(nèi)部EEP掉電后保存當(dāng)前顏色、當(dāng)前顏色亮度、當(dāng)前漸變的模式、當(dāng)前漸變的速度

0
回復(fù)
phantasm
LV.5
21
2014-07-01 22:09
作為做技術(shù)的   這個得關(guān)注一下
0
回復(fù)
daihui713
LV.6
22
2014-07-02 11:40
@daihui713
玩意簡易說明:一、此玩意的重點在于遙控器的解碼方式的選擇——出發(fā)點就是既不能打斷正在循環(huán)漸變或調(diào)光的LED,又要     能準(zhǔn)確的接收遙控器的信號.二、傳統(tǒng)紅外解碼常用有三種方式:     1、外部中段解碼,執(zhí)行級別高,速度快。缺點很明顯,在中斷的同時不能干別的事情      2、主函數(shù)循環(huán)查詢法,適合小型的程序。主函數(shù)執(zhí)行程序不能太多,不然紅外信號會偶爾丟失。優(yōu)點就是可以      在中斷里面干別的事情。  3、定時器查詢法,設(shè)定一個時基,定時查詢紅外的碼值,通過時基累積來判斷紅外碼的碼值的寬度,從而判斷      是否是引導(dǎo)碼,或是連續(xù)碼,以及用戶碼高低電平的解碼。優(yōu)勢就是不打斷主函數(shù)中正在進行的循環(huán)PWM,      通俗說就是抽個空進行了解碼。這樣既不占資源,也可以干別的事情,此方式誤碼率比較低,所以此方法是     最適合此玩意。 三、此款24健遙控器的燈管漸變模式分三種:     1.不同顏色之間,以一定的時間間隔來實現(xiàn)跳變,也稱閃變(FLASH),跳變時間間隔長短可調(diào).    2.三基色平滑過度型實現(xiàn)16色的變化,也稱漸變(FADE),漸變速度可調(diào).    3.不同顏色實現(xiàn)慢慢從亮到暗,從暗到亮的呼吸漸變,漸變速度可調(diào)。 四、對于RGB燈,除了顏色漸變外,然后就是16色的單色調(diào)光與顏色切換,以及開關(guān)機。利用內(nèi)部EEP掉電后保存當(dāng)前顏色、當(dāng)前顏色亮度、當(dāng)前漸變的模式、當(dāng)前漸變的速度

還是自己頂自己吧,大家看看就行。

說到紅外遙控,就得先了解紅外碼的格式,以下圖形為實測隨機抓?。?

單次按鍵(不含連續(xù)碼)——引導(dǎo)碼+用戶碼/用戶反碼+數(shù)據(jù)碼/數(shù)據(jù)反碼+結(jié)束碼 

碼長實測時間大概在115mS

趁睡覺前抓了幾個圖形(家里的測試環(huán)境比較簡陋)

 

引導(dǎo)碼和用戶碼的部分截?。?

引導(dǎo)碼碼長以9+4.5mS起頭,實測在13.2-14mS之間,接下來就是用戶碼,

從圖形可以看出用戶碼和用戶反碼是互補的(0x01和0xFE)

 

 

 

結(jié)束碼圖形截?。?

從圖形上看,結(jié)束碼需要在數(shù)據(jù)反碼完成之后,大概延時80多mS,以9+2.5mS作為結(jié)束碼

實測結(jié)束碼碼長為12mS

 

 

 

0
回復(fù)
terry2006
LV.2
23
2014-07-02 13:54
@daihui713
還是自己頂自己吧,大家看看就行。說到紅外遙控,就得先了解紅外碼的格式,以下圖形為實測隨機抓?。簡未伟存I(不含連續(xù)碼)——引導(dǎo)碼+用戶碼/用戶反碼+數(shù)據(jù)碼/數(shù)據(jù)反碼+結(jié)束碼 碼長實測時間大概在115mS趁睡覺前抓了幾個圖形(家里的測試環(huán)境比較簡陋)[圖片] 引導(dǎo)碼和用戶碼的部分截?。阂龑?dǎo)碼碼長以9+4.5mS起頭,實測在13.2-14mS之間,接下來就是用戶碼,從圖形可以看出用戶碼和用戶反碼是互補的(0x01和0xFE) [圖片] [圖片] 結(jié)束碼圖形截?。簭膱D形上看,結(jié)束碼需要在數(shù)據(jù)反碼完成之后,大概延時80多mS,以9+2.5mS作為結(jié)束碼實測結(jié)束碼碼長為12mS[圖片]   
頂一個,這種24鍵RGB控制器我們公司還在每月幾萬個不斷的生產(chǎn)(用于魚缸水族照明)。我是51入了門(當(dāng)初買了幾種51多功能的學(xué)習(xí)板),后又想學(xué)PIC,買了PICKIT3一年多了我都沒去摸它。慘愧?。ㄟ@種熱情現(xiàn)在是越來越少了,因為需要學(xué)習(xí)的東西太多了,最后時間還是玩過去了)。
0
回復(fù)
貼片機
LV.8
24
2014-07-02 14:27
不知道這種東西有什么用呀?用在哪里呀?
0
回復(fù)
daihui713
LV.6
25
2014-07-02 14:36
@terry2006
頂一個,這種24鍵RGB控制器我們公司還在每月幾萬個不斷的生產(chǎn)(用于魚缸水族照明)。我是51入了門(當(dāng)初買了幾種51多功能的學(xué)習(xí)板),后又想學(xué)PIC,買了PICKIT3一年多了我都沒去摸它。慘愧?。ㄟ@種熱情現(xiàn)在是越來越少了,因為需要學(xué)習(xí)的東西太多了,最后時間還是玩過去了)。[圖片]

嗯,PIC的開發(fā)工具都比較貴,我還是在某寶上淘的山寨版——PICKIT3.5   不過現(xiàn)在也被生活磨的沒有太多的開發(fā)熱情了, 一般急功近利的比較多,特別是在深圳這個高節(jié)奏的環(huán)境中

0
回復(fù)
daihui713
LV.6
26
2014-07-02 14:56
@貼片機
不知道這種東西有什么用呀?用在哪里呀?
一般多用于景觀燈(非照明類),RGB射燈居多
0
回復(fù)
daihui713
LV.6
27
2014-07-02 16:25
@daihui713
還是自己頂自己吧,大家看看就行。說到紅外遙控,就得先了解紅外碼的格式,以下圖形為實測隨機抓?。簡未伟存I(不含連續(xù)碼)——引導(dǎo)碼+用戶碼/用戶反碼+數(shù)據(jù)碼/數(shù)據(jù)反碼+結(jié)束碼 碼長實測時間大概在115mS趁睡覺前抓了幾個圖形(家里的測試環(huán)境比較簡陋)[圖片] 引導(dǎo)碼和用戶碼的部分截取:引導(dǎo)碼碼長以9+4.5mS起頭,實測在13.2-14mS之間,接下來就是用戶碼,從圖形可以看出用戶碼和用戶反碼是互補的(0x01和0xFE) [圖片] [圖片] 結(jié)束碼圖形截?。簭膱D形上看,結(jié)束碼需要在數(shù)據(jù)反碼完成之后,大概延時80多mS,以9+2.5mS作為結(jié)束碼實測結(jié)束碼碼長為12mS[圖片]   

由于東西簡單,沒有原理圖,剛剛簡單整理了一下。

 

 

 

0
回復(fù)
daihui713
LV.6
28
2014-07-08 19:00
@daihui713
由于東西簡單,沒有原理圖,剛剛簡單整理了一下。 [圖片]  

  先上傳一個初期的實驗性的驗證程序,紅外解碼采用主函數(shù)查詢的方法,這種解碼方式倒是可以,但是執(zhí)行其他事件的時間不能太長,否則會影響解碼程序的運行,導(dǎo)致解碼丟失

    以下程序為利用PIC12F1822的驗證程序,整篇采用switch case語句貫穿整個程序,由于采用固定延時做判斷來解碼的方式,所有功能在定時器中來完成PWM的轉(zhuǎn)換。最終導(dǎo)致還有一個FADE平滑過渡型漸變功能沒法再繼續(xù)寫下去。

   不過此程序?qū)崿F(xiàn)調(diào)光 混色  顏色跳變的遙控功能足以!  當(dāng)然最終的量產(chǎn)程序肯定和這個有著本質(zhì)區(qū)別了。

 

  

 

0
回復(fù)
daihui713
LV.6
29
2014-07-08 19:25
@daihui713
 先上傳一個初期的實驗性的驗證程序,紅外解碼采用主函數(shù)查詢的方法,這種解碼方式倒是可以,但是執(zhí)行其他事件的時間不能太長,否則會影響解碼程序的運行,導(dǎo)致解碼丟失   以下程序為利用PIC12F1822的驗證程序,整篇采用switchcase語句貫穿整個程序,由于采用固定延時做判斷來解碼的方式,所有功能在定時器中來完成PWM的轉(zhuǎn)換。最終導(dǎo)致還有一個FADE平滑過渡型漸變功能沒法再繼續(xù)寫下去。  不過此程序?qū)崿F(xiàn)調(diào)光混色 顏色跳變的遙控功能足以! 當(dāng)然最終的量產(chǎn)程序肯定和這個有著本質(zhì)區(qū)別了。   [圖片][圖片][圖片][圖片][圖片][圖片][圖片][圖片][圖片][圖片][圖片][圖片][圖片][圖片][圖片][圖片][圖片][圖片] 

以下程序為史上紅外解碼最精簡程序示例——摘自阿莫論壇

——利用定時器的固定時基來查詢紅外脈沖的寬度,從而進行解碼!

大家可以自己去分析,至于中間的高電平是多少時間,低電平是多少時間都不用去管,只需計算兩個下降沿間隔時間就可以判斷0和1,同時也可以判斷是否是引導(dǎo)碼,或是結(jié)束碼,或是連續(xù)碼

定時器查看時間設(shè)置為125us,執(zhí)行定時器中斷程序一次

void Timer0 interrupt 1()                                                            

{      

        irTime++;   

        if(irTime==240) // ir解碼后碼值存放時間, 240*125us = 30ms   

       {

             irTime--;  

             codeCnt=0x3f;

       }       

       if(IR_IO)   Irprot_LastState=1; // 記錄IO狀態(tài)   

       else if(Irprot_LastState)       // 有下降沿 

       {      

              Irprot_LastState = 0;        // 下降沿后IO狀態(tài)記錄為0      

              if(irTime<24)                // 小于24*125us=3ms的間隔才進行處理      

             {         

                    codeCnt++;  

                    codeCnt &= 0x1f;         

                    IR_data[codeCnt>>3] <<= 1;       

                    if( irTime>15)   

                    IR_data[codeCnt>>3]++;  // 大于15*125us=1.875ms的間隔為數(shù)據(jù)1      

             }    

             irTime = 0;                  // 下降沿處理完成,將時間清0   

        }

}

 

0
回復(fù)
dwx159
LV.2
30
2014-07-09 00:20
@daihui713
 先上裸機圖片,洞洞板的極致拼湊,慘不忍睹![圖片][圖片][圖片]
這個緊湊....吊炸天!!
0
回復(fù)
aninstone
LV.4
31
2014-07-11 15:22
@wangchuangwccc
沒有了,PIC我也有在玩了,不過新建的板塊大多都是初學(xué)者,所以都是以51為主,不然沒多少人回帖
pic和51差不了多少 我也在用
0
回復(fù)
發(fā)