小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 4099|回复: 8

想要在轉左或右時LED能閃

[复制链接]
发表于 2017-4-20 21:24:14 | 显示全部楼层 |阅读模式
如題,本來寫了個while循環讓左轉時左LED閃右轉時右LED閃
然而一但開始轉彎,車子就不斷向一個方向轉,停不下來了
應該如何才做到?
回复

使用道具 举报

发表于 2017-4-22 18:02:20 | 显示全部楼层
你的小车型号是哪款?发一个照片看看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-25 21:08:36 | 显示全部楼层
liuviking 发表于 2017-4-22 18:02
你的小车型号是哪款?发一个照片看看。

Arduino的,打算一個接口供一個LED
回复 支持 反对

使用道具 举报

发表于 2017-4-25 21:20:15 | 显示全部楼层
fatherchau 发表于 2017-4-25 21:08
Arduino的,打算一個接口供一個LED

发一下你加的那段代码,看看是怎样的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-25 21:39:52 | 显示全部楼层
liuviking 发表于 2017-4-25 21:20
发一下你加的那段代码,看看是怎样的

void Leftloop()
{
  LightFlag=1;
//  while(LightFlag==1){
    digitalWrite(led2, HIGH);
    delay(50);
    digitalWrite(led2, LOW);
    delay(50);
//  }
}

void Rightloop()
{
  LightFlag=1;
  //while(LightFlag==1){
    digitalWrite(led1, HIGH);
    delay(50);
    digitalWrite(led1, LOW);
    delay(50);
//  }
}
回复 支持 反对

使用道具 举报

发表于 2017-4-25 22:01:47 | 显示全部楼层
fatherchau 发表于 2017-4-25 21:39
void Leftloop()
{
  LightFlag=1;

然后在什么地方调用了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-25 22:05:57 | 显示全部楼层
liuviking 发表于 2017-4-25 22:01
然后在什么地方调用了?

這樣的
#define MOTOR_GO_FORWARD  {digitalWrite(INPUT1,LOW);digitalWrite(INPUT2,HIGH);digitalWrite(INPUT3,LOW);digitalWrite(INPUT4,HIGH);digitalWrite(led1, HIGH);digitalWrite(led2, HIGH);}
#define MOTOR_GO_BACK   {digitalWrite(INPUT1,HIGH);digitalWrite(INPUT2,LOW);digitalWrite(INPUT3,HIGH);digitalWrite(INPUT4,LOW);}
#define MOTOR_GO_RIGHT   {digitalWrite(INPUT1,HIGH);digitalWrite(INPUT2,LOW);digitalWrite(INPUT3,LOW);digitalWrite(INPUT4,HIGH);digitalWrite(led2, HIGH);Rightloop();}
#define MOTOR_GO_LEFT   {digitalWrite(INPUT1,LOW);digitalWrite(INPUT2,HIGH);digitalWrite(INPUT3,HIGH);digitalWrite(INPUT4,LOW);digitalWrite(led1, HIGH);Leftloop();}
#define MOTOR_GO_STOP   {digitalWrite(INPUT1,LOW);digitalWrite(INPUT2,LOW);digitalWrite(INPUT3,LOW);digitalWrite(INPUT4,LOW);digitalWrite(led1, LOW);digitalWrite(led2, LOW);}
回复 支持 反对

使用道具 举报

发表于 2017-4-26 10:44:41 | 显示全部楼层
fatherchau 发表于 2017-4-25 22:05
這樣的
#define MOTOR_GO_FORWARD  {digitalWrite(INPUT1,LOW);digitalWrite(INPUT2,HIGH);digitalWrite ...

建议你的延迟不要放到主循环里面执行,因为你在执行延迟函数的时候,如果又来了串口数据可能会混乱,建议放到中断函数里面去执行闪灯。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-26 11:56:44 | 显示全部楼层
本帖最后由 fatherchau 于 2017-4-26 12:49 编辑
liuviking 发表于 2017-4-26 10:44
建议你的延迟不要放到主循环里面执行,因为你在执行延迟函数的时候,如果又来了串口数据可能会混乱,建议 ...

抱歉,不太明白要怎樣改?現在的寫法就是無法停止循環

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-3-3 06:54 , Processed in 1.069578 second(s), 18 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表