当前位置: 首页 > news >正文

Arduino入门教程:5、按键输入

飞书文档https://x509p6c8to.feishu.cn/docx/HrdjdmclEobLNPxQvzqc29zNned

一、应用场景:

轻触开关、按键、电容开关、光栅传感器、微动、关电开关

二、原理:

通过IO读取引脚的电平,判断是否有信号触发。

什么是电压?什么是电平?高电平?低电平?

以TTL电路为例:

TTL电源电压是3.3V,高电平是2.4V--3.3V,低电平0V--0.8V,按照惯例,使用1来表示高电平,使用0表示低电平。

按键输入

接线:

参考代码:
#include <Arduino.h>//34 35 36 39仅可以作为输入INPUT,不支持INPUT_PULLUP
#define PIN_KEY 5void setup() {// put your setup code here, to run once:Serial.begin(9600);//设置为上拉输入,初始化后默认电平为高pinMode(PIN_KEY, INPUT_PULLUP); Serial.print("setup\n");
}void loop() {// put your main code here, to run repeatedly:// 此处进行按键去抖if(digitalRead(PIN_KEY)==LOW){Serial.print("KEY Click\n");delay(1000);}
}

按键消抖

#include <Arduino.h>//34 35 36 39仅可以作为输入INPUT,不支持INPUT_PULLUP
#define PIN_KEY 5void setup() {// put your setup code here, to run once:Serial.begin(9600);//设置为上拉输入,初始化后默认电平为高pinMode(PIN_KEY, INPUT_PULLUP); Serial.print("setup\n");
}void loop() {// put your main code here, to run repeatedly:// 此处进行按键去抖if(digitalRead(PIN_KEY)==LOW){delay(10);if(digitalRead(PIN_KEY)==LOW){Serial.print("KEY Click\n");delay(1000);}}
}

LED联动

接线:

参考代码:
#include <Arduino.h>//34 35 36 39仅可以作为输入INPUT,不支持INPUT_PULLUP
#define PIN_KEY 5
#define PIN_LED 18uint8_t button_presses = 0;void setup() {// put your setup code here, to run once:Serial.begin(9600);pinMode(PIN_KEY, INPUT_PULLUP); pinMode(PIN_LED, OUTPUT);Serial.print("setup\n");
}void loop() {// put your main code here, to run repeatedly:if(digitalRead(PIN_KEY)==LOW){digitalWrite(PIN_LED, HIGH);}else{digitalWrite(PIN_LED, LOW);}
}

相关文章:

  • SCADA|KingSCADA通过组合框选择修改变量的值
  • 记录一次 Oracle 表空间不足问题的解决过程
  • 【Bug:docker】--docker的wsl版本问题
  • 性能优化 - 高级进阶: 性能优化全方位总结
  • 【性能优化】启用zram
  • 微信开发者工具 插件未授权使用,user uni can not visit app
  • 联邦学习的数据集可能出现的情况除了非独立同分布还会出现的情况
  • 【C++】简单商品价格计算程序练习
  • Windows7 32位 旗舰版 [轻度优化 2.6G]
  • PaddleOCR项目实战(2):SpringBoot服务开发之接口设计
  • 知识体系_研究模型_价格敏感度测试模型(PSM)
  • 【SpringCloud】2.0 服务治理——nacos
  • 面向对象设计原则
  • 【论文解读】LLaMA-Berry: 将“refine”当作动作解决数学推理
  • MySQL 根据时间自动创建分区脚本
  • 数据库学习(七)——MySQL执行引擎
  • DeepSeek提示词指南:从基础到高阶的全面解析
  • LlamaRL 大规模分布式异步强化学习框架
  • Leetcode 3585. Find Weighted Median Node in Tree
  • 【python深度学习】Day 54 Inception网络及其思考
  • 新疆5g基站建设/小广告
  • 网站营销单页怎么做/杭州网站seo公司
  • 自治区建设厅官方网站/查找关键词的工具叫什么
  • 十大免费游戏网站点开即玩/网络推广是啥
  • 个人网站建设价格套餐/百度推广seo怎么学
  • 企业建设网站意义/阿里指数