本帖最后由 一瞬の空 于 2015-2-4 16:31 编辑
火影 发表于 2015-1-24 18:35
我是新手
RGB还有其他程序吗
连接
波形图
转的三相电的图,实际图像是最大值为255最小值为0的(懂三角函数的都懂)
程序 - /*
- 作品:RGB共阳LED颜色渐变
- 注释:LED共阳,4脚接正极,其他接RGB颜色
- 时间:2015.02.03
- 作者:一瞬の空
- */
- const int LED1=3;
- const int VCC=4;
- const int LED2=5;
- const int LED3=6;//定义引脚
- float a=0;//计数用,提供函数x轴
- int time=10;//延迟时间,单位毫秒,调整变化快慢
- int r=0;
- int g=0;
- int b=0;//三个颜色设定
- void setup()
- {
-   pinMode(LED1,OUTPUT);
-   pinMode(LED2,OUTPUT);
-   pinMode(LED3,OUTPUT);
-   pinMode(VCC,OUTPUT);//定义引脚输入输出模式
-   digitalWrite(VCC,HIGH);//3,5,6引脚输出pwm,为了方便,设置4为高电平
- }
- void loop()
- {
-   for(a=0;a<6.28;a=a+0.01)//for循环,格式“for(初始化;条件;运算),此循环用于提供变化的数
-   {
-     r=(127.5*(sin(a)+1));
-     g=(127.5*(sin(a-2.09)+1));
-     b=(127.5*(sin(a+2.09)+1));//r,g,b运算表达式,X轴错开2.09以达到同一时间不同亮度
-     /*
-      此处用了三相电公式
-      V1 = Asin(2πft)=Asin(wt)
-      V2 = Asin(2πft - 2π/3)=Asin(wt-2π/3)
-      V3 = Asin(2πft + 2π/3)=Asin(wt+2π/3)
-      */
-     analogWrite(LED1,r);
-     analogWrite(LED2,g);
-     analogWrite(LED3,b);//输出亮度pwm调制波,范围0~255
-     delay(time);//延时毫秒,防止运算太快变化不明显
-   }
- }
复制代码 视频
|