最近,开始接触Arduino
平台,我认为造轮子
的是提高代码能力的最有效的方式。
造轮子:简明来说就是重新实现已有的功能,以达到更高效、更稳定等的目的
以下程序例程来自太极创客官网,此平台的Arduino教程深入浅出,对于想学习Arduino的同学,首推太极创客团队。
以下便是今天练习的造轮子程序:
// Joy——MeArm
/*
MeArm机械臂控制程序
机械臂的控制有两种模式,分别为:
指令模式;在串口中输入格式为“ b90 ”的数据,控制“ base ”舵机运转到“ 90° ”位置;
按键模式:在串口中输入wsad/8456,控制机械臂的自由运动。
两种模式可以通过'm'字符切换。
*/
#include <Servo.h> //导入Servo库
Servo base, rArm, fArm, claw; //创建四个Servo对象
//存储电机极限值——使用const关键字
const int baseMIn = 0;
const int baseMax = 180;
const int rArmMIn = 45;
const int rArmMax = 180;
const int fArmMIn = 3;
const int fArmMax = 120;
const int clawMIn = 25;
const int clawMax = 100;
int DSD = 15; //DSD——Default Servo Delay
bool mode = true; //mode=1 指令模式 mode=0 按键模式
int moveStep = 3; //每一次按下按键 舵机的移动量
void setup() { //初始化内容包括:伺服电机连接PWM、伺服电机初始化、串口初始化
base.attach(11); //base 伺服舵机连接引脚11 舵机代号'b'
delay(200); //稳定性等待
rArm.attach(10); //rArm 伺服舵机连接引脚10 舵机代号'r'
delay(200); //稳定性等待
fArm.attach(9); //fArm 伺服舵机连接引脚9 舵机代号'f'
delay(200); //稳定性等待
claw.attach(6); //claw 伺服舵机连接引脚6 舵机代号'c'
delay(200); //稳定性等待
base.write(90);
delay(10);
rArm.write(90);
delay(10);
fArm.write(90);
delay(10);
claw.write(90);
delay(10);
Serial.begin(9600);
Serial.println("Ths is MeArm!");
}
void loop() { //反复读取串口数据
if (Serial.available()>0) { //如果串口有数据输入
char serialCmd = Serial.read();
if (mode) {
armData