Arduino调用自身串口监视器可以控制舵机转,用串口调试助手给舵机发送指令舵机不动
求解决方法#include <Servo.h>Servo myservox;//创建一个水平舵机控制对象
Servo myservoy; //竖直舵机
int posx=0;
int posy=0;
char c;
void setup()
{
myservox.attach(7); // shuiping 9jiao
myservoy.attach(8); // 该舵机由arduino第10脚控制
Serial.begin(9600);
myservox.write(0);
myservoy.write(0);
}
void loop()
{
if(Serial.available())
c=Serial.read();
switch(c)
{
case 'L': //left
while(posx>0&&posx<=180)
{
posx=posx-1;
myservox.write(posx);
delay(500);
break ;
}
case 'R': //right
while(posx>=0&&posx<180)
{
posx=posx+1;
myservoy.write(posx);
delay(500);
break;
}
case 'U': //up
// while(posy>=0&&posy<90)
// {
posy=posy+1;
myservoy.write(posy);
delay(500);
break;
// }
case 'D': //down
// while(posy>0&&posy<=90)
//{
posy=posy-1;
myservoy.write(posy);
delay(500);
break;
// }
Serial.print(c);
}
delay(100);
}
调用自身的串口监视器可以发送 L RD U等可以控制两个舵机转动 ,但是调用串口调试助手则不动 求大神解决方法 myservoy.attach(8); // 该舵机由arduino第10脚控制
明明是第8腳啊~~!! 串口助手用十六进制发送LRDU的ASCII码试试呢 TTTTTTT33 发表于 2013-8-6 18:04 static/image/common/back.gif
myservoy.attach(8); // 该舵机由arduino第10脚控制
明明是第8腳啊~~!!
注释无所谓的关键是程序 int posx=0;
int posy=0;
while(posx>0&&posx<=180)
posx=posx-1;
myservox.write(posx);
delay(500);
break ;
你觉得进得了循环吗? 拾瑞 发表于 2013-8-7 08:35 static/image/common/back.gif
int posx=0;
int posy=0;
while(posx>0&&posx
肯定是没进去 要不肯定舵机会动的 不过问题已经解决了 把while这个判断删掉就可以了 罹凝寒冰 发表于 2013-8-7 09:47 static/image/common/back.gif
肯定是没进去 要不肯定舵机会动的 不过问题已经解决了 把while这个判断删掉就可以了
仅仅是删掉这个While就可以了吗?楼主能贴最终的代码上来吗?
另外proteus可以仿真舵机吗? victory_6226 发表于 2013-8-7 11:57 static/image/common/back.gif
仅仅是删掉这个While就可以了吗?楼主能贴最终的代码上来吗?
另外proteus可以仿真舵机吗?
#include <Servo.h>
Servo myservox;//创建一个水平舵机控制对象
Servo myservoy; //竖直舵机
int posx=10;
int posy=10;
char c;
void setup()
{
myservox.attach(7); // shuiping 9jiao
myservoy.attach(10); // 该舵机由arduino第10脚控制
Serial.begin(9600);
myservox.write(10);
myservoy.write(10);
}
void loop()
{
if(Serial.available())
c=Serial.read();
switch(c)
{
case 'L': //left
// while(posx>0&&posx<=180)
//{
posx=posx-1;
myservox.write(posx);
delay(10);
break ;
//}
case 'R': //right
//while(posx>=0&&posx<180)
//{
posx=posx+1;
myservox.write(posx);
delay(10);
break;
//}
case 'D': //up
//while(posy>=0&&posy<90)
//{
posy=posy+1;
myservoy.write(posy);
delay(10);
break;
//}
case 'U': //down
//while(posy>0&&posy<=90)
//{
posy=posy-1;
myservoy.write(posy);
delay(10);
break;
//}
}
delay(100);
Serial.print(c);
}
就是这个 我不是用的仿真我用C#编写的界面 通过按钮控制arduino上的舵机
页:
[1]