Robofun 機器人論壇

標題: 請問如何改善這數據不穩定的狀況? [打印本頁]

作者: w72321    時間: 2018-2-17 19:29
標題: 請問如何改善這數據不穩定的狀況?
本帖最後由 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
要怎ㄇ解決呢??

00000.jpg (54.46 KB, 下載次數: 390)

00000.jpg

作者: 超新手    時間: 2018-2-17 19:53
本帖最後由 超新手 於 2018-2-21 19:19 編輯

改成pinMode(Buttonpin, INPUT_PULLUP);看看
作者: w72321    時間: 2018-2-17 20:17
本帖最後由 w72321 於 2018-2-17 20:21 編輯

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

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

想了解差異~~謝謝您
作者: 超新手    時間: 2018-2-17 20:25
本帖最後由 超新手 於 2018-2-21 14:32 編輯

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

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

了解~~
謝謝大大的指導~~
感謝您~~
長知識了~




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