如视频无法正常播放,可点击这里前往B站观看
本课示例代码:(无法复制本站示例程序代码?请点击这里获得解决方法。)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | /*  * TC-Light-Simple-OnOff  * 太极创客-环保小夜灯-示例程序-1  * by 太极创客 (2017-11-21)  * www.taichi-maker.com  *   * 此示例程序为配合太极创客制作的  * 零基础入门学用ARDUINO教程-智能应用篇使用  *   * 基本功能介绍:  * 用户可通过传感器控制RGB-LED点亮和关闭  * 用户可以通过变量 ledR、ledG、ledB 自定义RGB-LED颜色  * 小夜灯配备人体红外感应传感器以及光敏电阻实现照明自动化  *   * 基本电路连接说明:  * 共阴极RGB-LED引脚R 连接 Arduino控制器引脚6  * 共阴极RGB-LED引脚G 连接 Arduino控制器引脚5  * 共阴极RGB-LED引脚B 连接 Arduino控制器引脚3  * 红外人体感应模块信号输出引脚 连接 Arduino控制器引脚8  * 光敏电阻分压电路信号输出引脚 连接 Arduino控制器引脚A0  *   * 如需获取太极创客-环保小夜灯的具体电路连接  * 请参见太极创客网站: www.taichi-maker.com  *           */ #define rLedPin 6 //RGB-LED引脚R #define gLedPin 5 //RGB-LED引脚G #define bLedPin 3 //RGB-LED引脚B #define irSensorPin 8 //红外人体感应模块信号输出 #define lightSensorPin A0 //光敏电阻分压电路信号输出 // 用户可以通过变量 ledR、ledG、ledB 自定义RGB-LED颜色 int ledR  = 99; //R Led 亮度 int ledG  = 185; //G Led 亮度 int ledB  = 33; //B Led 亮度 bool irReading;   //存储红外人体感应模块输出 int lightReading; //存储光敏电阻分压电路信号输出 void setup() {   //设置引脚为相应工作模式   pinMode(rLedPin, OUTPUT);   pinMode(gLedPin, OUTPUT);   pinMode(bLedPin, OUTPUT);   pinMode(irSensorPin, INPUT);   Serial.begin(9600);    Serial.println("Welcome to Taichi-Maker RGB Led Night-Light."); } void loop() {   irReading = digitalRead(irSensorPin); //读取红外人体感应模块   lightReading = analogRead(lightSensorPin); //读取光敏电阻分压电路信号输出   if(irReading == HIGH && lightReading >= 500){ //如感应到人且亮度达到需照明程度     lightOn(1);                                 //点亮小夜灯照明   } else {                                      //如未感应到人且亮度未达到需照明程度       lightOn(0);                                 //保持小夜灯熄灭   }   //通过串口监视器实时输出各个传感器检测的数据结果   //可用于调试小夜灯工作参数使用   Serial.println("");   Serial.println("===========================");   Serial.print("irReading = "); Serial.println(irReading);   Serial.print("lightReading = "); Serial.println(lightReading);   Serial.println("===========================");   delay(50); } //以下lightOn函数通过参数on的数值 //来控制小夜灯RGB-LED是否点亮 void lightOn(bool on){      if (on == 1) { //如参数on的数值为1则点亮小夜灯     analogWrite(rLedPin, ledR);     delay(10);     analogWrite(gLedPin, ledG);     delay(10);     analogWrite(bLedPin, ledB);      delay(10);    }  else {  //否则保持小夜灯熄灭     analogWrite(rLedPin, 0);     delay(10);     analogWrite(gLedPin, 0);     delay(10);     analogWrite(bLedPin, 0);      delay(10);        } } |