用arduino写一个程序使8*32的LED点阵显示器每一列亮的个数不一样
时间: 2023-06-14 09:07:25 浏览: 99
下面是一个基于Arduino的程序,可以实现8x32的LED点阵显示器每一列亮的个数不同的效果:
```
const int dataPin = 2; // 数据引脚
const int clockPin = 3; // 时钟引脚
const int latchPin = 4; // 锁存引脚
int columnCount[32] = {1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1}; // 每一列亮的个数
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
void loop() {
for (int i = 0; i < 32; i++) {
for (int j = 0; j < columnCount[i]; j++) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, bit(31-i));
shiftOut(dataPin, clockPin, MSBFIRST, bit(j));
digitalWrite(latchPin, HIGH);
delay(100);
}
delay(100);
}
}
```
程序中使用了一个数组`columnCount`,存储了每一列亮的LED数量。在主循环中,程序先遍历每一列,然后再在该列中循环点亮相应数量的LED。函数`shiftOut`用于在两个引脚之间传输二进制数据,通过控制数据引脚、时钟引脚和锁存引脚的状态,可以实现点阵LED的控制。程序中给每个点亮的LED加了100ms的延迟,以便观察效果。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)