arduino
开关,下拉电阻,板载小灯,按开关灯亮
const int ledPin=13; const int inputPin=2; void setup() { // put your setup code here, to run once: pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); //digitalWrite(inputPin, HIGH); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: int val=digitalRead(inputPin); Serial.println(val); if(val==HIGH){ digitalWrite(ledPin, HIGH); }else{ digitalWrite(ledPin, LOW); } }
下拉电阻作用,开关不按时,引脚2读的是接地
开关按下,电流从5v,走过开关,走到电阻,走到接地
开关,上拉电阻,板载小灯,按开关灯亮,这里inputPin读出来的2号引脚一直是high,所以把led关闭。当按下按钮,val读出来变为0,那么把led打开设成1.
const int ledPin=13; const int inputPin=2; void setup() { // put your setup code here, to run once: pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); //digitalWrite(inputPin, HIGH); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: int val=digitalRead(inputPin); Serial.println(val); if(val==HIGH){ digitalWrite(ledPin, LOW); }else{ digitalWrite(ledPin, HIGH); } }
不用外部上拉电阻,用引脚内置的上拉电阻简化布线配置,按下按钮才会关闭led灯:
关键在一个被设置成输入模式的引脚上,写入high值,自动激活该引脚的电阻,达到2w欧
const int ledPin=13; const int inputPin=2; void setup() { // put your setup code here, to run once: pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); digitalWrite(inputPin, HIGH); //这句,在input上打开内置电阻 Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: int val=digitalRead(inputPin); //按下变为0,不按为1 Serial.println(val); if(val==HIGH){ digitalWrite(ledPin, HIGH); }else{ digitalWrite(ledPin, LOW); } }
开关去抖:
const int BUTTON = 2; // the input pin where the // pushbutton is connected int val = 0; // val will be used to store the state // of the input pin int old_val = 0; // this variable stores the previous // value of "val" int state = 0; // 0 = LED off and 1 = LED on void setup() { pinMode(LED, OUTPUT); // tell Arduino LED is an output pinMode(BUTTON, INPUT); // and BUTTON is an input } void loop(){ val = digitalRead(BUTTON); // read input value and store it // yum, fresh // check if there was a transition if ((val == HIGH) && (old_val == LOW)){ state = 1 - state; delay(10); } old_val = val; // val is now old, let's store it if (state == 1) { digitalWrite(LED, HIGH); // turn LED ON } else { digitalWrite(LED, LOW); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现