在不触摸任何按钮的情况下增加号码

going up the number without touching any button

我正在研究一个计算器,就像在计算器中按多少次按钮作为计算器中的第一个一样。例如,我按了四次按钮,现在计算器中的数字是四。但问题是,当 Arduino 打开时,数字会在不触摸按钮的情况下上升。我能做什么?我正在使用数字显示器、Arduino UNO 板和四个按钮,这是我的代码:

    #include <TM1637.h>


// this is a calculater with four buttons on pins 2 3 4 5 and a number display and the driver is TM1637 CLK on pin 13 and DIO on pin 12. after making sure you connected
// all the modules you can program these codes on your Arduino UNO. LET'S JUTS MAKE IT!

const int btn_one = 2;
const int btn_two = 3;
const int btn_three = 4;
const int btn_four = 5;
/*
int b1s = LOW;
int b2s = LOW;
int b3s = LOW;
int b4s = LOW;
*/

int num1 = 0;
int num2 = 0;
int mathop = 1;


int CLK = 13;
int DIO = 12;

TM1637 tm(CLK,DIO);

void setup(){
  tm.init();
  tm.set(7);
  pinMode(btn_one, INPUT);
  pinMode(btn_two, INPUT);
  pinMode(btn_three, INPUT);
  pinMode(btn_four, INPUT);
  
}

void loop(){
  int b1s = digitalRead(btn_one);
  int b2s = digitalRead(btn_two);
  int b3s = digitalRead(btn_three);
  int b4s = digitalRead(btn_four);

  if(b1s == true){
    num1 = num1 + 1;
    displayNumber(num1);
    //digitalWrite(btn_one, LOW);
    delay(1000);
  }
  
}

void displayNumber(int num){   
    tm.display(3, num % 10);   
    tm.display(2, num / 10 % 10);   
    tm.display(1, num / 100 % 10);   
    tm.display(0, num / 1000 % 10);
}

这些是我的联系人: Connections 1 Connections 2

如果你能帮到我,请把对我很有帮助的答案发给我,非常感谢。

我看到了你的按钮连接电路。主要问题出在电路本身。您没有在按钮和数字输入引脚上添加电阻器,因此,digitalRead 读取的按钮状态是一个介于 0 和 1 之间的浮动值(假值)。按照这里给出的电路: https://www.arduino.cc/en/Tutorial/BuiltInExamples/Button 每个按键最好用10k欧姆的电阻。

其次,你为什么使用延迟 1秒?