共阴极数码管代码转换:从共阳极代码轻松修改
共阴极数码管代码转换:从共阳极代码轻松修改
想要将点亮共阳极数码管的代码修改为共阴极数码管的代码?其实很简单!共阳极和共阴极数码管的主要区别在于电平控制方式,只需修改代码中控制信号的逻辑即可完成转换。
以下是将共阳极代码转换为共阴极代码的示例:
1. 共阳极数码管代码:
// 共阳极管
int cathodePins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // 数码管阴极引脚
int anodePins[] = {10, 11, 12, 13}; // 数码管阳极引脚
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(cathodePins[i], OUTPUT); // 设置阴极引脚为输出模式
}
for (int i = 0; i < 4; i++) {
pinMode(anodePins[i], OUTPUT); // 设置阳极引脚为输出模式
}
}
void loop() {
int digit = 0;
int pattern[] = {B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11110110}; // 数字对应的点阵图案
for (int i = 0; i < 4; i++) {
digitalWrite(anodePins[i], LOW); // 先将所有阳极引脚置低电平
}
for (int i = 0; i < 8; i++) {
digitalWrite(cathodePins[i], bitRead(pattern[digit], i)); // 根据点阵图案设置阴极引脚的电平
}
digitalWrite(anodePins[digit], HIGH); // 将对应的阳极引脚置高电平,点亮数码管
digit++;
if (digit > 9) {
digit = 0;
}
delay(1); // 延时一段时间,使数码管显示的数字可以被人眼识别
}
2. 共阴极数码管代码:
// 共阴极数码管
int cathodePins[] = {10, 11, 12, 13}; // 数码管阴极引脚
int anodePins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // 数码管阳极引脚
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(cathodePins[i], OUTPUT); // 设置阴极引脚为输出模式
}
for (int i = 0; i < 8; i++) {
pinMode(anodePins[i], OUTPUT); // 设置阳极引脚为输出模式
}
}
void loop() {
int digit = 0;
int pattern[] = {B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11110110}; // 数字对应的点阵图案
for (int i = 0; i < 8; i++) {
digitalWrite(anodePins[i], bitRead(pattern[digit], i)); // 根据点阵图案设置阳极引脚的电平
}
for (int i = 0; i < 4; i++) {
digitalWrite(cathodePins[i], HIGH); // 先将所有阴极引脚置高电平
}
digitalWrite(cathodePins[digit], LOW); // 将对应的阴极引脚置低电平,点亮数码管
digit++;
if (digit > 9) {
digit = 0;
}
delay(1); // 延时一段时间,使数码管显示的数字可以被人眼识别
}
代码修改说明:
- 引脚定义互换: 将共阳极代码中
cathodePins和anodePins的定义互换,使代码符合共阴极数码管的接线方式。 - 电平控制逻辑调整:
- 在共阳极代码中,为了点亮某个数字,需要将对应阳极置高电平,其余阳极置低电平。
- 在共阴极代码中,需要将对应阴极置低电平,其余阴极置高电平。
通过以上简单的修改,就可以将共阳极数码管代码轻松转换为共阴极数码管代码,实现数码管显示效果的转换。
原文地址: https://www.cveoy.top/t/topic/jrLd 著作权归作者所有。请勿转载和采集!