// 定义霍尔传感器和按钮的引脚
const int hallSensorPin1 = 2; // 第一个霍尔传感器引脚连接到Arduino的数字引脚2
const int hallSensorPin2 = 3; // 第二个霍尔传感器引脚连接到Arduino的数字引脚3
const int buttonPin = 4; // 按钮引脚连接到Arduino的数字引脚4
// 定义电机控制引脚
const int motorPin1 = 5; // 电机引脚1连接到Arduino的数字引脚5
const int motorPin2 = 6; // 电机引脚2连接到Arduino的数字引脚6
// 定义电机控制引脚
const int motorPina1 = 7; // 电机引脚1连接到Arduino的数字引脚5
const int motorPina2 = 8; // 电机引脚2连接到Arduino的数字引脚6
void setup() {
// 初始化霍尔传感器和按钮的引脚
pinMode(hallSensorPin1, INPUT_PULLUP);
pinMode(hallSensorPin2, INPUT_PULLUP);
pinMode(LED_BUILTIN,OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // 使用内置上拉电阻
// 初始化电机控制引脚
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
digitalWrite(LED_BUILTIN,HIGH);
stopMotor();
}
void loop() {
// put your main code here, to run repeatedly:
if(digitalRead(buttonPin)==0){
forward();
}else if(digitalRead(hallSensorPin1)==0){
backward();
}else if(digitalRead(hallSensorPin2)== 0){
stopMotor();
}
}
void forward() {
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
}
void backward() {
digitalWrite(motorPina1, HIGH);
digitalWrite(motorPina2, LOW);
}
void stopMotor() {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPina1, LOW);
digitalWrite(motorPina2, LOW);
}