/*
* TC-Light-Test
* 太极创客-环保小夜灯-测试程序
* by 太极创客 (2017-11-25)
* www.taichi-maker.com
*
* 此示例程序为配合太极创客制作的
* 零基础入门学用ARDUINO教程-智能应用篇使用
*
* 基本功能介绍:
* 用户根据太极创客录制的环保小夜灯视频演示后可将此示例程序
* 上传至控制小夜灯的Arduino开发板从而确认电路搭建是否成功。
*
* 基本电路连接说明:
* 共阴极RGB-LED引脚R 连接 Arduino控制器引脚6
* 共阴极RGB-LED引脚G 连接 Arduino控制器引脚5
* 共阴极RGB-LED引脚B 连接 Arduino控制器引脚3
* 红外人体感应模块信号输出引脚 连接 Arduino控制器引脚8
* 光敏电阻分压电路信号输出引脚 连接 Arduino控制器引脚A0
*
* 如需获取太极创客-环保小夜灯的具体电路连接以及视频教程
* 请参见太极创客网站:
* http://www.taichi-maker.com/homepage/arduino-tutorial-index/intelligent-index/
*
*/
#define rLedPin 6 //RGB-LED引脚R
#define gLedPin 5 //RGB-LED引脚G
#define bLedPin 3 //RGB-LED引脚B
#define irSensorPin 8 //红外人体感应模块信号输出
#define lightSensorPin A0 //光敏电阻分压电路信号输出
int ledR = 0; //R Led 亮度
int ledG = 0; //G Led 亮度
int ledB = 0; //B Led 亮度
bool irReading; //红外人体感应模块输出
int lightReading; //光敏电阻分压电路信号输出
int ledColorIndex;
void setup() {
//设置引脚为相应工作模式
pinMode(rLedPin, OUTPUT); //pinMode(6, OUTPUT);
pinMode(gLedPin, OUTPUT);
pinMode(bLedPin, OUTPUT);
pinMode(irSensorPin, INPUT);
Serial.begin(9600);
Serial.println("Taichi-Maker Night-Light Test Sketch.");
}
void loop() {
lightReading = analogRead(lightSensorPin); //测试光敏电阻
delay(500);
irReading = digitalRead(irSensorPin); //测试红外人体感应传感器
delay(500);
rgbLedTest(); //测试LED
Serial.println("=====Sensor Test Report=====");
Serial.print("lightReading = "); Serial.println(lightReading);
Serial.print("irReading = "); Serial.println(irReading);
Serial.println("============================");
}
void rgbLedTest(){ //led测试程序
ledColorIndex++;
switch (ledColorIndex) {
case 1: //点亮红色LED
redTest();
break;
case 2: //熄灭LED
blackTest();
break;
case 3: //点亮绿色LED
greenTest();
break;
case 4: //熄灭LED
blackTest();
break;
case 5: //点亮绿色LED
greenTest();
break;
case 6: //熄灭LED
blackTest();
break;
case 7: //点亮蓝色LED
blueTest();
break;
case 8: //熄灭LED
blackTest();
break;
case 9: //点亮蓝色LED
blueTest();
break;
case 10: //熄灭LED
blackTest();
break;
case 11: //点亮蓝色LED
blueTest();
break;
case 12: //熄灭LED
blackTest();
break;
}
if (ledColorIndex == 12) ledColorIndex = 0; //led测试循环
}
void redTest(){ //测试红色LED
digitalWrite(rLedPin, HIGH);
digitalWrite(gLedPin, LOW);
digitalWrite(bLedPin, LOW);
}
void greenTest(){ //测试绿色LED
digitalWrite(rLedPin, LOW);
digitalWrite(gLedPin, HIGH);
digitalWrite(bLedPin, LOW);
}
void blueTest(){ //测试蓝色LED
digitalWrite(rLedPin, LOW);
digitalWrite(gLedPin, LOW);
digitalWrite(bLedPin, HIGH);
}
void blackTest(){ //LED熄灭
digitalWrite(rLedPin, LOW);
digitalWrite(gLedPin, LOW);
digitalWrite(bLedPin, LOW);
}