面向对象编程实现LED灯控制
在嵌入式系统和物联网应用中,LED灯的控制是基础功能之一。通过面向对象编程(OOP)可以更好地封装LED的行为和状态,提高代码的可维护性和可扩展性。以下是一个完整的实现方案,包含类设计、方法封装和代码示例。
LED类的设计
LED类需要封装以下核心功能:
- 初始化引脚和状态
- 控制开关
- 调节亮度(PWM支持)
- 状态查询
class LED {
private:
int pin; // 控制引脚
bool state; // 当前状态(开/关)
int brightness; // PWM亮度值(0-255)
public:
// 构造函数:初始化引脚和默认状态
LED(int controlPin) : pin(controlPin), state(false), brightness(0) {
pinMode(pin, OUTPUT);
}
// 打开LED
void turnOn() {
digitalWrite(pin, HIGH);
state = true;
}
// 关闭LED
void turnOff() {
digitalWrite(pin, LOW);
state = false;
brightness = 0;
}
// 切换状态
void toggle() {
state ? turnOff() : turnOn();
}
// 设置PWM亮度(需支持PWM的引脚)
void setBrightness(int value) {
if (value < 0) value = 0;
if (value > 255) value = 255;
brightness = value;
analogWrite(pin, brightness);
state = (value > 0);
}
// 获取当前状态
bool isOn() const {
return state;
}
// 获取当前亮度
int getBrightness() const {
return brightness;
### 面向对象编程实现LED灯控制
在嵌入式系统和物联网应用中,LED灯的控制是基础功能之一。通过面向对象编程(OOP)可以更好地封装LED的行为和状态,提高代码的可维护性和可扩展性。以下是一个完整的实现方案,包含类设计、方法封装和代码示例。
---
### LED类的设计
LED类需要封装以下核心功能:
- 初始化引脚和状态
- 控制开关
- 调节亮度(PWM支持)
- 状态查询
```cpp
class LED {
private:
int pin; // 控制引脚
bool state; // 当前状态(开/关)
int brightness; // PWM亮度值(0-255)
public:
// 构造函数:初始化引脚和默认状态
LED(int controlPin) : pin(controlPin), state(false), brightness(0) {
pinMode(pin, OUTPUT);
}
// 打开LED
void turnOn() {
digitalWrite(pin, HIGH);
state = true;
}
// 关闭LED
void turnOff() {
digitalWrite(pin, LOW);
state = false;
brightness = 0;
}
// 切换状态
void toggle() {
state ? turnOff() : turnOn();
}
// 设置PWM亮度(需支持PWM的引脚)
void setBrightness(int value) {
if (value < 0) value = 0;
if (value > 255) value = 255;
brightness = value;
analogWrite(pin, brightness);
state = (value > 0);
}
// 获取当前状态
bool isOn() const {
return state;
}
// 获取当前亮度
int getBrightness() const {
return brightness;
3090

被折叠的 条评论
为什么被折叠?



