arduino 不读取按键状态

2019-08-29 23:55:14 weixin_43895761 阅读数 304

所需硬件

  1. Arduino开发板
  2. 一个瞬时开关、按键或拨动开关
  3. 10k欧电阻
  4. 导线
  5. 实验电路板

电路连接方式在这里插入图片描述

将三根导线连接到开发板。前两根线(红色和黑色)连接到实验电路板侧面的两个竖长的行排列,以接入5V电源和地。第三根导线从数字引脚2连接到按键的一个引脚。该按钮的同一个引脚通过下拉电阻(这里使用的是10k欧)连接到地。按键的另一个引脚连接到5V电源。

按键或开关在按下时连接电路中的两个点。当按钮处于开路状态(未按下)时,按键的两个引脚之间没有连接,所以该引脚连接到地(通过下拉电阻),并且读取时为低电平,或者0。当按键关闭(按下)时,两个引脚短接,使得该引脚连接到5V,因此读取时为高电平,或者1。

如果断开数字I/O引脚的所有连接时,LED会无规律的闪烁。这是因为输入引脚处于悬浮状态,也就是说该引脚与电源或地之间没有固定的连接,并且会随机返回高电平或低电平。这就是为什么在电路中需要下拉电阻。

代码

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  pinMode(pushButton, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  int buttonState = digitalRead(pushButton);
  // print out the state of the button:
  Serial.println(buttonState);
  delay(1);        // delay in between reads for stability
}
2016-07-18 21:55:26 woshi_ziyu 阅读数 4815

这里写图片描述

【Arduino官方教程】数字处理示例(五):按键状态变化检测(State Change Detection)

在使用按键的过程中,经常会遇到要根据按键按下的次数来做一些处理。要做到这一点,我们需要知道按键的状态何时从关断变成闭合,并且记录下这样的状态变化发生的次数。这就是所谓的状态变化检测或者是边沿检测。本示例展示了如何来检测状态变化,将相关信息发送到串行监视器( Serial Monitor),并且在四次状态变化时来点亮或熄灭LED指示灯。

更多内容参看链接:http://www.yiboard.com/thread-594-1-1.html

2019-01-15 17:25:27 weixin_44499070 阅读数 1626

刚开始学Arduino的时候,按键的插法是根据视频教程来做的,需要插电阻,后来发现Arduino自带上拉电阻,我们可以把接按键的引脚设置为输入,并把电平拉高,按键的另一端接地,那么我们按下按键之后,引脚的电平就会被拉低,这种方法不需要做按键消抖(与51不同),也不用接电阻了,很灵敏,希望可以帮到大家

2019-11-24 16:59:53 qq_27885507 阅读数 87
const int button = 2;     // 定义按键为管脚2
const int led =  13;      //定义led灯为管脚13

int buttonState = 0;         // 用于读取按键状态的变量

void setup() 
{
  pinMode(led, OUTPUT);//定义led灯为输出模式
  pinMode(button, INPUT);//定义按键为输入模式
}

void loop()
{
  buttonState = digitalRead(button);//读取按键值的状态
  if (buttonState == HIGH)           //检查按键是否按下,如果是,则按键状态为高
   {
    digitalWrite(led, HIGH);        //灯亮
  } 
  else 
  {
    digitalWrite(led, LOW);       //灯灭
  }
}
2019-11-24 16:58:18 qq_27885507 阅读数 162
int pushButton=7;  //定义按键为管脚7
int buttonState=0;  //按键初始值为0
int beforeState=0;   //检测上一次按下是否松开
int presstime=0;  //记录按了几次
void setup() 
{
  Serial.begin(9600);  //设置波特率为9600,一旦写上这个就可以和电脑通信了
  pinMode(pushButton, INPUT);  //定义管脚7为输入管脚
}

void loop() 
{
  buttonState=digitalRead(pushButton);  //读取按键状态
  if(buttonState==1 and beforeState==0)  //如果按键按下并且上一次按下松开
  {
    Serial.print("hello:");     //打印出hello(不换行)
    Serial.println(++presstime); //打印出按了几次
   }
   if(buttonState!=beforeState)//消抖
   {
    delay(20);
    }
   beforeState=buttonState;   
   delay(100);
  
}

arduino按键消抖

阅读数 1541

arduino按键

阅读数 1695