《开发实战指南上的小车库文件MotorCar》求助大神指点错误。小弟用VS2012开发
/*****************************MotorCar.h************************************************/
#ifndef MotorCar_H_
#define MotorCar_H_
#include <Arduino.h>
class MotorCar
{
private:
int _speedLeftPin;
int _speedRightPin;
int _dirLeftPin;
int _dirRightPin;
public:
MotorCar(int _slpin,int _dlpin,int _srpin,int _drpin);
void forward(int _speed);
void back(int _speed);
void turnLeft(int _speed);
void turnRight(int _speed);
void turnLeftOrigin(int _speed);
void turnRightOrigin(int _speed);
void stop();
};
#endif
/********************MotorCar.cpp************************************************/
#include "MotorCar.h"
/*******************************************************
MotorCar类构造函数
函数功能:定义用于控制直流电机的引脚
入口参数: _slpin,表示控制左边速度的引脚
_dlpin,表示控制左边方向的引脚
_srpin,表示控制右边速度的引脚
_drpin,表示控制右边方向的引脚
**********************************************************/
MotorCar::MotorCar(int _slpin,int _dlpin, int _srpin, int _drpin)
{
_speedLeftPin=_slpin;
_speedRightPin=_srpin;
_dirLeftPin=_dlpin;
_dirRightPin=_drpin;
pinMode(_speedLeftPin,OUTPUT);
pinMode(_speedRightPin,OUTPUT);
pinMode(_dirLeftPin,OUTPUT);
pinMode(_dirRightPin,OUTPUT);
}
/*********************************************************
forward函数————前进子函数
入口参数:_speed————前进速度,范围0~255
*********************************************************/
void MotorCar::forward(int _speed)
{
digitalWrite(_dirRightPin,HIGH);
digitalWrite(_dirLeftPin,HIGH);
analogWrite(_speedRightPin,_speed);
analogWrite(_speedLeftPin,_speed);
}
/********************************************************
back子函数——————后退函数
入口参数:_speed————后退速度,范围0~255
********************************************************/
void MotorCar::back(int _speed)
{
digitalWrite(_dirRightPin,LOW);
digitalWrite(_dirLeftPin,LOW);
analogWrite(_speedRightPin,_speed);
analogWrite(_speedLeftPin,_speed);
}
/*******************************************************
turnLeft子函数————左转函数
入口参数:_speed————速度,范围0~255
********************************************************/
void MotorCar::turnLeft(int _speed)
{
digitalWrite(_dirRightPin,LOW);
analogWrite(_speedRightPin,_speed);
analogWrite(_speedLeftPin,0);
}
/******************************************************
turnRight子函数————右转函数
入口参数:_speed————速度,范围0~255
*******************************************************/
void MotorCar::turnRight(int _speed)
{
digitalWrite(_dirLeftPin,LOW);
analogWrite(_speedRightPin,0);
analogWrite(_speedLeftPin,_speed);
}
/******************************************************
turnLeftOrigin子函数————原地左转函数
参数入口:_speed————范围0~255
********************************************************/
void MotorCar::turnLeftOrigin(int _speed)
{
digitalWrite(_dirRightPin,HIGH);
digitalWrite(_dirLeftPin,LOW);
analogWrite(_speedRightPin,_speed);
analogWrite(_speedLeftPin,_speed);
}
/******************************************************
turnRightOrigin子函数————原地右转函数
参数入口:_speed————范围0~255
********************************************************/
void MotorCar::turnRightOrigin(int _speed)
{
digitalWrite(_dirRightPin,LOW);
digitalWrite(_dirLeftPin,HIGH);
analogWrite(_speedRightPin,_speed);
analogWrite(_speedLeftPin,_speed);
}
/******************************************************
stop子函数————停止函数
参数入口:无
******************************************************/
void MotorCar::stop()
{
analogWrite(_speedRightPin,0);
analogWrite(_speedLeftPin,0);
}
/*********************************CAR.ino***********************************************/
#include <MotorCar.h>
#include <Arduino.h>
MotorCar Motor(5,4,6,7);
void setup()
{
/* add setup code here */
}
void loop()
{
Motor.forward(250);
delay (2000);
/* add main program code here */
}
/**********************************************************************************************/ |