两个输出端同时有不同的控制问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2358|回复: 3

[未解决] 两个输出端同时有不同的控制问题

[复制链接]
发表于 2021-5-20 11:22 | 显示全部楼层 |阅读模式
菜鸟问题:我的Arduino是UNO R3板。数字5端输出高电平350毫秒期间的第300毫秒,数字3端由低电平变成高电平并持续50毫秒。二者在350毫秒处同时回到低电平。我是老菜,想着数字5端在delay(350)一句,这期间是无法去执行数字3端的控制语句的。请各位耐心讲讲解决办法。谢谢!
 楼主| 发表于 2021-5-20 18:54 来自手机 | 显示全部楼层
没人能解答吗?如果Uno R3做不到请告诉我。
发表于 2021-5-20 22:13 | 显示全部楼层
mcdyess2 发表于 2021-5-20 18:54
没人能解答吗?如果Uno R3做不到请告诉我。

不是 UNO 做不到,是 delay(350) 這種寫法就做不到

解決方法有兩種:
1,你都知道 D5 的 350ms HIGH,在第 300ms 時
  D3 要轉為 HIGH,經過 50ms 後一同轉為 LOW,
  那程式不妨這麼寫:
digitalWrite( 5, HIGH );
delay ( 300 );
digitalWrite( 3, HIGH );
delay ( 50 );
digitalWrite( 3, LOW );
digitalWrite( 5, LOW );
2.你可以使用 millis() 持續取得系統時間來判斷
  D5、D3 何時該 HIGH 何時該 LOW


 楼主| 发表于 2021-5-21 08:36 | 显示全部楼层
shouzama 发表于 2021-5-20 22:13
不是 UNO 做不到,是 delay(350) 這種寫法就做不到

解決方法有兩種:

非常感谢。你的程序完全满足我目前的需求。但今天研究了多线程,想用Scoop再试试,将来项目人兴许又有新的要求。

再次感谢。第一次上这个论坛,也不知道怎么给分。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 05:50 , Processed in 0.070933 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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