Arduino 按键实验

原创 2017年08月19日 20:14:35

一、功能

实现按键控制LED亮灭。按下点亮,再次按下熄灭。

二、原理图

这里写图片描述

三、代码

int ButtonState;
int ButtonLastState;
int ButtonCounter;

void setup() {
  // put your setup code here, to run once:
  pinMode(13,OUTPUT);
  pinMode(11,INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  ButtonState = digitalRead(11);

  if(ButtonState != ButtonLastState)
  {
    if(ButtonState)
    {
        Serial.println("on");
        ButtonCounter++;
    }
    else
    {
      Serial.println("off");  
    }
    delay(100);
  }

  ButtonLastState = ButtonState;
  if(ButtonCounter%2)
  {
    //Serial.println(ButtonCounter);
    digitalWrite(13,1);  
  }
  else
  {
    digitalWrite(13,0);  
  }
}

四、解析

  • 1、开关通过一个数字接口连接到 arduino,端口配置为上拉输入。在默认情况下,端口电平为高,按键按下时,端口被拉低。
  • 2、理想情况下,一次按键对应着一个下降沿,一段低电平,一个上升沿。程序通过ButtonStateButtonLastState两个标志位来判断电平情况,通过这两个标志位实现了下降沿和上升沿进入第一个判断语句,即if(ButtonLastState != ButtonState),只不过下降沿和上升沿所处理的操作不同,下降沿不做处理,仅打印一条语句,上升沿时候则代表按键被按下并且已经放开了,则对按键次数进行加一。
  • 3、要实现,按下点亮,再次按下熄灭,只需要对按键次数进行模2操作。
版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎访问个人主页 http://cyang.tech 举报

相关文章推荐

从Zigbee协议栈底层添加自己的按键配置

本实验是基于ZStack-CC2530-2.5.1a版本的协议栈来进行实验的,整个实验需要改动hal_board_cfg.h、hal_board_cfg.h、hal_key.c、hal_key.h和自...

Arduino Uno 使用 4x4 矩阵按键 实现你家的密码锁吧

实现效果 占用8个IO口 ,实现16个不同的按键 可应用于计算器,电子门锁,等等需要输入的场景 BOM表 Arduino Uno   *1 4x4 矩阵键盘   *1 跳线若干 ...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

STM32 按键实验

关于 消抖  : 按键在闭合和断开时 ,触点会存在几十ms 抖动的现象 :  按键驱动部分: 主函数部分 :

ARM 按键实验

下面这个是没有使用中断功能的 #include "2410addr.h" #define LED1               ...

Arduino使用光敏电阻实验

由于朋友说要做一个向日葵式的太阳能收集系统。 所以要学会光敏电阻的使用, 让我们开始吧!

STM32之GPIO按键实验

STM32之GPIO按键实验的简单实现

STM32F407 之 按键实验

1、实验目的:利用板载的四个按键,来控制板载的4个LED等的亮灭。 2、硬件资源 1)LED 灯 D9、D10、D11、D12 2)蜂鸣器 3)四个按键:S7、S8、S9、S1 硬件...
  • Cowena
  • Cowena
  • 2015-11-24 11:02
  • 1001

【Unity 3D】学习笔记四十六:输入与控制——键盘事件

在游戏中,玩家控制主角移动,按键攻击,选择行走。都需要在程序中监听玩家的输入。unity为开发者提供了input库,来支持键盘事件,鼠标事件以及触摸事件。本文主要回顾键盘事件,以后会逐文复习鼠标以及触...

Arduino系列教程-06 按键控制

本教程来至yingcloud.com网站 使用Arduino的I/O 口的输入功能即为读取外接设备的输出值,我们用一个按键和一个LED 小灯完成一个输入输出结合使用的实验,让大家能简单了解I/O...

android关闭手机实体按键开启虚拟按键

注意实体按键和虚拟按键的区别 使用的是android4.2版本,硬件:mt6589 以下操作都需要root权限!! 关闭实体按键的功能(菜单,返回,home,最近): 使用root文件...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)