#ifndef EMoto_h
#define EMoto_h
class EMoto
{
private:
int_leftFrontPin; //定义左边电机前进针脚
int_leftBackPin; //定义左边电机后退针脚
int_rightFrontPin; //定义右边电机前进针脚
int_rightBackPin; //定义右边电机后退针脚
int_speedLeftValue; //定义左边电机转速值
int_speedRightValue; //定义右边电机转速值
public:
EMoto(int_lfPin,int _lbPin,int _rfPin,int _rbPin);
voidForward(int _speedLeftValue,int _speedRightValue); //前进
voidBack(int _speedLeftValue,int _speedRightValue); //后退
voidTurnLeft(int _speedRightValue); //左转
voidTurnRight(int _speedLeftValue); //右转
voidTurnLeftOrigin(int _speedLeftValue,int _speedRightValue); //原地左转
voidTurnRightOrigin(int _speedLeftValue,int _speedRightValue); //原地右转
voidEStop(); //停止
voidLStop(); //定义左边电机停转
voidRStop(); //定义右边电机停转
voidSetSpeedLeftFront(int _speedLeftValue); //设置左边电机正转转速
voidSetSpeedLeftBack(int _speedLeftValue); //设置左边电机反转转速
voidSetSpeedRightFront(int _speedRightValue); //设置右边电机正转转速
voidSetSpeedRightBack(int _speedRightValue); //设置右边电机反转转速
voidSetSpeedFront(int _speedLeftValue,int _speedRightValue); //设置两个电机正转转速
voidSetSpeedBack(int _speedLeftValue,int _speedRightValue); //设置两个电机反转转速
};
#endif
#include "EMoto.h"
#include "Arduino.h"
//EMoto类构造函数
EMoto::EMoto(int _lfPin,int _lbPin,int _rfPin,int_rbPin)
{
_leftFrontPin =_lfPin;
_leftBackPin =_lbPin;
_rightFrontPin =_rfPin;
_rightBackPin =_rbPin;
pinMode(_leftFrontPin,OUTPUT);
pinMode(_leftBackPin,OUTPUT);
pinMode(_rightFrontPin,OUTPUT);
pinMode(_rightBackPin,OUTPUT);
EStop();
}
//前进子函数--左、右电机正转
void EMoto::Forward(int speedVal1,int speedVal2)
{
EStop();
SetSpeedFront(speedVal1,speedVal2);
}
//后退子函数--左、右电机反转
void EMoto::Back(int speedVal1,int speedVal2)
{
EStop();
SetSpeedBack(speedVal1,speedVal2);
}
//左转
void EMoto::TurnLeft(int speedVal)
{
EStop();
SetSpeedRightFront(speedVal);
}
//右转
void EMoto::TurnRight(int speedVal)
{
EStop();
SetSpeedLeftFront(speedVal);
}
//原地左转
void EMoto::TurnLeftOrigin(int speedVal1,int speedVal2)
{
EStop();
SetSpeedRightFront(speedVal1);
SetSpeedLeftBack(speedVal2);
}
//原地右转
void EMoto::TurnRightOrigin(int speedVal1,int speedVal2)
{
EStop();
SetSpeedLeftFront(speedVal1);
SetSpeedRightBack(speedVal2);
}
//停车
void EMoto::EStop()
{
RStop();
LStop();
}
//左边电机停转
void EMoto::LStop()
{
digitalWrite(_leftFrontPin,LOW);
digitalWrite(_leftBackPin,LOW);
}
//右边电机停转
void EMoto::RStop()
{
digitalWrite(_rightFrontPin,LOW);
digitalWrite(_rightBackPin,LOW);
}
//输出PWM信号
void EMoto::SetSpeedLeftFront(int speedVal)
{
_speedLeftValue = speedVal;
analogWrite(_leftFrontPin,_speedLeftValue);
}
void EMoto::SetSpeedLeftBack(int speedVal)
{
_speedLeftValue = speedVal;
analogWrite(_leftBackPin,_speedLeftValue);
}
void EMoto::SetSpeedRightFront(int speedVal)
{
_speedRightValue = speedVal;
analogWrite(_rightFrontPin,_speedRightValue);
}
void EMoto::SetSpeedRightBack(int speedVal)
{
_speedRightValue = speedVal;
analogWrite(_rightBackPin,_speedRightValue);
}
void EMoto::SetSpeedFront(int speedVal1,int speedVal2)
{
_speedLeftValue = speedVal1;
_speedRightValue = speedVal2;
analogWrite(_leftFrontPin,_speedLeftValue);
analogWrite(_rightFrontPin,_speedRightValue);
}
void EMoto::SetSpeedBack(int speedVal1,int speedVal2)
{
_speedLeftValue = speedVal1;
_speedRightValue = speedVal2;
analogWrite(_leftBackPin,_speedLeftValue);
analogWrite(_rightBackPin,_speedRightValue);
}
#######################################
# Syntax Coloring Map For EMoto
#######################################
#######################################
# Datatypes (KEYWORD1) 数据类型关键字
#######################################
EMoto KEYWORD1
#######################################
# Methods and Functions (KEYWORD2) 方法类型关键字
#######################################
Forward KEYWORD2
Back KEYWORD2
TurnLeft KEYWORD2
TurnRight KEYWORD2
TurnLeftOrigin KEYWORD2
BackTurnRightOrigin KEYWORD2
EStop KEYWORD2