使用arduino在max7219点阵屏上,首先显示一个小爱心,然后间隔500ms然后大爱心跳动,间隔500ms在变成小爱心~大爱心~跳动显示两分钟后从左往右显示流动的英文 I LOVE YOU 速度的话250,然后再恢复小爱心,然后大爱心循环跳动两次,然后显示英文I,然后显示个大爱心,在显示U,然后再变成开始的爱心交替,流动文字I LOVE YOU
时间: 2024-02-29 14:54:15 浏览: 114
好的,让我来为您解答这个问题。首先,您需要准备一个Max7219点阵屏和一个Arduino板子。然后,您可以按照以下步骤进行程序编写:
1. 引入所需的库文件,包括LedControl.h和SPI.h。
2. 设置点阵屏的引脚,包括 DIN、CLK 和 CS。
3. 定义小爱心和大爱心的图案,以便在后面的程序中使用。
4. 定义一个函数,名为displayHeart,用于在点阵屏上显示爱心。
5. 在setup函数中初始化点阵屏并显示小爱心。
6. 在loop函数中,使用delay函数间隔500ms,然后显示大爱心。
7. 使用delay函数间隔500ms,然后再次显示小爱心。
8. 使用LedControl库中的函数,在点阵屏上从左向右显示英文“ I LOVE YOU ”,速度为250。
9. 使用delay函数间隔500ms,然后再次显示小爱心。
10. 在一个循环中,显示大爱心跳动两次。
11. 显示英文“ I ”。
12. 显示大爱心。
13. 显示英文“ U ”。
14. 在一个循环中,交替显示小爱心和大爱心,并流动显示英文“ I LOVE YOU ”。
下面是完整的程序代码:
```C++
#include <LedControl.h>
#include <SPI.h>
LedControl lc = LedControl(12, 11, 10, 1);
int smallHeart[8] = {
0b00011000,
0b01111110,
0b11111111,
0b11111111,
0b11111111,
0b01111110,
0b00111100,
0b00011000
};
int bigHeart[8] = {
0b00000000,
0b01100110,
0b11111111,
0b11111111,
0b11111111,
0b01111110,
0b00111100,
0b00011000
};
void displayHeart(int heart[]) {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, heart[i]);
}
}
void setup() {
lc.shutdown(0, false);
lc.setIntensity(0, 8);
lc.clearDisplay(0);
displayHeart(smallHeart);
}
void loop() {
delay(500);
displayHeart(bigHeart);
delay(500);
displayHeart(smallHeart);
lc.setCharSpeed(0, 'I', 250);
lc.setString(0, "LOVE YOU");
delay(500);
displayHeart(smallHeart);
for (int i = 0; i < 2; i++) {
displayHeart(bigHeart);
delay(500);
displayHeart(smallHeart);
delay(500);
}
lc.setChar(0, 'I', 0, 0);
displayHeart(bigHeart);
lc.setChar(0, 'U', 1, 0);
delay(500);
for (int i = 0; i < 2; i++) {
displayHeart(smallHeart);
delay(250);
displayHeart(bigHeart);
delay(250);
}
lc.setCharSpeed(0, ' ', 250);
lc.setCharSpeed(0, 'I', 250);
lc.setString(0, "LOVE YOU");
}
```
希望能够帮助到您,祝您编写愉快!
阅读全文