程序的延时问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4741|回复: 2

[已解决] 程序的延时问题

[复制链接]
发表于 2013-9-12 14:47 | 显示全部楼层 |阅读模式
//主机程序
int button_open =4;//开关按钮连在数字端口4

char flag;//向从机发送灯的亮灭标志
void setup()
{
  pinMode(button_open, INPUT);

  Serial.begin(9600);//设置串行通信的波特率
}

void loop()
{
  //如果开灯按钮按下
  if( digitalRead(button_open)==LOW)
  {
    flag='a';
    Serial.print(flag);//向从机发送灯亮标志
  }
else
  {
    flag='b';
    Serial.print(flag);//向从机发送灯灭标志
  }
  delay(20);//延时,等待数据发送成功
}


//从机程序
int ledpin=9;//声明LED的数字接口编号
int val;//接受主机发来的LED灯状态标志
void setup()
{
  pinMode(ledpin,OUTPUT);//设置LED灯为输出
  digitalWrite(ledpin,HIGH);//初始化是LED灯熄灭
  Serial.begin(9600);//设置串行通信的波特率
}
void loop()
{
  if(Serial.available()>0) //查询串口有无数据
  {
        val=Serial.read();//读取主机发送的数据
        if(val=='a')//如果主机发送字符'a',则点亮LED
        {
          digitalWrite(ledpin,LOW);//LED点亮         
        }
        if(val=='b')//如果主机发送字符'b',则熄灭LED
        {
          digitalWrite(ledpin,HIGH);//LED熄灭           
        }
  }   
  //用APC220无限数传向上位机传数据不能太快
  //如果delay(40)会出问题
  delay(80);
}




 楼主| 发表于 2013-9-12 14:48 | 显示全部楼层
为什么我按下开关他要等几秒钟以后才会亮灯。熄灭的时候也是一样的。为什么会有延迟呢
发表于 2013-12-23 23:37 | 显示全部楼层
按下开关他要等几秒钟以后才会亮灯
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-4 03:34 , Processed in 0.071728 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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