学习基于LABVIEW的Arduino开发设计 ——8*8LED点阵转圈圈

本文介绍了如何使用LABVIEW和LINX工具包控制8*8LED点阵进行旋转动画。首先,文章讨论了选择LIFA和LINX工具包的原因,然后详细讲解了在LABVIEW中编写代码的步骤,包括建立点阵模型、模拟点亮过程以及与Arduino的交互。最后,作者提出了在实现过程中遇到的程序运行异常问题,请求社区帮助解决。
摘要由CSDN通过智能技术生成

学习基于LABVIEW的Arduino开发设计 ——8*8LED点阵转圈圈

一、首先选择一个合适的工具包

1.LIFA

LIFA工具包虽然已经很久没有更新了,但是它有本教材可以参考,还有相应的源代码,很适合入门学习。
LIFA要去VIPM上面下载:
VIPM下载LIFA等工具
笔者下载的时候遇到个问题:
VIPM下载错误提示
找了很久的原因,发现是网络的问题。是的,下载VIPM里面的工具箱的时候,必须联网,而且要让VIPM知道你的IP地址。
如果你连了网还是有这个错误提示,那么就去LABVIEW里面的添加你的网络地址:
打开LABVIEW,在工具菜单栏下,找到选项,进去后找到VI服务器,添加你的当前网络的IP地址。
再重新下载一次。
参考:链接: 解决LIFA无法下载的问题.
然后就可以跑跑例子熟悉熟悉工作原理了。
然而,笔者并没有用LIFA来实现88点阵的控制,因为LIFA好像没有办法直接对A0-A5这几个模拟管脚进行写操作,要去修改固件什么的。
错误5001
这样子我要怎么操作8
8点阵的16个脚呢?
有点困难,再加上NI也推荐用LINX,所以,笔者愉快的转移到LINX去了。

2.LINX

这是一个基本上代替LIFA的工具包,用法类似,而且现在还在维护。下载方法同上,下载好了之后,烧录代码的方式和LIFA有区别。
LIFA是需要在Arduino IDE上面运行一个LIFA_base的固件程序,LINX就直接在LABVIEW的上选板子型号,然后连接,就可以执行了。
笔者简直是搬运工,这里网上也有很多教程步骤之类的。
比如这个:教你怎么用LINX.
到这一步,准备工作就好了。

二、画LABVIEW的代码

笔者要实现的是控制8*8点阵转圈圈,像螺旋一样。

1、8*8点阵

点阵的原理就不细讲了,笔者的连接方式简单粗暴,下面的图给出了点阵的管脚和arduino管脚的对应方式。其中R表示行,C表示列
连接方法
然后呢,硬件电路也搭建好了。
接下来就是写代码的事儿了。

2、先写Arduino代码,理逻辑思路。

点阵的原理懂了的话,要实现点阵螺旋进去,其实就是对行和列进行循环点亮。比如,先循环点亮第一行,有8个灯,首先要把所有管脚初始化,让所有灯都灭掉。然后把控制第一行的管脚拉高(有效状态),比如我的是arduino上面的2管脚,然后依次把1到8列的管脚拉低,逐个点亮灯。
列的原理也是一样,合起来,要实现灯旋转着亮进去,需要注意每次每一行每一列的点亮的个数不一样。最后转进去了,一行一列的需要亮的灯的个数就很少了。
这样算起来,按照8,7,7,6,6。。。这样子每次都控制一行或者一列的灯循环点亮,光是转进去,就需要16个循环了。
转出来,又是16个。

有没有简单一点的呢,笔者没有找到更简单的方法。
最多,找了点规律,把转一圈总体当成一个循环,可以减少一点点代码量。

下面是arduino的代码:

/*
 * Matrix
 * 8*8点阵屏显示驱动
 */
int leds[8] = {
   2,3,4,5,6,7,8,9}; //点阵屏正极引脚
int gnds[8] = {
   10,11,12,13,14,15,16,17}; //点阵屏负极引脚
int t=200; //延迟时间

void setup() {
   
  for (int i = 0; i < 8; i++)
  {
   
    pinMode(leds[i], OUTPUT);
    pinMode(gnds[i], OUTPUT);
    
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值