【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);
  }
}

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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夏小泡泡#

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

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

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

打赏作者

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

抵扣说明:

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

余额充值