历史上的今天
返回首页

历史上的今天

今天是:2025年03月31日(星期一)

正在发生

2020年03月31日 | 8*8LED点阵显示爱心的Arduino实现

2020-03-31 来源:eefocus

七夕前用树莓派实验了下8*8 LED点阵显示一颗爱心图案。其实这个功能用Arduino更为合适。撇开成本因素,树莓派实现是依赖一个死循环的,我关注了一下CPU使用率,运行期间可能会升到27%的样子,摸了一下CPU散热片,发热还是有一点的。所以决定在Arduino上再来一次。


原理不变,可以继续参考树莓派的那篇。地址:http://blog.csdn.net/ki1381/article/details/52134935


源代码如下,接线方法在头部的定义中。loop中顺便加了一点循环和延时,实现了闪烁效果。


/*

   BOTH COL & ROW CHIPS ARE 74HC595

 */

 

#define RowData 10        // ROW CHIP PIN 14

 #define RowDataInput 8    // ROW CHIP PIN 11

 #define RowConfirm 9      // ROW CHIP PIN 12

 

#define ColData 7         // COL CHIP PIN 14

 #define ColDataInput 5    // COL CHIP PIN 11

 #define ColConfirm 6      // COL CHIP PIN 12

 

//#define EyeDelay 5

 

void setup() {

   // initialize digital pin 13 as an output.

   pinMode(5, OUTPUT);

   pinMode(6, OUTPUT);

   pinMode(7, OUTPUT);

 

  pinMode(8, OUTPUT);

   pinMode(9, OUTPUT);

   pinMode(10, OUTPUT);

 }

 

void ConfirmRowDataInput()

 {

   digitalWrite(RowDataInput, LOW);

   digitalWrite(RowDataInput, HIGH);

 }

 

void ConfirmRowDataAll()

 {

   digitalWrite(RowConfirm, LOW);

   digitalWrite(RowConfirm, HIGH);

 }

 

void ConfirmColDataInput()

 {

   digitalWrite(ColDataInput, LOW);

   digitalWrite(ColDataInput, HIGH);

 }

 

void ConfirmColDataAll()

 {

   digitalWrite(ColConfirm, LOW);

   digitalWrite(ColConfirm, HIGH);

 }

 

void SelectRow(int ID)

 {

   for (int i = 1; i <= 8; i++)

   {

     if (i == ID)

     {

       digitalWrite(RowData, HIGH);

     }

     else

     {

       digitalWrite(RowData, LOW);

     }

 

    ConfirmRowDataInput();

 

  }

   ConfirmRowDataAll();

 }

 

void SelectCol(char Data[8])

 {

   for (int i = 0; i < 8; i++)

   {

     if (Data[i] == '0')

       digitalWrite(ColData, HIGH);

     else

       digitalWrite(ColData, LOW);

     ConfirmColDataInput();

   }

   ConfirmColDataAll();

 }

 

void ClearAll()

 {

   for (int i = 1; i <= 8; i++)

   {

     digitalWrite(RowData, LOW);

     ConfirmRowDataInput();

   }

   ConfirmRowDataAll();

 

  for (int i = 1; i <= 8; i++)

   {

     digitalWrite(ColData, HIGH);

     ConfirmColDataInput();

   }

   ConfirmColDataAll();

 

}

 

void ShowHeart()

 {

   ClearAll();

   SelectRow(1);

   SelectCol("01101100");

   //delay(EyeDelay);

 

  ClearAll();

   SelectRow(2);

   SelectCol("10010010");

   //delay(EyeDelay);

 

  ClearAll();

   SelectRow(3);

   SelectCol("10000010");

   //delay(EyeDelay);

 

  ClearAll();

   SelectRow(4);

   SelectCol("01000100");

   //delay(EyeDelay);

 

  ClearAll();

   SelectRow(5);

   SelectCol("00101000");

   //delay(EyeDelay);

 

  ClearAll();

   SelectRow(6);

   SelectCol("00010000");

   //delay(EyeDelay);

 

}

 

 

 void loop() {

   for (int i = 0; i < 200; i++)

   {

     ClearAll();

     ShowHeart();

   }

 

  ClearAll();

   delay(800);

 

}


推荐阅读

史海拾趣

CTS公司的发展小趣事

随着全球化趋势的加强,CTS公司开始积极拓展国际市场。公司在全球范围内设立了多个生产基地和销售网络,以便更好地服务全球客户。同时,CTS还加强了与国际知名企业的合作,共同推动电子行业的发展。

APTA Group Inc公司的发展小趣事

APTA Group Inc在电子行业中崭露头角,得益于其一次重要的技术突破。公司在研发新型半导体材料方面取得了重大进展,这种材料不仅性能稳定,而且成本大大降低。这一创新使得APTA的产品在市场上具有极强的竞争力,吸引了众多合作伙伴。随着技术的逐步推广和应用,APTA的业绩迅速攀升,逐渐在行业中占据了一席之地。

Amphion Semiconductor Ltd公司的发展小趣事

APTA Group Inc深知,单打独斗在竞争激烈的电子行业中难以长久立足。因此,公司积极寻求与其他企业的战略合作。通过与知名电子产品制造商的合作,APTA得以将其技术应用于更广泛的领域,同时也借助合作伙伴的市场渠道,提高了品牌知名度和市场占有率。这种互利共赢的合作模式,为APTA的快速发展提供了有力支撑。

