Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti。
工程实训完成小车使用的是Arduino UNO
首先是需要安装Arduino IDE,可以到官网下载:
英文版:https://www.arduino.cc/en/Main/Software
中文版:http://www.arduino.org.cn/software
安装好后,就是实现小车的运动。工程实训的小车是有4个轮子也就是有4个电机。
设计方案:
1.左边的电机共用一个PWM波,右边的电机共用一个PWM波。
2.4个电机各自都有一个独有的PWM波。
我采用的是第一种方案,一边一个PWM波。
PWM波介绍:
官方文档:https://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM
PWM波有三种写法。
1.利用函数analogWrite
int pin = 8; //0~13 void setup() { pinMode(pin, OUTPUT); } void loop() { analogWrite(pin, 128); delay(500); }
这种方式产生的方波周期大概是20ms左右(50Hz),不需要占用额外的cpu命令时间。(这里的周期是官方文档给出的,并不知道如何计算出来)
2.自己手动实现PWM波
int pin = 38; //这个可以随意点 void setup() { pinMode(pin, OUTPUT); } void loop() { digitalWrite(pin, HIGH); delayMicroseconds(100); digitalWrite(pin, LOW); delayMicroseconds(1000 - 100); }
这份代码产生的PWM波什占空比为10%,周期为1ms(1kHz)的方波,但这种办法的优缺点明显:
1.PWM的比例可以更精确;
2.周期和频率可控制;
3.所有的pin脚都可以输出,不局限于那几个脚;
4.缺点:CPU干不了其他事情了。
3.利用PWM寄存器
这种方法一般用不上,而且也没理解清楚,所以可以直接参考官方文档或者另一篇博客:Arduino系列教程之PWM的秘密(下)
需要注意其中的_BV(COM2A1)表示的是COM2A的第1位为1也就是COM2A[1] = 1,也就是COM2A = 10.
其他只要仔细理解即可。