arduino循迹小车代码调速
时间: 2023-09-08 21:09:21 浏览: 70
以下是一个简单的循迹小车代码,其中包含了调速功能:
```C++
int leftMotor = 5; // 左电机引脚
int rightMotor = 6; // 右电机引脚
int leftSensor = 2; // 左循迹传感器引脚
int rightSensor = 3; // 右循迹传感器引脚
int speed = 100; // 初始速度
void setup() {
pinMode(leftMotor, OUTPUT);
pinMode(rightMotor, OUTPUT);
pinMode(leftSensor, INPUT);
pinMode(rightSensor, INPUT);
}
void loop() {
// 如果左右均检测到黑线,直走
if (digitalRead(leftSensor) == LOW && digitalRead(rightSensor) == LOW) {
analogWrite(leftMotor, speed);
analogWrite(rightMotor, speed);
}
// 如果左边检测到黑线,向右转
else if (digitalRead(leftSensor) == LOW) {
analogWrite(leftMotor, speed / 2);
analogWrite(rightMotor, speed);
}
// 如果右边检测到黑线,向左转
else if (digitalRead(rightSensor) == LOW) {
analogWrite(leftMotor, speed);
analogWrite(rightMotor, speed / 2);
}
// 如果左右均未检测到黑线,停车
else {
analogWrite(leftMotor, 0);
analogWrite(rightMotor, 0);
}
}
// 通过串口监视器调整速度
void serialEvent() {
String input = Serial.readStringUntil('\n');
int newSpeed = input.toInt();
if (newSpeed > 0 && newSpeed <= 255) {
speed = newSpeed;
}
}
```
在上面的代码中,我们使用 `analogWrite()` 函数来控制电机的转速,而不是使用 `digitalWrite()` 函数,这样可以实现电机的调速功能。在 `setup()` 函数中,我们将左右电机和循迹传感器的引脚声明为输出和输入。在 `loop()` 函数中,我们使用 `digitalRead()` 函数来读取循迹传感器的值,根据传感器的值控制小车的运动方向和速度。最后,我们使用 `serialEvent()` 函数通过串口监视器来调整小车的速度,只需要将一个介于 0 到 255 之间的数字发送到串口,小车的速度就会相应地改变。