Arduino按键点灯教程

Arduino按键点灯教程

以下是一个简单的教程,介绍如何使用Arduino识别按键并控制LED灯的亮灭

  • 1. 软件需求:

    • 按键短按时翻转红灯,长按1s后翻转绿灯。
  • 2.所需材料:

    • Arduino开发板(如Arduino Uno)
    • 两个LED灯,一个红色,一个绿色
    • 两个220欧姆电阻和一个10k欧姆电阻
    • 一个机械按键
    • 面包板
    • 杜邦线若干
  • 3.电路连接图
    电路

  • 4.步骤:

    • 打开Arduino开发环境,并连接Arduino到计算机
    • 编写代码,代码如下
// 引入Arduino库
#include <Arduino.h>

// 定义按键引脚和LED引脚
#define BUTTON_PIN      2
#define RED_LED_PIN     3
#define GREEN_LED_PIN   4

// 定义按键状态和相关参数
int buttonState = HIGH;          // 按键状态(默认未按下)
int lastButtonState = HIGH;      // 上一次按键状态
bool buttonIsPress = false;
unsigned long buttonStartTime = 0;
unsigned long buttonPressTime = 0;    // 按键按下时间
unsigned long buttonReleaseTime = 0;  // 按键松开时间
unsigned long debounceDelay = 20;     // 消抖延迟时间
unsigned long longPressDuration = 1000;   // 长按时间

// 定义LED状态
bool redLedState = false;    // 红灯状态
bool greenLedState = false;  // 绿灯状态

void setup() {
  // 设置按键引脚为输入模式
  pinMode(BUTTON_PIN, INPUT);
  
  // 设置LED引脚为输出模式
  pinMode(RED_LED_PIN, OUTPUT);
  pinMode(GREEN_LED_PIN, OUTPUT);
}

void loop() {
  // 读取按键状态
  int reading = digitalRead(BUTTON_PIN);
  
  // 检测按键状态是否发生变化
  if (reading != lastButtonState) {
    buttonStartTime = millis();
  }
  
  // 处理按键消抖
  if ((millis() - buttonStartTime) > debounceDelay) {
    // 如果按键状态稳定
    if (reading != buttonState) {
      buttonState = reading;
      
      if (buttonState == LOW) {
        // 按键被按下
        buttonIsPress = true;
        buttonPressTime = millis();
      }

      if (buttonState == HIGH) {
        // 按键被松开

        buttonIsPress = false;
        buttonReleaseTime = millis();
        
        if ((buttonReleaseTime - buttonPressTime) < longPressDuration) {
          redLedState = !redLedState;  // 翻转红灯状态
          digitalWrite(RED_LED_PIN, redLedState);
        }
      }
    }
  }

  if (buttonIsPress == true) {
    if ((millis() - buttonPressTime) >= longPressDuration) {
      buttonIsPress = false;
      greenLedState = !greenLedState;  // 翻转绿灯状态
      digitalWrite(GREEN_LED_PIN, greenLedState);
    }
  }
  
  // 更新上一次的按键状态
  lastButtonState = reading;
}

  • 5.上传代码:
    • 将Arduino开发板连接到计算机上后
    • 编译验证代码后,下载到Arduino
  • 6.查看结果:
    • 短按一下按键,观察到红灯亮,再短按一下按键,红灯灭;如果长按按键1s以上,观察到绿灯亮,松开再长按1s以上,绿灯灭。

这就是Arduino识别按键后控制LED灯的简单教程。你可以根据需要自行修改代码,以实现更多有趣的功能。希望对你有所帮助!

arduino按键点亮LED

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值