Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Random 带按钮的Arduino随机数发生器_Random_Arduino_Numbers - Fatal编程技术网

Random 带按钮的Arduino随机数发生器

Random 带按钮的Arduino随机数发生器,random,arduino,numbers,Random,Arduino,Numbers,我是Arduino的新手,尝试用按钮制作一个随机数发生器 我的问题是: 我该怎么做呢?如果我按下按钮一次,就会得到一个介于0和1024之间的随机数。之后,我想从0循环到随机数,然后再返回到0 我怎样才能解除按钮的抖动 示例代码: void setup(){ Serial.begin(57600); pinMode(2,INPUT_PULLUP); attachInterrupt(0,randomnumber,FALLING); } void randomnumber

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

我的问题是:

  • 我该怎么做呢?如果我按下按钮一次,就会得到一个介于0和1024之间的随机数。之后,我想从0循环到随机数,然后再返回到0

  • 我怎样才能解除按钮的抖动

  • 示例代码:

    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(){
    
    }
    
    void setup(){
    序列号。开始(57600);
    引脚模式(2,输入\上拉);
    附加中断(0,随机数,下降);
    }
    无效随机数(){
    整数=随机数(01024);
    对于(int x=0;x=0;y--){
    序列号println(y);
    延迟(1000);
    }
    }
    void循环(){
    }
    

    有什么好的建议吗?

    好的,你要找的是“信号去抖动”

    当您按下按钮时,信号不会从低到高,而是在开始时发出噪音(这是机械触点的一般特性),从而产生多个“按钮按下”。常见的工作方法是:

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

    2) 延迟(10)//等待几毫秒

    3) 再次检查按钮是否仍被按下;如果是真的,按钮确实按下了,如果不是,那只是一些噪音,可以忽略

    这将拒绝任何小于10毫秒的脉冲

    下面是一个简短的视频,描述了按下按钮时实际发生的情况:


    还有一篇文章和代码:

    到底是什么问题;检测按钮按下,或生成伪随机数(这不是小事,但对于您的情况,简单的方法可能就足够了)?我的问题是:当我按下一次按钮时,有时会得到两个或三个随机数,而不仅仅是一个。