按键控制LED灯,S1键控制LED1亮灭(按一下亮,再按一下灭),S2键控制LED2亮灭(按一下亮,再按一下灭)。代码
时间: 2024-10-08 13:08:41 浏览: 242
这是一个基本的硬件操作示例,通常用于嵌入式系统如Arduino或者单片机项目。这里我将以C语言和Arduino库为例描述:
```c
#include <Adafruit_NeoPixel.h> // 如果使用的是NeoPixel LED
#define LED_PIN 6 // LED1连接到数字引脚6
#define LED1_COUNT 1 // LED1只有一个像素
#define LED2_PIN 9 // LED2连接到数字引脚9
#define LED2_COUNT 1 // LED2也只有一个像素
Adafruit_NeoPixel strip1(LED1_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // 创建LED1实例
Adafruit_NeoPixel strip2(LED2_COUNT, LED2_PIN, NEO_GRB + NEO_KHZ800); // 创建LED2实例
bool led1_state = false; // LED1的状态
bool led2_state = false; // LED2的状态
void setup() {
strip1.begin(); // 初始化LED1
strip2.begin(); // 初始化LED2
}
void loop() {
if (digitalRead(S1) == HIGH && !led1_state) { // S1按键按下
led1_state = true;
strip1.setPixelColor(0, strip1.Color(255, 0, 0)); // 设置LED1为红色
strip1.show();
} else if (digitalRead(S1) == LOW && led1_state) { // S1按键释放
led1_state = false;
strip1.setPixelColor(0, 0); // 关闭LED1
strip1.show();
}
if (digitalRead(S2) == HIGH && !led2_state) { // S2按键按下
led2_state = true;
strip2.setPixelColor(0, strip2.Color(0, 255, 0)); // 设置LED2为绿色
strip2.show();
} else if (digitalRead(S2) == LOW && led2_state) { // S2按键释放
led2_state = false;
strip2.setPixelColor(0, 0); // 关闭LED2
strip2.show();
}
}
```
这个代码片段假设你有两颗独立控制的RGB NeoPixel LED,并通过S1和S2按键切换它们的颜色状态。每个循环会检查这两个按钮的状态,然后相应地改变LED颜色。
阅读全文