共阴极数码管代码转换:从共阳极代码轻松修改

想要将点亮共阳极数码管的代码修改为共阴极数码管的代码?其实很简单!共阳极和共阴极数码管的主要区别在于电平控制方式,只需修改代码中控制信号的逻辑即可完成转换。

以下是将共阳极代码转换为共阴极代码的示例:

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); // 延时一段时间,使数码管显示的数字可以被人眼识别
}

代码修改说明:

  • 引脚定义互换: 将共阳极代码中 cathodePinsanodePins 的定义互换,使代码符合共阴极数码管的接线方式。
  • 电平控制逻辑调整:
    • 在共阳极代码中,为了点亮某个数字,需要将对应阳极置高电平,其余阳极置低电平。
    • 在共阴极代码中,需要将对应阴极置低电平,其余阴极置高电平。

通过以上简单的修改,就可以将共阳极数码管代码轻松转换为共阴极数码管代码,实现数码管显示效果的转换。

共阴极数码管代码转换:从共阳极代码轻松修改

原文地址: https://www.cveoy.top/t/topic/jrLd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录