高手 请看一下
本帖最后由 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 值没有变化为什么 你是怎么知道的 val没有变化? 用串口打印数据跟踪一下~
www.osbean.com 本帖最后由 林定祥 于 2015-9-15 09:21 编辑
在setup前加一句
int analogPin(0);
loop中
int val=analogRead(analogPin)/4;试一下
另外:除4不一定都能除尽,也许不是int了。 本帖最后由 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)
页:
[1]