首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

My Arduino vol 五 — 面向对象地编写“圆梦小车”程序 -电机

2012-07-27 
My Arduino vol 5 — 面向对象地编写“圆梦小车”程序 -电机辞职得空,最近主要是看杂七杂八的书为主。前日看到

My Arduino vol 5 — 面向对象地编写“圆梦小车”程序 -电机

辞职得空,最近主要是看杂七杂八的书为主。前日看到“嵌入式之梦”的BOSS在微博上亮了一下。就想到了随车附送的那段arduino演示程序。我觉得大部分初学者应该都看的好痛苦吧= =。

既然arduino支持c++,我也就以我业余的c++水平写上一段小小的教程望抛砖引雨吧。

?

阅读本文需要的基本知识:H桥电路基本作用,Arduino开发的基本环境。

?

第一章 让马达动起来基本电路及说明

小车的动力装置主要是两侧的两个大轮子,分别是用独立的H桥构建出来的。

分别引出3只脚:CT1,CT2,CT3

CT1:PWM信号输入脚,你可以认为这是油门。

CT2,CT3:两路高低输入,可以让电机正转反转和不转,你可以认为这是自动排挡。

我们枚举一下所有信号输入和其对应的行动状态。这里都只先考虑一侧电机的运动状态。

?

表1-控制电路输入值与电机工作状态

Ct1Ct2Ct3状态X00刹车PWM10正转PWM01反转011滑行111刹车

通过表格我们得出一侧电机的运动状态也只有4种,刹车,正转,反转,滑行,刹车。

?

建模及分析

面向对象中建模很重要的两个概念是“属性”和“行为”。通过上面的分析,现在的电机的属性只有3路输入电路,行为就是4种运动状态。

类名Motor(马达)属性ct1,ct2,ct3行为forward
stop
backward
neutral(滑行,空挡)

?

转换为C++的代码的类定义为:

#include <Motor.h>//初始化马达//这里使用的是9,8,7三个脚const int L_CT1 = 9;const int L_CT2 = 8;const int L_CT3 = 7;//通过构造函数初始化Motor leftMotor(L_CT1, L_CT2, L_CT3);void setup() {}void loop{//模式改为前进,速度100leftMotor.forward();leftMotor.setSpeed(100);delay(1000);//模式改为停止leftMotor.stop();leftMotor.setSpeed(0);//模式改为后退,速度为50leftMotor.backward();leftMotor.setSpeed(100);delay(1000);}
?

OK,基本上电机部分已经编码完成。虽然有些地方还可以继续修改。下一篇,我将会将两个电机作为整体来描述小车的动力部分编码。

?

热点排行