Arduino接收到光电开关收信号后控制多个伺服电机和减速电机的代码
时间: 2024-05-10 16:15:29 浏览: 103
以下是一个示例代码,用于控制多个伺服电机和减速电机,其中光电开关被连接到Arduino的数字引脚2:
```
#include <Servo.h>
// 定义伺服电机和减速电机的引脚
Servo servo1;
Servo servo2;
int motorPin1 = 3;
int motorPin2 = 5;
// 定义光电开关的引脚
int switchPin = 2;
// 定义电机的速度
int motorSpeed = 100;
void setup() {
// 初始化伺服电机和减速电机
servo1.attach(9);
servo2.attach(10);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
// 初始化光电开关
pinMode(switchPin, INPUT);
// 初始化串口通信
Serial.begin(9600);
}
void loop() {
// 读取光电开关的状态
int switchState = digitalRead(switchPin);
// 如果光电开关被触发,控制电机的运动
if (switchState == HIGH) {
// 向前运动
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
servo1.write(0);
servo2.write(180);
delay(1000);
// 停止
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
servo1.write(90);
servo2.write(90);
delay(1000);
// 向后运动
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
servo1.write(180);
servo2.write(0);
delay(1000);
// 停止
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
servo1.write(90);
servo2.write(90);
delay(1000);
}
// 输出调试信息
Serial.println("Switch State: " + String(switchState));
}
```
请注意,此代码仅为示例代码,需要根据您的具体硬件连接和需求进行修改。例如,您需要根据实际情况调整电机的引脚和速度,并根据需要添加更多的电机控制代码。
阅读全文