使用arduino ide写出可运行代码:一、所用电子元器件:四针脚三色led灯,触摸传感器,碰撞传感器。二、要求如下1.初始状态下三色led状态为绿色呼吸2.感受到碰撞传感器碰撞后,三色led状态为红色保持10秒后渐变为蓝色并保持,在此期间如果触摸传感器感受到信号,则渐变为绿色并保持初始状态,如果触摸传感器未感受到信号,则一直保持蓝色直到触摸传感器检测到信号。注意:1.碰撞传感器和触摸传感器互不干扰2.三色led中R、G、B、的亮度0为最亮,255为最暗。
时间: 2024-02-05 21:13:51 浏览: 80
Arduino R3 控制系统:通过蓝牙模块实现手机远程监控超声波传感器数据并控制LED灯
```arduino
int redPin = 5; // 定义红色LED引脚
int greenPin = 6; // 定义绿色LED引脚
int bluePin = 7; // 定义蓝色LED引脚
int touchSensorPin = 2; // 定义触摸传感器引脚
int collisionSensorPin = 3; // 定义碰撞传感器引脚
int state = 0; // 记录当前状态,0为初始状态,1为碰撞状态,2为触摸状态
unsigned long startTime; // 记录碰撞状态开始时间
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(touchSensorPin, INPUT);
pinMode(collisionSensorPin, INPUT);
analogWrite(redPin, 0); // 初始状态下红色LED亮度为0
analogWrite(greenPin, 255); // 初始状态下绿色LED亮度为最亮
analogWrite(bluePin, 0); // 初始状态下蓝色LED亮度为0
}
void loop() {
int collisionSensorValue = digitalRead(collisionSensorPin); // 读取碰撞传感器状态
int touchSensorValue = digitalRead(touchSensorPin); // 读取触摸传感器状态
if (collisionSensorValue == HIGH && state != 1) { // 碰撞传感器感受到碰撞,进入碰撞状态
state = 1;
analogWrite(redPin, 255); // 红色LED亮度为最亮
analogWrite(greenPin, 0); // 绿色LED亮度为0
analogWrite(bluePin, 0); // 蓝色LED亮度为0
startTime = millis(); // 记录碰撞状态开始时间
}
if (state == 1 && millis() - startTime > 10000) { // 碰撞状态持续10秒,进入蓝色保持状态
state = 2;
analogWrite(redPin, 0); // 红色LED亮度为0
analogWrite(greenPin, 0); // 绿色LED亮度为0
analogWrite(bluePin, 255); // 蓝色LED亮度为最亮
}
if (state == 2 && touchSensorValue == HIGH) { // 触摸传感器感受到信号,进入绿色保持状态
state = 0;
analogWrite(redPin, 0); // 红色LED亮度为0
analogWrite(greenPin, 255); // 绿色LED亮度为最亮
analogWrite(bluePin, 0); // 蓝色LED亮度为0
}
delay(10); // 延时10毫秒避免过快切换状态
}
```
阅读全文