这两个程序有什么区别?请指教-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 414|回复: 2

[未解决] 这两个程序有什么区别?请指教

[复制链接]
发表于 2022-4-26 15:12 | 显示全部楼层 |阅读模式
我制作一个光控LED灯,编了个程序,前面那个执行不对,后面那个能执行成功,看不懂为什么,不知道两个有什么区别,请大佬指导下,谢谢?端口3接的光敏电阻模块,端口2接的LED灯
1.png
2.png
发表于 2022-4-26 18:01 | 显示全部楼层
本帖最后由 topdog 于 2022-4-26 22:54 编辑

光敏电阻(Light-Dependent Resistor/LDR or Photoresistor)是用硫化隔或硒化隔等半导体材料制成的特殊电阻,其工作原理是基于内光电效应。光照愈强,阻值就愈低,随着光照强度的升高,电阻值迅速降低,亮电阻值可小至1KΩ以下。光敏电阻对光线十分敏感,其在无光照时,呈高阻状态,暗电阻一般可达1.5MΩ。
通过光敏电阻可以有两种方案,当环境光照低于设定值时一直打开led灯,或者led随环境亮度成反比,即用PWM功能实现。
方案一:

方案1.JPG



方案二:
方案2.JPG


你的方案分析:

gx是布尔数值取值为:真(true),假( false);
数字管脚3的值取值为: 高电平,即 1,低电平 即 0;

你的方案一:
直接赋值,就是在void setup执行一次,如果开始时是低电平,那么条件不成熟就不会出现期待的效果了。
你的方案二:
先声明gx,程序开辟了存储空间,并赋值为0;这是由编译器完成的。
第二次对gx赋值,那么这个就是在void loop中局部变量赋值了。

你可以从模块选项转到代码选项看看文字的变化。

if 判断 gx == HIGH ;不会报错,但是右面应该是true 。这样才规范。




 楼主| 发表于 2022-4-28 09:17 | 显示全部楼层
topdog 发表于 2022-4-26 18:01
光敏电阻(Light-Dependent Resistor/LDR or Photoresistor)是用硫化隔或硒化隔等半导体材料制成的特殊电 ...

懂了,感谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 08:41 , Processed in 0.275448 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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