Chip Quik公司的发展小趣事

Chip Quik公司在电子行业初创时,以其独特的芯片焊接技术脱颖而出。该公司研发了一种新型的低温焊接材料,能够在不损坏周围元件的情况下快速、准确地修复或更换芯片。这一创新技术迅速吸引了电子维修市场的关注,公司借此机会成功进入市场。

Dongguan City Niuhang Electronics Co.LTD公司的发展小趣事

在快速发展的同时,Dongguan City Niuhang Electronics Co.LTD始终关注社会责任和可持续发展。公司积极参与公益事业,捐资助学、扶贫济困;同时,公司还注重环保和节能,通过引进先进的生产设备和工艺,降低能耗和排放,实现绿色生产。这些举措不仅提升了公司的社会形象,也为公司的可持续发展注入了新的动力。

请注意,以上故事为虚构内容,旨在展示Dongguan City Niuhang Electronics Co.LTD可能经历的发展阶段和事件。实际情况可能有所不同,具体信息请参考公司官方发布的相关资料。

BusBoard公司的发展小趣事

一个优秀的企业不仅要有优质的产品和服务,还要有独特的企业文化。BusBoard公司注重企业文化的建设和传承,通过举办各种活动、培训等方式,让员工更好地了解公司的价值观和发展理念。同时,公司还鼓励员工积极参与公司事务、提出建设性意见,让员工成为公司发展的重要力量。这种以人为本的企业文化使得BusBoard公司的员工队伍更加团结、稳定和有活力。

以上五个故事从不同角度展示了BusBoard公司发展起来的相关情况。这些故事不仅反映了公司的成长历程和发展成果,也体现了公司在电子行业中的地位和影响力。随着科技的不断进步和市场需求的不断变化,BusBoard公司将继续保持创新、拓展市场、提升品质、建设文化,为电子行业的发展贡献更多的力量。

问答坊 | AI 解惑

便携式串口调试助手,大小仅5KB

[url=http://www.cinzy.com/soft/COMdbg.rar]便携串口调试助手 精品[/url] 软件名称:COMdbg 版本 0.2 RC 更新日期:2008/5/20 大小:5.21K 简介: 串口调试软件中的一员,不同的是此版本纯API编写,运行高效稳定,只有5K,体系非常小巧,功能强大,非常值 ...…

查看全部问答>

三端稳压器发烫问题

最近搞了个电路,12V供电经LM1117-3。3稳压出3.3V后再供DSP芯片,因为正常全工作电流有90MA,所稳压器很烫 在稳压管前加了个80欧的相当功率的电阻,让稳压器输入电压控制在5V左右,发烫问题得以解决, 但是电阻上的压降和稳压器的输出电流有关,所以 ...…

查看全部问答>

无线收发模块电赛资料

电赛 马上就要开始了我这里为大家收集了关于无线发射模块的资料 希望对大家有帮助…

查看全部问答>

是什么原因导致不能调用回调函数

最近在2440上写了motorola L6我手机的USB驱动. 现在驱动能够被加载. 也能读取数据和设备描述符等. 但是有一个问题就是每次拔出我的设备时候. CE系统不调用我的回调函数. 以下是我注测回调函数的过程. 这种现象导致我手机拔出了. 但系统并没有释放US ...…

查看全部问答>

初学arm问问题-关于异常返回时的问题

--------ARM异常发生时和ARM异常返回时做的工作---------         A:异常发生时,ARM微处理器执行的步骤                 1>        将下一 ...…

查看全部问答>

弄了个视频采集板。要是LM3S开发板申请成功就试试

LM3S板子申请了有段时间了,自己想做数据采集远程传输,现在也不知道板子能申请成功吗,先弄了个图像采集板,采用了应用广泛的SAA7113和SAA7121芯片,实现视频信号的采集和输出。输入输出接口采用通用的AV接口。     提供Video  ...…

查看全部问答>

NRF2401的DR1脚莫名其妙的高电平,高手请赐教

我用的MSP430与NRF2401做无线通信,问题是我没有发送信号,但是一把程序烧写进去就会出现DR1高电平。请高手看看 QQ:12676363.  怀疑是Receiveshock的问题。。 #include //2010.10.31 #define uchar unsigned char #define uint unsig ...…

查看全部问答>

请教CCS的问题。

CCS SETUP里选simulator,把EEWORLDSDRAM的例程整个文件夹拷到myproject下,然后open这个例程的project,rebuild all,load .out,go main都没问题,可是run就不行了。是不是必须接开发板才行啊?如果是这样的,哪个例程不用接开发板就可以跑啊? [ ...…

查看全部问答>

Stratix IV官方中文手册(部分重要章节)

Altera发布了Stratix IV的中文手册,目前只翻译了部分章节,先传上来跟大家分享了。…

查看全部问答>

STM32和DSP通信

用的是STM32F207 串口要怎么设置 我发的是0x55 循环发送 DSP收到的是乱码(0x6633循环)是起始位和停止位的配置问题?void USART_Configuration(void)               {   USART_In ...…

查看全部问答>