|
发表于 2013-1-5 19:16:08
|
显示全部楼层
弘毅老师我用你上面的代码改了一下做成用过串口传W或者S来控制,您看这样对不对,接收到W应该是正转,接收到S应该是反转。
/*
* 步进电机跟随电位器旋转
* (或者其他传感器)使用0号模拟口输入
* 使用arduino IDE自带的Stepper.h库文件
*/
#include <Stepper.h>
// 这里设置步进电机旋转一圈是多少步
#define STEPS 100
// attached to设置步进电机的步数和引脚
Stepper stepper(STEPS, 2, 3, 4, 5);
// 定义变量用来存储历史读数
int previous = 0;
void setup()
{
// 设置电机每分钟的转速为90步
stepper.setSpeed(90);
}
//void loop()
//{
// 获取传感器读数
//int val = analogRead(0);
// 移动步数为当前读数减去历史读数
// stepper.step(val - previous);
// 保存历史读数
// previous = val;
void loop()
{
char speed; //小车的运动速度
int val;
while(1) //while的循环条件为1,即永远都循环{}里的内容
{ //while循环开始
if(Serial.available()) // ①Serial.available()表示判断串口COM是否接收到数据
{ //if开始
val=Serial.read();//②读取串行COM的数据,控制小车运动的命令
switch(val) //命令有多种情况,因而使用switch语句
{ // switch开始
case 'W': //第一种情况,前进,等于字符W
stepper.step(6);
break;
case 'S': //第二种情况,后退,等于字符S
|
|