Robofun 機器人論壇

標題: 類比輸入-蜂鳴片 [打印本頁]

作者: a05520    時間: 2012-11-12 19:05
標題: 類比輸入-蜂鳴片
本帖最後由 a05520 於 2012-11-13 10:13 編輯

如何將亮燈與熄燈敲擊次數改變,以下是敲一亮,敲一熄:(麻煩大大,指點迷津,謝謝)

int ledPin = 13;
int knockSensor = 0;
int threshold = 200;
int sensorReading = 0;

int ledState = LOW;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
sensorReading = analogRead(knockSensor);
if (sensorReading>=threshold) {

ledState = !ledState;
digitalWrite(ledPin, ledState);
Serial.println("Knock!");

}

delay(100);
}

作者: coopermaa    時間: 2012-11-12 20:03
「將亮燈與熄燈敲擊次數改變」是指什麼?
作者: a05520    時間: 2012-11-12 20:33
目前程式是 敲擊蜂鳴片  使LED燈 亮 與 熄滅 。 敲一下亮,一下熄滅。 改成多下亮,多下熄滅,如3下亮,2下熄滅。
作者: Shinwei    時間: 2012-11-12 23:25
「將亮燈與熄燈敲擊次數改變」是指什麼?
coopermaa 發表於 2012-11-12 20:03



應該是把 蜂鳴器 當成輸入訊號,再去改變LED變化!
主要是利用 蜂鳴器 為 壓電元件,經敲擊後產生微量電壓變化,進而讓A/D腳位有感應!
作者: a05520    時間: 2012-11-12 23:37
回復 2# coopermaa


   目前程式是 敲擊蜂鳴片  使LED燈 亮 與 熄滅 。 敲一下亮,一下熄滅。 改成多下亮,多下熄滅,如3下亮,2下熄滅
作者: coopermaa    時間: 2012-11-13 23:29
蜂鳴片有沒被敲下,你應該知道是哪一行在判斷的吧?
就是這行:
if (sensorReading>=threshold) {

既然知道怎麼判斷蜂鳴片有沒被敲下,那就做個「敲擊次數的計數」,就可以解題了啊...

Try it! 很多事情試過之後,才會發現其實沒那麼困難。
作者: a05520    時間: 2012-11-14 23:23
回復 6# coopermaa

恩~我也有想到計數的方式,但是剛學不久,所以還是不懂。
作者: a05520    時間: 2012-11-15 17:36
弄了一整天還是弄不出來,誰能救救小弟...= ="'
作者: coopermaa    時間: 2012-11-15 19:14
先貼你目前寫出來的程式碼,再說說你解題的想法/邏輯 (預期怎樣,結果怎樣...)
作者: a05520    時間: 2012-11-15 20:13
int ledPin = 13;                  
int  knockSensor  =  0;                              

int threshold = 200;
int i=0;
int sensorReading = 0;      
int ledState = LOW;           
void setup() {
  pinMode(ledPin,  OUTPUT);                  
  Serial.begin(9600);                                    
}
void loop() {
   
  sensorReading = analogRead(knockSensor);      
   
    if  (sensorReading>=threshold)  {   
i=i+1;
    }
    if(i==2){
      
        ledState  =  !ledState;                                    
    digitalWrite(ledPin, ledState);      
    Serial.println("Knock!");   
   Serial.println(sensorReading);  
    }
  delay(100);  
}

利用i=i+1 算次數,先以兩次亮,兩次滅試試,但失敗...@^@

今天11點前一定要弄出來,不然就沒救了@@
作者: coopermaa    時間: 2012-11-17 19:57
我沒試過,不過看你的程式 i 好像只有做累加,並沒有歸零的動作喔
這樣可能頂多只能把 LED 打開,之後應該就不會有反應了

雖然沒在期限內趕出來,但是還是要有研究精神!




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