查看: 2238|回复: 5

人体感应灯的疑问。

[复制链接]

该用户从未签到

发表于 2018-2-23 19:22 | 显示全部楼层 |阅读模式
while (!digitalRead(PIRpin) )
  {
  }
  // 将灯打开10秒,然后关闭
  Serial.println("turn on");
  digitalWrite(RELAYpin, HIGH);
  delay(2000);
  digitalWrite(RELAYpin, LOW);
  Serial.println("turn off");

请问!digitalRead(PIRpin)语句中,!起什么作用?
while语句中执行的命令放到{}里面行不行?如下
while (!digitalRead(PIRpin) )
  { // 将灯打开10秒,然后关闭
  Serial.println("turn on");
  digitalWrite(RELAYpin, HIGH);
  delay(2000);
  digitalWrite(RELAYpin, LOW);
  Serial.println("turn off");
  }


  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2018-2-23 22:07 | 显示全部楼层
    !取反
    !true==false
    如果以上内容对你有帮助,你可以通过打赏支持作者

    1人打赏

  • TA的每日心情
    难过
    2018-9-3 08:56
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2018-2-23 23:23 | 显示全部楼层
    这里的!是取反的意思,假如你读到的端口值是1那么while (!digitalRead(PIRpin) ),条件就是假跳过大括号里面的内容直接执行后面的语句
    相反,读到0,取反后就是1,条件为真,一直执行{},直到条件是假

    该用户从未签到

     楼主| 发表于 2018-2-24 08:38 | 显示全部楼层
    太感谢了!实验效果总是反着,终于找到原因了。
  • TA的每日心情
    奋斗
    2018-3-16 19:36
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-3-15 11:27 | 显示全部楼层
    dxin7662 发表于 2018-2-24 08:38
    太感谢了!实验效果总是反着,终于找到原因了。

    你的效果是什么样的?我也在测试这个
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    体验OneNET4.0,一起来拼开发板
    体验OneNET4.0,一起来拼
    一、 活动时间2019年04月09日-2019年6月30日 二、活动链接1.登录Arduino中文社区账
    用电阻式压力传感器(SEN0294)做一个简单的杯垫
    用电阻式压力传感器(SEN0
    “多喝开水”这句话在目前似乎已经成了一种戏谑的玩笑话,可是多喝水还是很有好处
    Arduino接欧姆龙编码器
    Arduino接欧姆龙编码器
    请问各位该欧姆龙的编码器如何接到arduino上,我需要接收此编码器脉冲计算电机走的
    教你如何自制一款遥控器,让你的项目变成遥控的!!!
    教你如何自制一款遥控器,
    自从上次制作了一块集成了电机驱动的最小板之后,我就发现现在市场上一块便宜且功能又
    新人有偿求助。。关于DS18B20温度传感器代码烧录时的错误
    新人有偿求助。。关于DS18
    我在学习DS18B20温度传感器时由于使用的是wifiduino出现了以下错误,求大佬指教[/bac
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表