【Arduino】8*8点阵怦然心动

实验现象
arduino直接驱动88点阵,显示不断跳动的大小心形图案。
理论学习
LED点阵屏由LED发光二极管组成,通过控制LED亮灭来显示文字、图片、动画、视频等,被广泛应用于公共场合做信息展示,如广告屏、公告牌等。LED点阵屏按照LED发光颜色可分为单色、双色、三色灯等,可显示红、黄、绿甚至是真彩色。根据LED的数量又分为4x4、8x8、16x16等不同类型。多色点阵屏工艺要求相对较高,需要考虑多种颜色混合时对色彩的影响。本次实验使用的是8
8点阵。8x8点阵屏由8行8列共64个LED灯组成,其内部结构如下图:
在这里插入图片描述
每个LED放置在行线和列线的交叉点上,当对应的某一行电平拉高,某一列电拉低,则对应交叉点的LED就会点亮。
实验准备
arduino主板-1
面包板-1
数据线-1
8*8点阵-1
跳线若干
连接电路
在这里插入图片描述
图1 引脚说明
在这里插入图片描述
图2 实物连接图
A0–14
A1–15
A2–16
A3–17
A4–18
A5–19
实验代码

int R[] = {2,3,4,5,6,7,8,9}; //行
int C[] = {10,11,12,13,A0,A1,A2,A3};   //列

void setup(){ 
 //循环定义行列PIN 为输出模式
  for(int i = 0;i<8;i++)
  {
    pinMode(R[i],OUTPUT);
    pinMode(C[i],OUTPUT);
  }
} 

unsigned char biglove[8][8] =       //大“心型”的数据
{
  0,0,0,0,0,0,0,0,
  0,1,1,0,0,1,1,0,
  1,1,1,1,1,1,1,1,
  1,1,1,1,1,1,1,1,
  1,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,0,
  0,0,1,1,1,1,0,0,
  0,0,0,1,1,0,0,0,
};
 
unsigned char smalllove[8][8] =      //小“心型”的数据
{
  0,0,0,0,0,0,0,0,
  0,0,0,0,0,0,0,0,
  0,0,1,0,0,1,0,0,
  0,1,1,1,1,1,1,0,
  0,1,1,1,1,1,1,0,
  0,0,1,1,1,1,0,0,
  0,0,0,1,1,0,0,0,
  0,0,0,0,0,0,0,0,
};
void loop(){ 
   for(int i = 0 ; i < 100 ; i++)        //循环显示100次
  {
    Display(biglove);                   //显示大”心形“
  }
  for(int i = 0 ; i < 50 ; i++)         //循环显示50次
  {   
    Display(smalllove);                 //显示小“心形”
  }
} 

void Display(unsigned char dat[8][8])   //显示函数
{
  for(int r = 0; r<8;r++)
  {
    digitalWrite(R[r],LOW);//选通第r行
 
    //循环
    for(int c = 0;c<8;c++)
    {
      digitalWrite(C[c],dat[r][c]);
    }
    delay(1);
    Clear();  //清空显示去除余晖
  }
}

void Clear()                          //清空显示
{
  for(int i = 0;i<8;i++)
  {
    digitalWrite(R[i],HIGH);
  //  digitalWrite(C[i],LOW);
  }
}

实现效果
在这里插入图片描述

  • 12
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
要在Arduino上播放8*8点阵音乐,您需要使用一个小型音频模块,如DFPlayer Mini,它可以存储音频文件并通过串口控制播放。 您还需要一个8*8点阵LED模块,用于显示音乐节奏。 以下是基本的步骤: 1. 将DFPlayer Mini连接到Arduino,将点阵LED模块连接到Arduino的数字引脚。 2. 使用DFPlayer Mini的软件串口库将音乐文件上传到模块中。 3. 使用Arduino的音频库控制DFPlayer Mini,以便在点阵LED模块上播放音乐。 4. 使用Arduino的延迟函数来控制点阵LED的亮灭,以显示音乐的节奏。 这是一个简单的示例程序,演示如何使用DFPlayer Mini和点阵LED模块播放音乐: ``` #include <SoftwareSerial.h> #include <DFRobotDFPlayerMini.h> #include <LedControl.h> SoftwareSerial mySerial(10, 11); // RX, TX DFRobotDFPlayerMini myDFPlayer; LedControl lc = LedControl(5, 6, 7, 1); void setup() { mySerial.begin(9600); Serial.begin(115200); myDFPlayer.begin(mySerial); lc.shutdown(0, false); lc.setIntensity(0, 8); lc.clearDisplay(0); } void loop() { if (myDFPlayer.available()) { int command = myDFPlayer.readCommand(); if (command == DFPlayerPlayFinished) { lc.clearDisplay(0); } } int spectrum = myDFPlayer.readSpectrum(); if (spectrum > 0) { lc.clearDisplay(0); for (int i = 0; i < 8; i++) { int level = map(spectrum, 0, 1023, 0, 8); lc.setRow(0, i, (1 << level) - 1); } } delay(50); } ``` 这个程序使用DFPlayer Mini播放音乐并读取音频频谱,然后将频谱转换为点阵LED的亮度,以显示音乐的节奏。您可以自己编写代码,以便更好地适应您的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏小泡泡#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值