w72321 發表於 2018-2-17 19:29:25

請問如何改善這數據不穩定的狀況?

本帖最後由 w72321 於 2018-2-17 19:33 編輯

我想設計案一個按鈕產生數值
一個數值是1000(未按下)
一個數值是1500(按下)

可是Serial.println出來的數值 未按下的時候是一陣子1000一陣子1500

請問各位大神要如何敢善呢?

以下是語法


const int Buttonpin = 2;
int val;

void setup() {
Serial.begin(9600);
pinMode(Buttonpin, INPUT);//開關接腳
}

void loop() {
if (digitalRead(Buttonpin) == HIGH)// 如果沒有按下開關,不啟動
{
    val = 1050;
    Serial.println(val);
} else
{
    val = 2300;
    Serial.println(val);
}
delay(100);
}


以下的圖片是我甚麼都沒有按
按鈕沒有做動
可是卻出現1500~~~
反覆亂跑

但是按下按鈕~就是穩定的1500
要怎ㄇ解決呢??

超新手 發表於 2018-2-17 19:53:09

本帖最後由 超新手 於 2018-2-21 19:19 編輯

改成pinMode(Buttonpin, INPUT_PULLUP);看看

w72321 發表於 2018-2-17 20:17:54

本帖最後由 w72321 於 2018-2-17 20:21 編輯

挖~~穩定了~~
謝謝您~~
但我不是很懂其中原因~

可以幫小弟我解惑一下嗎?
按鈕設置一定要用 INPUT_PULLUP ?

想了解差異~~謝謝您

超新手 發表於 2018-2-17 20:25:56

本帖最後由 超新手 於 2018-2-21 14:32 編輯

一般使用機械式的按鍵,
通常就要接1k以上的提升電阻到 5v,
否則就等於空接,訊號就會不穩(不確定)
不過這個 mcu 剛好支援內建提升電阻,
所以只要設定好即可, 不必再外接提升電阻

w72321 發表於 2018-3-2 14:24:53

超新手 發表於 2018-2-17 20:25
一般使用機械式的按鍵,
通常就要接1k以上的提升電阻到 5v,
否則就等於空接,訊號就會不穩(不確定)


了解~~
謝謝大大的指導~~
感謝您~~
長知識了~
頁: [1]
查看完整版本: 請問如何改善這數據不穩定的狀況?