arduino控制4位数码管循环显示0-9,A-F,即第一位数码管显示1,第二位显示2循环下去
时间: 2023-09-28 12:11:57 浏览: 100
以下是Arduino代码实现:
```
int digitPins[] = {2, 3, 4, 5}; // 数码管的4个引脚
int digit[16][4] = { // 数码管0-F的显示码
{1, 1, 1, 1}, // 0
{0, 1, 1, 0}, // 1
{1, 1, 0, 1}, // 2
{1, 1, 1, 0}, // 3
{0, 1, 1, 1}, // 4
{1, 0, 1, 1}, // 5
{1, 0, 1, 1}, // 6
{1, 1, 1, 1}, // 7
{1, 1, 1, 1}, // 8
{1, 1, 1, 1}, // 9
{1, 1, 1, 0}, // A
{0, 0, 1, 1}, // B
{1, 0, 0, 1}, // C
{0, 1, 1, 1}, // D
{1, 0, 0, 1}, // E
{1, 0, 0, 0} // F
};
int number[2] = {1, 2}; // 初始显示数字1和2
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(digitPins[i], OUTPUT); // 设置数码管引脚为输出模式
}
}
void loop() {
for (int i = 0; i < 2; i++) {
display(digit[number[i]], digitPins[i]); // 显示当前数字
}
delay(1000); // 延时1秒
number[0]++; // 第一个数自增1
if (number[0] > 15) { // 如果第一个数大于15,则循环回0
number[0] = 0;
}
number[1]++; // 第二个数自增1
if (number[1] > 15) { // 如果第二个数大于15,则循环回0
number[1] = 0;
}
}
void display(int digit[], int pin) {
for (int i = 0; i < 4; i++) {
digitalWrite(digitPins[i], digit[i]); // 设置数码管引脚的电平状态
}
digitalWrite(pin, HIGH); // 打开当前数码管
delay(5); // 延时5毫秒
digitalWrite(pin, LOW); // 关闭当前数码管
}
```
注:以上代码假设使用共阴数码管,如果使用共阳数码管,需要将`digit`数组中的0和1互换。
阅读全文