arduino 74hc5595驱动共阳极数码管
时间: 2023-08-24 21:10:05 浏览: 164
首先,74HC595芯片是一个8位移位寄存器,用于控制输出。而数码管是一种数字显示器件,由多个发光二极管组成,并且共阳极和共阴极两种类型。因此,要驱动共阳极数码管,需要使用74HC595芯片控制输出,同时需要使用PNP型晶体管或三极管来控制数码管的阳极。
下面是一个简单的示例代码,用于驱动共阳极数码管:
```C++
const int latchPin = 8; //74HC595芯片的锁存引脚
const int clockPin = 12; //74HC595芯片的时钟引脚
const int dataPin = 11; //74HC595芯片的数据引脚
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
byte numbers[] = { // 数码管的数字编码
0b00111111, // 0
0b00000110, // 1
0b01011011, // 2
0b01001111, // 3
0b01100110, // 4
0b01101101, // 5
0b01111101, // 6
0b00000111, // 7
0b01111111, // 8
0b01101111 // 9
};
for (int i = 0; i < 10; i++) { // 显示数字0~9
digitalWrite(latchPin, LOW); // 先将锁存引脚拉低
shiftOut(dataPin, clockPin, MSBFIRST, numbers[i]); // 发送数据到74HC595
digitalWrite(latchPin, HIGH); // 将锁存引脚拉高,输出数据
delay(1000); // 延时1秒
}
}
```
在上述代码中,使用shiftOut函数将数字编码发送到74HC595芯片中,然后通过锁存引脚将数据输出到数码管的阳极。需要注意的是,数码管的阴极需要接到GND,而阳极则需要通过晶体管或三极管接到74HC595芯片的输出引脚。
阅读全文