极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11415|回复: 4

高手 请看一下

[复制链接]
发表于 2015-9-14 22:14:50 | 显示全部楼层 |阅读模式
本帖最后由 ctcog 于 2015-9-14 22:16 编辑

void setup() {

  pinMode (12,INPUT) ;
   pinMode(1,OUTPUT); //
  pinMode(2,OUTPUT); //

}
void loop() {
   int val=analogRead(0)/4; //0~255
   int s=0;
for(;;) {
  if(digitalRead(12)==LOW) {
    s=s+1;
    if(s>2)
     s=0;
    delay(20);
    while(digitalRead(12)==LOW) {}
  }
  if (s==0) {
  
    digitalWrite(1,LOW);
    digitalWrite(2,LOW);
     analogWrite(3,val);
  }
  if (s==1) {
    digitalWrite(1,HIGH);
    digitalWrite(2,LOW);
    analogWrite(3,val); //:1~255
  }
  if (s==2) {int val=analogRead(0)/4; //0~255
     digitalWrite(1,LOW);
    digitalWrite(2,HIGH);
    analogWrite(3,val); //:1~255
  }



}
}



请问 哪里出问题了  12号
按钮 变化 可 val 值没有变化为什么
回复

使用道具 举报

发表于 2015-9-15 05:21:06 | 显示全部楼层
你是怎么知道的 val没有变化?
回复 支持 反对

使用道具 举报

发表于 2015-9-15 07:24:58 | 显示全部楼层
用串口打印数据跟踪一下~



www.osbean.com
回复 支持 反对

使用道具 举报

发表于 2015-9-15 08:57:52 | 显示全部楼层
本帖最后由 林定祥 于 2015-9-15 09:21 编辑

在setup前加一句

int analogPin(0);

loop中

int val=analogRead(analogPin)/4;试一下

另外:除4不一定都能除尽,也许不是int了。
回复 支持 反对

使用道具 举报

发表于 2015-9-15 10:11:07 | 显示全部楼层
本帖最后由 Super169 于 2015-9-15 10:15 编辑

再看看 好像有點問題...for(;;) 之內
為何要自己加個 for(;;)

if (s==2) {int val=analogRead(0)/4; //0~255
     digitalWrite(1,LOW);
    digitalWrite(2,HIGH);
    analogWrite(3,val); //:1~255
  }

當 S==2 時, A0 有變化嗎?  有 的 話 val 就應該有變 (注意, 是這裡 local 的 val)
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 23:22 , Processed in 0.040049 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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