#include <ESP32Servo.h> // 引入 ESP32 的舵机库,这个库允许你控制连接到ESP32开发板上的舵机
Servo myservo; // 创建一个名为myservo的Servo对象,用来控制单个舵机
// 定义震动传感器连接的数字引脚
const int vibrationPin = 23;
void setup() { // setup函数在程序开始时运行一次,用于初始化设置
Serial.begin(115200); // 初始化串口通信,波特率设为115200,这是与电脑进行串行通信的速度
myservo.attach(13); // 将myservo对象连接到数字引脚13上,这意味着舵机会从该引脚接收信号
Serial.println("Setup done!"); // 通过串口发送一条消息"Setup done!",表明setup已经完成
pinMode(vibrationPin, INPUT);// 设置震动传感器的引脚为输入模式
}
void loop() { // loop函数会不断重复执行,直到断电或重启
// 读取震动传感器的状态
int sensorState = digitalRead(vibrationPin); // 这里是关键的一行
Serial.println(sensorState);//调试 引脚返回 0=假=LOW=底 1=真=高=HIGH
/*
函数返回值可以是HIGH(高电平,通常对应5V或3.3V,具体取决于Arduino板)或LOW(低电平,通常接地,即0V)。
当SW-420传感器没有检测到震动时,sensorState将等于LOW;当检测到震动时,sensorState将等于HIGH
*/
// 检查是否检测到了震动
if (sensorState == HIGH) {
// 如果检测到了震动,打印信息到串口监视器
Serial.println("震动被检测到!");
}
// 等待一段时间后再次检查
delay(100); // 可以根据需要调整这个延时
}
void duoji(){
myservo.write(0); // 同样将舵机设置到0度
delay(10000); // 延时10秒,保持在0度的位置
Serial.println("10s 0<"); // 发送消息"10s 0<"到串口监视器,表示舵机在0度停留了10秒
// 设置舵机角度为180度
myservo.write(280); // 这里有一个错误,舵机的角度范围通常是0到180度,所以应该是myservo.write(180);
delay(15000); // 再次延时15秒,保持在设定的角度
Serial.println("15s 180<"); // 发送消息"15s 180<"到串口监视器,表示舵机在180度停留了15秒
}