基于arduino ide帮我把这两段代码合并成一段包含子函数的简介代码 代码1 int IRSensor = 9; int pinRelay = 8; void RelayWork() //继电器工作 { digitalWrite(pinRelay, HIGH);//输出HIGH电平,继电器模块闭合 delay(4000); } void setup() { pinMode(IRSensor, INPUT); //设置红外传感器接口为输入状态 pinMode(pinRelay, OUTPUT); //设置pinRelay脚为输出状态 Serial.begin(9600); } void loop() { int sensorStatus = digitalRead(IRSensor); // Set the GPIO as Input if (sensorStatus == 1) // Check if the pin high or not { RelayWork();// if the pin is high turn on the 继电器 Serial.println("Motion Detected!"); // print Motion Detected! on the serial monitor window } else { digitalWrite(pinRelay, LOW);//输出LOW电平,继电器模块断开 Serial.println("Motion Ended!"); // print Motion Ended! on the serial monitor window } delay(100); //延时100毫秒 }代码2 #include <Wire.h> #include <Adafruit_SSD1306.h> #include <Adafruit_GFX.h> #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); const int sensorPin = A0; // 水位传感器输入引脚 int sensorValue = 0; // 水位传感器读数 int waterLevel = 0; // 水位高度,0-100% void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.display(); delay(1000); display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); } void loop() { sensorValue = analogRead(sensorPin); waterLevel = sensorValue * 100 / 1023; // 将读数转换为百分比 display.setCursor(0, 0); display.print("Water level: "); display.print(waterLevel); display.println("%"); display.display(); delay(1000); display.clearDisplay(); }
时间: 2024-02-06 20:03:36 浏览: 119
以下是合并后的代码:
```c++
int IRSensor = 9;
int pinRelay = 8;
const int sensorPin = A0;
int sensorValue = 0;
int waterLevel = 0;
void RelayWork() {
digitalWrite(pinRelay, HIGH);
delay(4000);
digitalWrite(pinRelay, LOW);
}
void setup() {
pinMode(IRSensor, INPUT);
pinMode(pinRelay, OUTPUT);
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(1000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
}
void loop() {
int sensorStatus = digitalRead(IRSensor);
sensorValue = analogRead(sensorPin);
waterLevel = sensorValue * 100 / 1023;
if (sensorStatus == 1) {
RelayWork();
Serial.println("Motion Detected!");
} else {
Serial.println("Motion Ended!");
}
display.setCursor(0, 0);
display.print("Water level: ");
display.print(waterLevel);
display.println("%");
display.display();
delay(1000);
display.clearDisplay();
}
```
现在,你可以在同一个 Arduino 程序中同时监测水位和红外传感器,根据传感器的读数控制继电器的开闭。
阅读全文