带按钮的Arduino随机数生成器

时间:2018-09-24 15:15:44

标签: random arduino numbers

我是Arduino的新手,试图用按钮制作一个随机数发生器。

我的问题是:

  1. 我该怎么做,如果我按下按钮一次,那么我会得到一个介于0到1024之间的一个随机数。之后,我想要从0循环到随机数,然后又回到0。

  2. 我如何消除按钮的弹跳

示例代码:

void setup(){

    Serial.begin(57600);
    pinMode(2,INPUT_PULLUP);
    attachInterrupt(0,randomnumber,FALLING);

}

void randomnumber(){

    int number=random(0,1024);
    for(int x=0;x<=number; x++){
      Serial.println(x);
      delay(1000);

  }

    for(int y=number;y>=0; y--){
      Serial.println(y);
      delay(1000);
  }

}
void loop(){

}

有什么好的建议吗?

1 个答案:

答案 0 :(得分:0)

好吧,您正在寻找的是“信号反跳”。

当您按下按钮时,信号不会从低到高,而是在开始时会产生噪声(这是机械触点的一般属性),从而产生了多次“按钮按下”。常见且可行的方法是:

1)检测到按下按钮(输入引脚上的0到1转换)

2)delay(10)//等待几毫秒

3)再次检查按钮以查看是否仍在按动;如果为true,则表示确实按下了该按钮;如果不是,则只是一些声音,可以忽略

这将拒绝任何短于10 ms的脉冲

以下是一段简短的视频,介绍了您按下按钮时实际发生的情况:https://youtu.be/jYOYgU2vlSE

还有一篇文章和代码:https://programmingelectronics.com/tutorial-19-debouncing-a-button-with-arduino-old-version/