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

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);}
}
http://www.xdnf.cn/news/14542.html

相关文章:

  • 贝塞尔曲线的切矢量
  • 分割数据集 - 足球运动员分割数据集下载
  • 关于 使用 GPT 自动生成反调试代码详解
  • 手机SIM卡通话中随时插入录音语音片段(Windows方案)
  • NLP语言发展路径分享
  • Good Start/Smilo and Minecraft
  • 大数据集群架构hadoop集群、Hbase集群、zookeeper、kafka、spark、flink、doris、dataease(四)
  • Oracle 逻辑结构与性能优化(上)
  • Softhub软件下载站实战开发(三):平台管理模块实战
  • 第9章:Neo4j集群与高可用性
  • SpringBoot学习day3-SpringBoot注解开发(新闻项目后段基础)
  • Java中的CAS与ABA
  • Leetcode 刷题记录 14 —— 回溯
  • 什么是装饰器?
  • UE5错误 Linux离线状态下错误 circular dependency detected;includes/requires
  • chapter06-针对分类的微调
  • 实战指南:部署MinerU多模态文档解析API与Dify深度集成(实现解析PDF/JPG/PNG)
  • 【RAG文档解析】深度剖析 PDF 解析的痛点与方案
  • springboot集成dubbo
  • LangChain调用本地modelscope下载的Deepseek大模型
  • Python打卡第54天
  • 13分钟讲解主流Linux发行版
  • origin绘制双Y轴柱状图、双Y轴柱状点线图和双Y轴点线图
  • Node.js验证码:从生成到验证的趣味之旅
  • 条件收敛的级数中项必须趋于 0,正负项抵消,但趋于 0 的速度不需要“足够快”
  • 【学习笔记】深入理解Java虚拟机学习笔记——第9章 类加载及执行子系统的案例与实战
  • 深度学习进化史:从神经元的诞生到万亿参数的觉醒
  • 掌握这些 Python 函数,让你的代码更简洁优雅
  • Git基本使用
  • npm install报错