第七课--控制 RGB 彩色 LED 灯/zh
目的前面学习了很多led实验,接下来学习下RGB led,通过一个RGB灯显示不同的颜色,包括呼吸。 设备Microduino-CoreSTM32是采用 STM32F103CBT6芯片的ARM开发板,采用独特的Upin7接口,大小与一枚一元硬币差不多大,完全兼容Microduino其他扩展模块。
RGBRGB LED,其封装内有三个LED,一个红色,一个绿色的,一个蓝色的。通过控制各个LED的亮度,你可以混合出几乎任何你想要的颜色。 接法
原理图这里采用第一种接法,用到了D4、D11、D12号管脚。你也可以用到PWM:0,1,4,11,12,14(A0),15(A1),16(A2),17(A3),18(SDA),19(SCL),20(A6),21(A7) int redPin = 4; int greenPin = 11; int bluePin = 12; void setup() { pinMode(redPin, PWM); pinMode(greenPin, PWM); pinMode(bluePin, PWM); } void loop() { setColor(65535, 0, 0); // 红色 delay(1000); setColor(0, 65535, 0); // 绿色 delay(1000); setColor(0, 0, 65535); // 蓝色 delay(1000); setColor(65535, 65535, 0); // 黄色 delay(1000); setColor(80, 0, 80); // 紫色 delay(1000); setColor(65535, 65535, 65535);//白 delay(1000); setColor(0, 0, 0); //黑 delay(1000); for(int i=0;i<65535;i+=1285)//红色渐亮 { setColor(i, 0, 0); delay(30); } delay(100); for(int i=65535;i>0;i-=1285)//红色渐灭 { setColor(i, 0, 0); delay(30); } delay(100); for(int i=0;i<65535;i+=1285)//蓝色渐亮 { setColor(0, i, 0); delay(30); } delay(100); for(int i=65535;i>0;i-=1285)//蓝色渐灭 { setColor(0, i, 0); delay(30); } delay(100); for(int i=0;i<65535;i+=1285)//绿色渐亮 { setColor(0, 0, i); delay(30); } delay(100); for(int i=65535;i>0;i-=1285)//绿色渐灭 { setColor(0, 0, i); delay(30); } delay(100); } void setColor(int red, int green, int blue)//颜色显示子程序 { pwmWrite(redPin, 65535-red); //共阳RGB,低电平点亮,用65535-red pwmWrite(greenPin, 65535-green); pwmWrite(bluePin, 65535-blue); } 结果在一个灯上可以看到红、绿、蓝、黄、紫、黑,白,及呼吸效果。 视频 |