Arduino小车有很多种,包括2个轮子,4个轮子。都有。
下面这个实例来做一个最基础的4轮小车,下面将说明各个功能和代码。
首先得先准备这样的一辆4个轮子的小车。
再选这样的一个扩展板:
电机控制板,直接可以放到Arduino上面就可以了,用这个扩展板使用直流电机控制4个马达。使用扩展板上的M1,M2控制前面2个轮转,M3,M4控制后面两个轮子。
使用fritzing基本布局如下图:
首先写一段测试程序,测试马达能否正常转动。
#include <AFMotor.h>
AF_DCMotor motor(1, MOTOR12_64KHZ);
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Motor test!");
motor.setSpeed(200); // set the speed to 200/255
Serial.print("forwards");
motor.run(FORWARD); // turn it on going forward
delay(1000);
Serial.print("backwards");
motor.run(BACKWARD); // turn it on going forward
delay(1000);
Serial.print("stop");
motor.run(RELEASE); // stopped
delay(1000);
}
void loop() {
}
下面的代码就是控制小车向前,向后,停止:
#include <AFMotor.h>
AF_DCMotor motor1(1, MOTOR12_64KHZ); // create motor #1, 64KHz pwm
AF_DCMotor motor2(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm
AF_DCMotor motor3(3, MOTOR34_1KHZ); // create motor #3, 1KHz pwm
AF_DCMotor motor4(4, MOTOR34_1KHZ); // create motor #4, 1KHz pwm
void setup()
{
Serial.begin(9600);//set up Serial library at 9600 bps
Serial.println("Motor test!");
MotorSpeed(200);
AllForward();
delay(1000);
AllBackward();
delay(1000);
AllStop();
delay(1000);
}
void loop() {
}
void MotorSpeed(int Speed)
{
motor1.setSpeed(Speed); // set the speed to 200 (255 max)
motor2.setSpeed(Speed);
motor3.setSpeed(Speed);
motor4.setSpeed(Speed);
}
void AllForward()
{
Serial.print("forward");
motor1.run(FORWARD); // turn it on going forward
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}
void AllBackward()
{
Serial.print("backward");
motor1.run(BACKWARD); // turn it on going forward
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
}
void AllStop()
{
Serial.print("stop");
motor1.run(RELEASE); // turn it on going forward
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)