小白求助 , 点亮led灯最简单的for循环不好用-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2773|回复: 4

[已解决] 小白求助, 点亮led灯最简单的for循环不好用

[复制链接]
发表于 2020-12-14 16:48 | 显示全部楼层 |阅读模式
本帖最后由 00vivi 于 2020-12-14 17:08 编辑

微信图片_20201214170418.jpg 微信图片_20201214170652.jpg
书中例子错误
用for循环不行, 现象是先亮第一个灯, 熄灭后再亮第六个灯, 其他灯没有反应.
用注释掉的代码是可以挨个点亮的, 硬件连接应该都没问题
  1. void loop()
  2. {
  3.   unsigned char j;
  4.   for (j = 1; j = 6; j++)
  5.   {
  6.     digitalWrite(j, HIGH);
  7.     delay(1000);
  8.   }
  9.   //  digitalWrite(1, HIGH);
  10.   //  delay(1000);
  11.   //  digitalWrite(2, HIGH);
  12.   //  delay(1000);
  13.   //  digitalWrite(3, HIGH);
  14.   //  delay(1000);
  15.   //  digitalWrite(4, HIGH);
  16.   //  delay(1000);
  17.   //  digitalWrite(5, HIGH);
  18.   //  delay(1000);
  19.   //  digitalWrite(6, HIGH);
  20.   //  delay(1000);
  21. }
复制代码













发表于 2020-12-14 16:58 | 显示全部楼层
代码写错了,for循环中将j=6改为 j<=6,或j<7
for (j = 1; j <= 6; j++)
  {
    digitalWrite(j, HIGH);
    delay(1000);
  }
 楼主| 发表于 2020-12-14 17:04 | 显示全部楼层
Arya 发表于 2020-12-14 16:58
代码写错了,for循环中将j=6改为 j

解决了, 谢谢老哥! 我这还是比着书上写的, 郁闷了好几天, 这书也太坑人了
发表于 2020-12-14 17:24 | 显示全部楼层
00vivi 发表于 2020-12-14 17:04
解决了, 谢谢老哥! 我这还是比着书上写的, 郁闷了好几天, 这书也太坑人了

。。。。。。
虽然很无语,但是蛮搞笑!!!
希望它没给你留下心理阴影,让你时时刻刻怀疑他代码是不是有问题
发表于 2020-12-15 01:31 | 显示全部楼层


建議 I/O 夠的話還是養成不佔用 D1/TX 的習慣,免得程序用 USB
+BOOTLOADER 上傳時可能受應用回路干擾而出錯

至於程序內容嘛...
int LED1 = 1; ~ int LED6 = 6; 這些全都沒用到,可以先加上 //
列為註解

unsigned char j;    這樣宣告有比較好嗎?
我的習慣是給區域變數的同時進行宣告,例如:
for ( int j=1;  j<=6; j++)

同前面的網友所說要用<= 才對;另一個 for 就是用 >= 才對
for( int j=6; j>=1; j-- )


校稿人員太混了...


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-29 17:23 , Processed in 0.076672 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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