完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用Arduino编写ESP8266程序,定义某个IO为输入,另一个为输出,为何没效果
以下是代码: #define PIN_LED 16 #define PIN_IN 5 void setup() { pinMode(PIN_LED, OUTPUT); //输出模式 pinMode(PIN_IN, INPUT); //输入模式 digitalWrite(PIN_LED,HIGH); //LED默认关闭 } void loop() { digitalRead(PIN_IN); if(PIN_IN) { digitalWrite(PIN_LED, LOW); //打开LED } else { digitalWrite(PIN_LED, HIGH); //关闭LED } } 上电后灯就常亮,给4脚置低后,灯依然亮着。模块是安信可的ESP-12F。请各位大佬指教。(4脚已经接了上拉) |
|
相关推荐
1个回答
|
|
根据您提供的代码片段,我将为您分析可能的问题,并提供一些建议来解决这个问题。
首先,让我们看一下您的代码: ```cpp #define PIN_LED 16 #define PIN_IN 5 void setup() { pinMode(PIN_LED, OUTPUT); digitalWrite(PIN_LED, HIGH); // LED默认关闭 pinMode(PIN_IN, INPUT); } void loop() { digitalRead(PIN_IN); if(PIN_IN) { digitalWrite(PIN_LED, HIGH); } else { digitalWrite(PIN_LED, LOW); } } ``` 问题1:在`setup()`函数中,您首先设置了`PIN_LED`为输出模式,然后将其设置为高电平。接着,您设置了`PIN_IN`为输入模式。但是,您在设置`PIN_IN`为输入模式之前已经读取了它的状态。这可能导致`PIN_IN`的初始状态不正确。 解决方案:在`setup()`函数中,先设置`PIN_IN`为输入模式,然后再设置`PIN_LED`为输出模式。 修改后的`setup()`函数: ```cpp void setup() { pinMode(PIN_IN, INPUT); pinMode(PIN_LED, OUTPUT); digitalWrite(PIN_LED, HIGH); // LED默认关闭 } ``` 问题2:在`loop()`函数中,您使用了`if(PIN_IN)`来判断`PIN_IN`的值。但是,`PIN_IN`是一个宏定义,而不是一个变量。您应该使用`digitalRead(PIN_IN)`来获取实际的输入值。 解决方案:使用`digitalRead(PIN_IN)`来获取`PIN_IN`的值,并用它来判断条件。 修改后的`loop()`函数: ```cpp void loop() { int inputValue = digitalRead(PIN_IN); if(inputValue == HIGH) { digitalWrite(PIN_LED, HIGH); } else { digitalWrite(PIN_LED, LOW); } } ``` 综上所述,以下是修改后的完整代码: ```cpp #define PIN_LED 16 #define PIN_IN 5 void setup() { pinMode(PIN_IN, INPUT); pinMode(PIN_LED, OUTPUT); digitalWrite(PIN_LED, HIGH); // LED默认关闭 } void loop() { int inputValue = digitalRead(PIN_IN); if(inputValue == HIGH) { digitalWrite(PIN_LED, HIGH); } else { digitalWrite(PIN_LED, LOW); } } ``` 这个代码应该可以正常工作,将LED的状态与`PIN_IN`的输入状态同步。如果仍然没有效果,请检查硬件连接是否正确,以及ESP8266模块是否正常工作。 |
|
|
|
只有小组成员才能发言,加入小组>>
171个成员聚集在这个小组
加入小组420 浏览 1 评论
1274 浏览 1 评论
596浏览 6评论
490浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
478浏览 5评论
474浏览 4评论
460浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-8 05:57 , Processed in 0.712310 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号