類比值控制led亮燈數 問題-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6394|回复: 12

[已解决] 類比值控制led亮燈數 問題

[复制链接]
发表于 2014-7-7 16:50 | 显示全部楼层 |阅读模式
我是想運用可變電阻的類比值
以map函數來控制led的亮燈數目
可是怎麼有去無回
只有一開始轉過去有成功
往迴轉燈還亮著 = =
到底哪裡出了問題
{:soso_e134:}{:soso_e118:}{:soso_e115:}{:soso_e101:}






[mw_shl_code=c,true]#define NUM 5

int leds[NUM] = {
  2, 3, 4, 5, 6,
};


void setup() {               
for(int i = 0; i < NUM; i++){
   pinMode(leds, OUTPUT);
     pinMode(A1,INPUT);  
        Serial.begin(9600);
}
}


void loop() {

  int val = analogRead(A1);
  
   Serial.println(val);
   
  int i =  map(val,0,1023,2,6);
  
    digitalWrite(i,HIGH);
}
[/mw_shl_code]

发表于 2014-7-7 19:48 | 显示全部楼层
kobe58342 发表于 2014-7-7 19:45
謝謝你
終於成功了
有fb 還是 line嘛

fb在这边是被block的
line不用的

在大陆还是QQ、微信、新浪微博流行点
发表于 2014-7-7 18:42 | 显示全部楼层
代码不是已经告诉你了么
 楼主| 发表于 2014-7-7 19:09 | 显示全部楼层
.oο麽麽茶㊣ 发表于 2014-7-7 18:42
代码不是已经告诉你了么

用不出來ㄟ

有全部完整的代碼嗎??

sorry新手比較不會
发表于 2014-7-7 19:12 | 显示全部楼层
loop里面你只有把灯点亮(置HIGH),而在需要的时候没有灭掉它
 楼主| 发表于 2014-7-7 19:14 | 显示全部楼层
zhufu86 发表于 2014-7-7 19:12
loop里面你只有把灯点亮(置HIGH),而在需要的时候没有灭掉它

就是這個問題讓我想破了頭
還想不出答案
請問可以提供代碼嗎??
发表于 2014-7-7 19:22 | 显示全部楼层
本帖最后由 zhufu86 于 2014-7-7 19:27 编辑

我大概修改了一下,未测试

[mw_shl_code=cpp,true]#define NUM 5

int leds[NUM] = { 2, 3, 4, 5, 6 };


void setup()
{               
    for(int i = 0; i < NUM; i++)
    {
        pinMode(leds, OUTPUT);
    }

    pinMode(A1,INPUT);  
    Serial.begin(9600);
}


void loop()
{
    int val = analogRead(A1);

    Serial.println(val);

    int i =  map(val,0,1023,0,4);
   
    for(int j=0;j<=i;j++)
    {
        digitalWrite(leds[j],HIGH);   // 把0到i之间的LED都点亮
    }
   
    for(int j=i+1;j<=NUM-1;j++)
    {
        digitalWrite(leds[j],
LOW);    // 把i+1到4(NUM-1)之间的LED都点亮之间的LED都熄灭
    }
}[/mw_shl_code]

 楼主| 发表于 2014-7-7 19:25 | 显示全部楼层
zhufu86 发表于 2014-7-7 19:22
我大概修改了一下,未测试

[mw_shl_code=cpp,true]#define NUM 5

很遺憾的
似乎不行
不過謝謝你的解答
我會再從你提供的代碼再去做修改^^
发表于 2014-7-7 19:26 | 显示全部楼层
kobe58342 发表于 2014-7-7 19:25
很遺憾的
似乎不行
不過謝謝你的解答

我刚才代码敲错,你再试试?
发表于 2014-7-7 19:29 | 显示全部楼层
本帖最后由 zhufu86 于 2014-7-7 19:31 编辑

贴出的代码还是有问题,重贴一下

[mw_shl_code=c,true]#define NUM 5

int leds[NUM] = { 2, 3, 4, 5, 6 };


void setup()
{               
    for(int i = 0; i < NUM; i++)
    {
        pinMode(leds, OUTPUT);
    }

    pinMode(A1,INPUT);  
    Serial.begin(9600);
}


void loop()
{
    int val = analogRead(A1);

    Serial.println(val);

    int i =  map(val,0,1023,0,4);
   
    for(int j=0;j<=i;j++)
    {
        digitalWrite(leds[j],HIGH);   // 把0到i之间的LED都点亮
    }
   
    for(int j=i+1;j<=NUM-1;j++)
    {
        digitalWrite(leds[j],LOW);    // 把i+1到4(NUM-1)之间的LED都点亮之间的LED都熄灭
    }
}[/mw_shl_code]

发表于 2014-7-7 19:33 | 显示全部楼层
有什么问题再交流
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-5 10:24 , Processed in 0.073858 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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