Robofun 機器人論壇

標題: 新手問題 [打印本頁]

作者: u850241    時間: 2015-4-22 08:30
標題: 新手問題
本帖最後由 u850241 於 2015-4-22 11:21 編輯

各位前輩好:

我想藉光敏電阻來控制LED 開或關,先在void setup ()透過光敏電阻取得當時環境的sensorValue當作THRESHOLD

再由void loop() 去比較這時的sensorValue THRESHOLD的值來去控制LED,寫了下列程式碼,但TRESHOLD仍會跳動.

可否請各位前輩指點迷津,感謝

#define analogInPin 0

#define THRESHOLD sensorValue

int sensorValue=0;

void setup() {

Serial.begin(9600);

sensorValue=0.7*sensorValue+0.3*analogRead(analogInPin);

pinMode(13,OUTPUT);

}

void loop() {

  int r=sensorValue;

  sensorValue=0.7*sensorValue+0.3*analogRead(analogInPin);

  delay(1000);

  if(r>THRESHOLD){

    digitalWrite(13,LOW);

  }

  else{

    digitalWrite(13,HIGH);

  }

  Serial.print("THRESHOLD = ");

  Serial.print(THRESHOLD);

  Serial.print(",r ");

  Serial.println(r);


作者: abcd1234abcd    時間: 2015-4-28 14:01
你的程式第二行
#define THRESHOLD sensorValue
就是表示 THRESHOLD的值就是sensorValue

在每一次執行loop()時
sensorValue的值就會被更新一次
所以THRESHOLD的值就跟著一起變了
你才會看到輸出時到電腦時THRESHOLD的值在跳動




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2