tb6612fng的arduino循迹小车代码
时间: 2023-05-17 08:00:26 浏览: 235
循迹小车是一种常见的机器人,它可以通过传感器检测地面上的黑线来进行行进和控制。而在循迹小车控制上,TB6612FNG是一个比较常用的H桥驱动器,它可以控制电机的转向和速度。以下是TB6612FNG的Arduino循迹小车代码。
首先需要引入TB6612FNG库,然后定义左右电机的引脚和电机转速变量,以及定义两个传感器引脚。
#include <TB6612FNG.h>
TB6612FNG motor(6, 5, 4, 10, 9, 8); //IN2, IN1, PWM1, IN4, IN3, PWM2
int Lspeed = 80; //左轮电机速度变量
int Rspeed = 80; //右轮电机速度变量
int LSensor = A0; //左侧传感器
int RSensor = A1; //右侧传感器
接下来是小车的初始化设置,包括电机的初始方向和速度。
void setup()
{
motor.begin();
motor.stop();
motor.setDriveMode(TB6612FNG::PHASE_STANDBY);
}
两个传感器的数据采集需要通过模拟输入的analogRead函数实现。当左侧传感器检测到黑线时,控制小车左侧电机停止运转,右侧电机以Lspeed的速度正向运转,使小车向左转。同理,当右侧传感器检测到黑线时,控制小车右侧电机停止运转,左侧电机以Rspeed的速度正向运转,使小车向右转。当两个传感器都没有检测到黑线时,两个电机均以Lspeed的速度正向运转,保持小车直行。
void loop()
{
int valueL = analogRead(LSensor);
int valueR = analogRead(RSensor);
if (valueL > 500 && valueR < 500) //左侧传感器检测到黑线
{
motor.stopMotorA();
motor.runMotorB(Rspeed, TB6612FNG::FORWARD);
}
else if (valueR > 500 && valueL < 500) //右侧传感器检测到黑线
{
motor.stopMotorB();
motor.runMotorA(Lspeed, TB6612FNG::FORWARD);
}
else //两侧传感器都没有检测到黑线
{
motor.run(Lspeed, TB6612FNG::FORWARD, Rspeed, TB6612FNG::FORWARD);
}
}
以上就是TB6612FNG的Arduino循迹小车代码,通过传感器检测黑线,控制左右电机的运转,实现小车的转向和直行。
阅读全文