查看: 454|回复: 8

[已解决] 小白求助 用光敏电阻控制4个LED

[复制链接]
  • TA的每日心情
    难过
    2020-11-9 13:44
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-10-26 00:01 | 显示全部楼层 |阅读模式
    本帖最后由 eobeom 于 2020-10-29 17:11 编辑

    用光敏电阻控制4个led 抓住光敏电阻时led依次亮 放手的时候依次熄灭 请问应该怎么写
    我只写了下面这些 也不知道对不对 麻烦了谢谢
    1. int pin_LED[]={2,3,4,5};

    2. void setup() {
    3.   Serial.begin(9600);
    4.   for (int i =0;i<4;i++){
    5.     pinMode(pin_LED[i],OUTPUT);
    6.     digitalWrite(pin_LED[i],LOW);
    7.   }
    8. }

    9. void readIlluminance(){
    10.   int reading = analogRead(56);
    11.   if(reading <150){
    12.       digitalWrite(pin_LED[2],HIGH);
    13.   }else if{
    14.       digitalWrite(pin_LED[3],HIGH);
    15.   }else if{
    16.       digitalWrite(pin_LED[4],HIGH);
    17.   }else{
    18.       digitalWrite(pin_LED[5],HIGH);            
    19. }
    20. }
    21. void loop() {
    22.   readIlluminance();
    23.   delay(1000);
    24. }
    复制代码


  • TA的每日心情
    开心
    2020-11-29 00:07
  • 签到天数: 1327 天

    [LV.10]以坛为家III

    发表于 2020-10-26 08:47 | 显示全部楼层
    你这程序怕是没写完吧,自己编译过吗
  • TA的每日心情
    难过
    2020-11-9 13:44
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-10-26 09:27 | 显示全部楼层
    上海老王 发表于 2020-10-26 08:47
    你这程序怕是没写完吧,自己编译过吗

    我试了好多方法都编译不出来 我只能写到这种程度了

    该用户从未签到

    发表于 2020-10-26 09:57 | 显示全部楼层
    建议先在菜鸟教程系统学习一下C语言的基本语法,比如在这里你就有明显的语法错误。
    ①else if(逻辑表达式){执行语句},而不是像你这样没有逻辑表达式直接放执行语句。
    ② analogRead(56)中的56管口是否存在?我不太熟悉,希望你的板子上面有56这个管口吧。
    菜鸟教程的链接https://www.runoob.com/cprogramming/c-tutorial.html
    analogRead函数的说明https://wiki.arduino.cn/?file=002-%E6%A8%A1%E6%8B%9F%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA/001-analogRead
    ③请保证你的Analog判断值是正确的,程序中的150对应的电压应该是150*(5/1024)V。
  • TA的每日心情
    慵懒
    2020-10-25 09:38
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2020-10-27 20:42 | 显示全部楼层
    有很大的问题,1.你的if    else  if  语句使用错误,else if是需要条件语句的,基本语法要搞清楚,2.只写了灯亮,没写灯灭
  • TA的每日心情
    慵懒
    2020-10-25 09:38
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2020-10-27 20:51 | 显示全部楼层
    int pin_LED[]={2,3,4,5};

    void setup() {
      Serial.begin(9600);
      for (int i =0;i<4;i++){
        pinMode(pin_LED[i],OUTPUT);
        digitalWrite(pin_LED[i],LOW);
      }
    }

    void readIlluminance(){
      int reading = analogRead(56);
      if(reading <150){
    digitalWrite(pin_LED[2],LOW);
          digitalWrite(pin_LED[3],LOW);
          digitalWrite(pin_LED[4],LOW);
          digitalWrite(pin_LED[5],LOW);
    delay(1000);
    digitalWrite(pin_LED[2],HIGH);
    digitalWrite(pin_LED[3],LOW);
          digitalWrite(pin_LED[4],LOW);
          digitalWrite(pin_LED[5],LOW);
    delay(1000);
    digitalWrite(pin_LED[2],HIGH);
          digitalWrite(pin_LED[3],HIGH);
    digitalWrite(pin_LED[4],LOW);
          digitalWrite(pin_LED[5],LOW);
    delay(1000);
    digitalWrite(pin_LED[2],HIGH);
          digitalWrite(pin_LED[3],HIGH);
          digitalWrite(pin_LED[4],HIGH);
          digitalWrite(pin_LED[5],LOW);
          delay(1000);
          digitalWrite(pin_LED[2],HIGH);
          digitalWrite(pin_LED[3],HIGH);
          digitalWrite(pin_LED[4],HIGH);
          digitalWrite(pin_LED[5],HIGH);
    delay(1000);
      }
    else if(reading >900)
    {
          照着上边相反过程
      }
    }
    void loop() {
      readIlluminance();
      delay(1000);
    }
  • TA的每日心情
    开心
    2020-11-28 14:58
  • 签到天数: 358 天

    [LV.8]以坛为家I

    发表于 2020-10-28 22:53 | 显示全部楼层
    本帖最后由 topdog 于 2020-10-29 22:04 编辑

    const int pin[] = {2, 3, 4, 5};       //管脚按照1到4的顺序排列,形成一维数组。
    const int DelayTime = 300;      //控制闪烁的时间,太短观察不清楚。
    
    void setup()
    {
      pinMode(pin[0], OUTPUT);   //设置管脚输出模式
      pinMode(pin[1], OUTPUT);
      pinMode(pin[2], OUTPUT);
      pinMode(pin[3], OUTPUT);
    }
    void loop()
    {
      int reading = analogRead(A0);  //光敏电阻使用A0~A5测量模拟值
    
      if (reading < 150)
      {
        for (int i = 0; i < 3; i++) //按数组按顺序提取管脚
        {
          digitalWrite(pin[i], HIGH);
          delay(DelayTime);
        }
      }
      else
      {
        for (int i = 0; i < 3; i++)
        {
          digitalWrite(pin[i], LOW);
          delay(DelayTime);
        }
      }
    }

    该用户从未签到

    发表于 2020-10-29 09:36 | 显示全部楼层
    if语句明显不对,不管是if 还是else if 都是要带(条件)的,对if都不熟,说明其它语句也熟不到哪去,C语言重学吧,我也是断断续续重学C语言三四遍,才开始摸到一点皮毛,建议重学C,花不了多少时间。

    该用户从未签到

    发表于 2020-10-29 11:59 | 显示全部楼层
    没学会爬,就开始学跑步的节奏
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    【创客入门偏方】一起来造六轴机械臂(三) 配件收集篇
    【创客入门偏方】一起来造
    【创客入门偏方】一起来造六轴机械臂(二) 3D打印篇
    【创客入门偏方】一起来造
    【创客入门偏方】一起来造机械臂(一) 项目介绍篇
    【创客入门偏方】一起来造
    使用lcd屏幕和ds18b20测温度时程序编译错误
    使用lcd屏幕和ds18b20测温
    希望有大佬帮助一下刚入门的小萌新,真心求教!
    【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表