标题: 开源制作最炫RGB全彩51流水灯(原理图+PCB图+C程序) [打印本页]

作者: 刘海龙    时间: 2016-10-17 22:46
标题: 开源制作最炫RGB全彩51流水灯(原理图+PCB图+C程序)
最炫RGB全彩51流水灯
流水灯这货大家估计都跟她都很熟悉,但是下面制作的这种RGB全彩流水灯或许会让你对流水灯刮目相看,话不多说有图有真相。(PCB板我用的PADS画的,附件中有源程序+原理图+PCB图,用的湿膜感光法做的
1。硬件:所有的51单片机均可驱动(晶振频率随意、晶振频率越高流动速度越快)P3口通过8个电阻分别接8个三极管基极
2.元件:5050RGB灯珠8颗+PNP三极管8个+单片机+电阻8个(470R-4.7K均可)+电阻2个(220R左右)+电阻1个(330R左右)
3.初学者可以通过“”认识到LED三基色混光原理以及左右移位













  1. /*********************************************************************************************
  2. 编写:刘海龙
  3. 程序名:RGB8位彩色流水灯程序
  4. 硬件支持:所有的51单片机均可驱动(晶振频率随意)
  5. 元件:5050RGB灯珠8颗+PNP三极管8个+单片机+电阻8个(470R-4.7K均可)+电阻2个(220R左右)+电阻1个(330R左右)

  6. /*********************************************************************************************/
  7. #include <REG51.h> //单片机头文件
  8. #include <intrins.h>        //51基本运算(包括_nop_空函数)
  9.    
  10. sbit BB=P1^0;//blue蓝灯
  11. sbit RR=P1^1;//red红灯
  12. sbit GG=P1^2;//green绿灯
  13. unsigned int N=100;//定义每个灯亮的时间、单位为毫秒、修改此值可改变流动速度
  14. /*********************************************************************************************
  15. 函数名:毫秒级CPU延时函数
  16. /*********************************************************************************************/
  17. void DELAY_MS (unsigned int a){
  18.         unsigned int i;
  19.         while( a-- != 0){
  20.                 for(i = 0; i < 630; i++);
  21.         }
  22. }
  23. /*********************************************************************************************/
  24. /*********************************************************************************************/
  25. void main (void)
  26. {        
  27.         unsigned char i;               
  28.     while(1){
  29. /***************各种颜色灯单个点亮左右流动**************************/
  30.                 RR=0;GG=1;BB=1;//红灯亮
  31.                 for(i=0;i<8;i++){ //低位向高位流动  
  32.                         P3 = ~(1<<i);
  33.                         DELAY_MS(N);
  34.                                 }               
  35.                 for(i=0;i<8;i++){//高位向低位流动   
  36.                         P3 = ~(1<<7-i);
  37.                         DELAY_MS(N);
  38.                                 }               
  39.                 RR=1;GG=0;BB=1;//绿灯亮
  40.                 for(i=0;i<8;i++){ //低位向高位流动  
  41.                         P3 = ~(1<<i);
  42.                         DELAY_MS(N);
  43.                                 }               
  44.                 for(i=0;i<8;i++){//高位向低位流动   
  45.                         P3 = ~(1<<7-i);
  46.                         DELAY_MS(N);
  47.                                 }
  48.                 RR=1;GG=1;BB=0;//蓝灯点亮
  49.                 for(i=0;i<8;i++){   
  50.                         P3 = ~(1<<i);
  51.                         DELAY_MS(N);
  52.                                 }               
  53.                 for(i=0;i<8;i++){   
  54.                         P3 = ~(1<<7-i);
  55.                         DELAY_MS(N);
  56.                                 }
  57.                 RR=0;GG=0;BB=1;//红绿灯亮(黄色光)
  58.                 for(i=0;i<8;i++){   
  59.                         P3 = ~(1<<i);
  60.                         DELAY_MS(N);
  61.                                 }               
  62.                 for(i=0;i<8;i++){   
  63.                         P3 = ~(1<<7-i);
  64.                         DELAY_MS(N);
  65.                                 }               
  66.                 RR=0;GG=1;BB=0;//红蓝灯亮(粉红光)
  67.                 for(i=0;i<8;i++){   
  68.                         P3 = ~(1<<i);
  69.                         DELAY_MS(N);
  70.                                 }               
  71.                 for(i=0;i<8;i++){   
  72.                         P3 = ~(1<<7-i);
  73.                         DELAY_MS(N);
  74.                                 }
  75.                 RR=1;GG=0;BB=0;//蓝绿灯亮(青色光)
  76.                 for(i=0;i<8;i++){   
  77.                         P3 = ~(1<<i);
  78.                         DELAY_MS(N);
  79.                                 }               
  80.                 for(i=0;i<8;i++){   
  81.                         P3 = ~(1<<7-i);
  82.                         DELAY_MS(N);
  83.                                 }
  84.                 RR=0;GG=0;BB=0;//红蓝绿灯亮(白色光)
  85.                 for(i=0;i<8;i++){   
  86.                         P3 = ~(1<<i);
  87.                         DELAY_MS(N);
  88.                                 }               
  89.                 for(i=0;i<8;i++){   
  90.                         P3 = ~(1<<7-i);
  91.                         DELAY_MS(N);
  92.                                 }                                                                        
  93. /********各种颜色灯逐个点亮左右流动****************************/
  94.                 RR=0;GG=1;BB=1;//红灯亮
  95.                 for(i=0;i<8;i++){   
  96.                         P3 = 0xfe<<i;
  97.                         DELAY_MS(N);
  98.                                 }
  99.                 for(i=0;i<8;i++){   
  100.                         P3 = 0x7f>>i;
  101.                         DELAY_MS(N);
  102.                                 }
  103.                 RR=1;GG=0;BB=1;//绿灯亮
  104.                 for(i=0;i<8;i++){   
  105.                         P3 = 0xfe<<i;
  106.                         DELAY_MS(N);
  107.                                 }
  108.                 for(i=0;i<8;i++){   
  109.                         P3 = 0x7f>>i;
  110.                         DELAY_MS(N);
  111.                                 }
  112.                 RR=1;GG=1;BB=0;//蓝灯点亮
  113.                 for(i=0;i<8;i++){   
  114.                         P3 = 0xfe<<i;
  115.                         DELAY_MS(N);
  116.                                 }
  117.                 for(i=0;i<8;i++){   
  118.                         P3 = 0x7f>>i;
  119.                         DELAY_MS(N);
  120.                                 }
  121.                 RR=0;GG=0;BB=1;//红绿灯亮
  122.                 for(i=0;i<8;i++){   
  123.                         P3 = 0xfe<<i;
  124.                         DELAY_MS(N);
  125.                                 }
  126.                 for(i=0;i<8;i++){   
  127.                         P3 = 0x7f>>i;
  128.                         DELAY_MS(N);
  129.                                 }
  130.                 RR=0;GG=1;BB=0;//红蓝灯亮
  131.                 for(i=0;i<8;i++){   
  132.                         P3 = 0xfe<<i;
  133.                         DELAY_MS(N);
  134.                                 }
  135.                 for(i=0;i<8;i++){   
  136.                         P3 = 0x7f>>i;
  137.                         DELAY_MS(N);
  138.                                 }
  139.                 RR=1;GG=0;BB=0;//蓝绿灯亮
  140.                 for(i=0;i<8;i++){   
  141.                         P3 = 0xfe<<i;
  142.                         DELAY_MS(N);
  143.                                 }
  144.                 for(i=0;i<8;i++){   
  145.                         P3 = 0x7f>>i;
  146.                         DELAY_MS(N);
  147.                                 }
  148.                 RR=0;GG=0;BB=0;//红蓝绿灯亮
  149.                 for(i=0;i<8;i++){   
  150.                         P3 = 0xfe<<i;
  151.                         DELAY_MS(N);
  152.                                 }
  153.                 for(i=0;i<8;i++){   
  154.                         P3 = 0x7f>>i;
  155.                         DELAY_MS(N);
  156.                                 }
  157. /********各种颜色灯全部点亮一个熄灭的灯左右流动*************************/
  158.                 RR=0;GG=1;BB=1;//红灯亮
  159.                 for(i=0;i<8;i++){   
  160.                         P3 = 1<<i;
  161.                         DELAY_MS(N);
  162.                                 }
  163.                
  164.                 for(i=0;i<8;i++){   
  165.                         P3 = 0x80>>i;
  166.                         DELAY_MS(N);
  167.                                 }
  168.                 RR=1;GG=0;BB=1;//绿灯亮
  169.                 for(i=0;i<8;i++){   
  170.                         P3 = 1<<i;
  171.                         DELAY_MS(N);
  172.                                 }
  173.                
  174.                 for(i=0;i<8;i++){   
  175.                         P3 = 0x80>>i;
  176.                         DELAY_MS(N);
  177.                                 }
  178.                 RR=1;GG=1;BB=0;//蓝灯点亮
  179.                 for(i=0;i<8;i++){   
  180.                         P3 = 1<<i;
  181.                         DELAY_MS(N);
  182.                                 }
  183.                
  184.                 for(i=0;i<8;i++){   
  185.                         P3 = 0x80>>i;
  186.                         DELAY_MS(N);
  187.                                 }
  188.                 RR=0;GG=0;BB=1;//红绿灯亮
  189.                 for(i=0;i<8;i++){   
  190.                         P3 = 1<<i;
  191.                         DELAY_MS(N);
  192.                                 }
  193.                
  194.                 for(i=0;i<8;i++){   
  195.                         P3 = 0x80>>i;
  196.                         DELAY_MS(N);
  197.                                 }
  198.                 RR=0;GG=1;BB=0;//红蓝灯亮
  199.                 for(i=0;i<8;i++){   
  200.                         P3 = 1<<i;
  201.                         DELAY_MS(N);
  202.                                 }
  203.                
  204.                 for(i=0;i<8;i++){   
  205.                         P3 = 0x80>>i;
  206.                         DELAY_MS(N);
  207.                                 }                        
  208.                
  209.                 RR=1;GG=0;BB=0;//蓝绿灯亮
  210.                 for(i=0;i<8;i++){   
  211.                         P3 = 1<<i;
  212.                         DELAY_MS(N);
  213.                                 }
  214.                
  215.                 for(i=0;i<8;i++){   
  216.                         P3 = 0x80>>i;
  217.                         DELAY_MS(N);
  218.                                 }
  219.                 RR=0;GG=0;BB=0;//红蓝绿灯亮
  220.                 for(i=0;i<8;i++){   
  221.                         P3 = 1<<i;
  222.                         DELAY_MS(N);
  223.                                 }
  224.                
  225.                 for(i=0;i<8;i++){   
  226.                         P3 = 0x80>>i;
  227.                         DELAY_MS(N);
  228.                                 }                                                                                                                                                                                                                                                                                                                        
  229.         }                                   
  230. }
  231. /************************************END*********************************************************/
复制代码



2.png (613.88 KB, 下载次数: 314)

2.png

RGB流水灯程序和原理图PCB图.rar

136.36 KB, 下载次数: 656, 下载积分: 黑币 -5


作者: 三二一二三    时间: 2016-11-13 17:33
啦啦啦啦啦啦啦啦他他他
作者: mengzhengjie    时间: 2016-12-5 08:53
谢谢楼主分享
作者: mengzhengjie    时间: 2016-12-5 08:56
谢谢楼主分享
作者: ZHANGJINGYU    时间: 2016-12-7 18:31
普通流水灯的扩展版。可以看看。
作者: 东北那谁    时间: 2016-12-8 16:01
谢谢楼主分享
作者: lg9090960xp    时间: 2017-5-4 15:03
感谢楼主分享
作者: 旧时光里的少年    时间: 2017-5-18 18:01
谢谢楼主分享
作者: 旧时光里的少年    时间: 2017-5-18 18:02
谢谢楼主分享
作者: XDDZ1013    时间: 2017-5-18 19:55
谢谢分享
作者: sonyffff    时间: 2017-5-21 19:55
多谢分享,下来看看
作者: lg9090960xp    时间: 2017-5-28 10:20
感谢楼主分享
作者: haiyang4060    时间: 2017-5-28 15:56
哈哈 正是我想做的 事情啊  学习一下
作者: fishxiaokai    时间: 2017-6-2 14:39
谢谢楼主分享
作者: qingzhong1298    时间: 2017-6-3 15:41
谢谢楼主分享,收藏先,有时间再来学习。
作者: dlj1211    时间: 2017-6-8 12:53

谢谢楼主分享,收藏先,有时间再来学习。
作者: jatssang_lam    时间: 2017-7-27 11:11
挺好的 谢谢楼主
作者: 头烟香    时间: 2017-8-29 11:09
多谢楼主分享
作者: 头烟香    时间: 2017-8-29 11:09
感谢楼主分享!!!!
作者: jonhon158    时间: 2017-12-19 19:41
不错,刚好在做这种灯,可以参考,学些了

作者: a25575703    时间: 2018-1-12 03:38
感謝樓主的分享。
作者: 烟头烫胸毛    时间: 2018-1-12 18:57
谢谢楼主分享
作者: tieq1952    时间: 2018-1-14 08:23
谢谢分享,学习了
作者: 都市郎    时间: 2018-1-25 03:54
看不出有什么亮点
作者: wuxishun    时间: 2018-1-26 18:30
谢谢分享
作者: a644    时间: 2018-3-2 10:21
厉害厉害
作者: 苏丰陈少    时间: 2018-4-12 10:19
很有用
作者: drblack    时间: 2018-5-2 18:38
感谢分享
作者: leewj129    时间: 2018-6-5 09:14
感谢楼主的分享,可以借鉴。。
作者: bosschen    时间: 2018-6-6 15:56
麻烦管理员看一下,我下载没成功,点了四五次,黑币都扣除了,能不能麻烦管理员看一下,本来黑币就不太多,能不能给我退回来,按扣除一次算,还是我想下载这个附件但不成功!  麻烦管理员了
作者: 2661    时间: 2018-6-7 01:23
谢谢,写的很实用,亨给利
作者: yanyanznck    时间: 2018-6-7 17:53
谢谢分享
作者: songyuan    时间: 2018-6-29 11:28
一般吧
作者: diosam    时间: 2018-7-10 09:18
谢谢,写的很实用
作者: chenfynh    时间: 2018-8-7 16:04

感谢楼主分享!!!!
作者: sunke928    时间: 2018-8-10 06:53
学习贴,收藏了,谢谢分享
作者: tudouchen    时间: 2018-8-10 09:31
普通流水灯的扩展版。可以看看。
作者: luntantongyong    时间: 2018-11-12 22:32
对我们小白很有用
作者: 寂寞小奥特曼    时间: 2018-11-13 14:30
谢谢楼主的分享,刚学PCB
作者: 3080412478    时间: 2018-12-4 21:08
谢谢楼主分享
作者: aixiaoye    时间: 2019-2-27 14:51
非常感谢
作者: AACT120    时间: 2019-3-11 18:41
谢谢大佬;谢谢大佬!
作者: SJ-123    时间: 2019-3-24 22:10


谢谢楼主分享,收藏了,有时间再来学习。
作者: cpt_chn    时间: 2019-4-13 10:48
6666很给力!
作者: cpt_chn    时间: 2019-4-13 11:25
感谢楼主分享!
作者: AWEZLB    时间: 2019-4-13 11:34
汝之秀令吾思齐也
作者: cruise008    时间: 2019-4-13 14:22
感謝樓主的分享。

作者: stolle    时间: 2019-4-22 04:38
完美的灵感和学习效果页面。 我很惊讶于聪明才智。 好主意,坚持下去! 不幸的是,我不懂你的语言,我非常依赖翻译。 但意志会放山。
作者: xq981212897    时间: 2019-4-29 02:27
谢谢分享
作者: zhongzl728    时间: 2019-6-6 15:39
谢谢楼主分享
作者: 杰哥仔    时间: 2019-7-2 11:37
谢谢分享,学习学习
作者: lyhot    时间: 2019-7-27 10:25

谢谢楼主分享  如带渐变换色 就更完美了
作者: hxsya    时间: 2019-11-24 12:22
开关在哪呀?
作者: 刘海龙    时间: 2019-12-30 19:44
hxsya 发表于 2019-11-24 12:22
开关在哪呀?

单片机控制
作者: pkwong    时间: 2019-12-31 11:11
谢谢楼主分享
作者: zhanghulingfeng    时间: 2020-1-17 22:30
感谢楼主分享
作者: lulgs    时间: 2020-1-20 13:22
谢谢楼主分享,渐变怎么弄呢
作者: 被宁神的小Y    时间: 2020-3-16 16:17
哈哈 正是我想做的 事情啊  学习一下
作者: tian1qing    时间: 2020-3-17 23:41
我需要参考一下,谢谢!
作者: yym576888369    时间: 2020-5-7 16:14
这个方案有个缺陷,当你RGB灯很多的时候,阴极全部 接到单片机引脚上,电流会大,单片机会发热。如果你限流接入,RGB灯的亮度又会降低。建议用三极管驱动阴极。
作者: zxopenljx    时间: 2020-6-5 14:22
谢谢楼主分享
作者: lcs20030116    时间: 2020-8-5 16:40
很好,刚做流水灯不会编
作者: dilongking    时间: 2020-8-21 11:40
如果增加灯数,是不是也要改变程序啊?
作者: hao18    时间: 2020-9-11 11:06
看上去很美
作者: dj3365191    时间: 2020-9-25 17:56
楼主你好,你的原理图是用什么软件画的,我用AD18打不开,还有你的PCB我用AD18导入提示格式不正确,你PCB不是用PADS画的吗,原理图和PCB都是什么版本呢?谢谢!
作者: 569134534    时间: 2020-10-27 13:55
多弄几个做成心形的流水灯肯定更炫
作者: 钟志伟    时间: 2020-10-27 14:28
懂得用三极管驱动,楼主估计老手了,单片机直接IO口驱动就难受了哈哈~!
作者: dely2009    时间: 2021-2-22 17:03
顶一个  谢谢楼主分享 看下RGB

作者: whbt51h    时间: 2021-2-23 16:53
正是我要找的,学习了,谢谢~
作者: s6155555s    时间: 2021-3-22 16:50
谢谢51hei,谢谢楼主!
作者: lb688    时间: 2022-4-5 13:04
很有用得资料。
作者: 新乡家电维修    时间: 2022-4-5 21:21
看图片我以为是2812呢,AT89单片机驱动不了,再看原来是普通的LED灯,难怪了,
作者: 981203131    时间: 2023-7-31 18:41
温故而知新,谢谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1