Arduino LED Matrix

Max7219 + 8x8 LED Matrix

滚动显示 I ?? U。

算法很简单,首先定义滚动画面8x32矩阵。通过generate_8x8_matrix函数生成当前循环中应当显示的8x8矩阵,通过LedControl模块的setLed设置对应的点阵即可。

不要放太久,因为times是一个int型,并未进行溢出情况的处理。

 1 #include <LedControl.h>
 2
 3 int DIN = 12;
 4 int CS =  11;
 5 int CLK = 10;
 6
 7 char TOTAL[8][32] = {
 8   {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0},
 9   {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0},
10   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0},
11   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0},
12   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0},
13   {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0},
14   {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0},
15   {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0},
16 };
17
18 void generate_8x8_matrix(char in[8][32], int current_column, char *out_matrix)
19 {
20   int lines = 8;
21   int columns = 32;
22   int i = 0;
23   int j = 0;
24   for (i = 0; i < lines; ++i)
25   {
26     for (j = current_column; j < current_column + 8; ++j)
27     {
28       out_matrix[i * lines + j - current_column] = in[i][j % columns];
29     }
30   }
31 }
32
33
34 LedControl lc = LedControl(DIN, CLK, CS, 4);
35
36 void setup() {
37   lc.shutdown(0, false);
38   lc.setIntensity(0, 8);
39   lc.clearDisplay(0);
40 }
41
42 int times = 0;
43 void loop() {
44   char matrix[64] = {0};
45   generate_8x8_matrix(TOTAL, times++, matrix);
46   int i = 0;
47   int j = 0;
48   for (i = 0; i < 8; ++i)
49   {
50     for (j = 0; j < 8; ++j)
51     {
52       lc.setLed(0, i, j, matrix[(i * 8 + j)] == 1 ? true : false);
53     }
54   }
55   delay(100);
56 }
时间: 2024-10-05 04:44:52

Arduino LED Matrix的相关文章

如何用 JavaScript 控制 Arduino?

Arduino 运行 C 语言,而主控端运行 JavaScript,一次要编写和维护两种程序.既然浏览器和服务器都用 JavaScript,若 Arduino 也能用 JavaScript 控制,那岂不完美? 这就是 Rick Waldron 设计 Johnny-Five 库文件的原因.Johnny-Five 是1986 年上映的科幻电影"Short Circuit(直译为"短路",译作"霹雳五号")"当中的机器人主角的名字.电影中的机器人原本是

Arduino连接MPU6050陀螺仪

一.线路连接 Arduino MPU6050 VCC 3.3V/5V GND GND SCL A5 SDA A4 INT D2 二.库下载 https://pan.baidu.com/s/1nvt75tJ 下载后,将相关库文件放进Arduino的libraries文件夹中 三.示例代码 // I2C device class (I2Cdev) demonstration Arduino sketch for MPU6050 class // 10/7/2011 by Jeff Rowberg <

玩转u8g2 OLED库,一篇就够

1.前言 ????最近博主听到QQ群里面问得比较多的问题: ????"博哥,有玩过OLED吗?" ????"博哥,有试过在ESP8266上调成功过SSD1306吗?" ????"博哥,OLED上显示天气信息怎么弄?" ????........ ????诸如此类的问题,在博主看来,无非都是对OLED库用法的不熟悉甚至不了解.Arduino OLED库众多,博主也曾经介绍过一款 <博哥OLED系列>- 玩转SSD1306-12864 OL

ros_arduino_bridge功能包的使用

写在前面 概述 关于ROS官方文档 系统要求 在你的Linux下准备串口 安装ros_arduino_bridge功能包集 加载ROSArduinoBridge的Sketch 固件程序命令 测试你的电线连接 配置ros_arduino_python节点 启动ros_arduino_python节点 查看传感器数据 发送Twist命令与查看里程计数据 ROS服务 使用板上编码器计数仅支持ArduinoUno NOTE 可能遇到的错误 参考资料 写在前面 本文是根据ros_arduino_bridg

用Raspberry Pi搭建Azure IOT解决方案

Raspberry Pi是一款基于Linux的单板机电脑.它由英国的树莓派基金会所开发,目的是以低价硬件及自由软件刺激在学校的基本计算机科学教育.树莓派配备一枚博通(Broadcom)出产的ARM架构700MHz BCM2835处理器,256MB內存(B型已升级到512MB内存),使用SD卡当作存储媒体,且拥有一个Ethernet.两个USB接口.以及HDMI(支持声音输出)和RCA端子输出支持.树莓派只有一张信用卡大小,体积大概是一个火柴盒大小,可以运行像<雷神之锤III竞技场>的游戏和进行

程序员技术宅万圣节自制“南瓜俄罗斯方块”

南瓜灯是万圣节必备的东西,但如果把南瓜和经典视频游戏俄罗斯方块结合在一起,会产生什么新东西呢?Pumpktris(南瓜俄罗斯方块)!国外程序员技术宅 Nathan 童鞋就 DIY 了一个 Pumpktris,把做好的电路板放在南瓜中,南瓜柄当游戏控制器,完全可以打一把! Nathan 还把制作“南瓜俄罗斯方块”的过程制作成文,星密码货源网编译如下. 创意 写下所有疯狂.一闪而过的想法,这是我的习惯之一,然后回头再检查,而不是当时做判断,这样也不会把创意忘掉.在10月份初,我在回想去年的一个创意,

Arduino周边模块:LED部件

Arduino周边模块:LED部件 1. LED的使用 LED的原理: LED是会发光的二极管,它具有单向导电性.两端加上正向电压,即能将电能转化为光能. 正向电压就是正极加高电压,负极加低电压 对于LED的正负极判断: 一般长引脚的是正极,短引脚的是负极. 观察LED的头部,里面有一宽一窄两个金属块,一般窄的金属块连接的引脚是正极,宽的金属块连接的引脚是负极. 数字电平: 电压的另一种解读方式 高电平对应数字逻辑的1,低电平对应数字逻辑的0 Arduino的数字端口 (在数字端口不够用的情况下

最新 Arduino 驱动 12接口/户外 LED显示屏/LED点阵屏/LED单元板

起因 现有的驱动LED显示屏的资料,比较好的只有这个.但是它驱动的是08接口的室内显示屏,而我要驱动的是12接口的户外显示屏.两种屏幕的区别在于户外屏幕点阵比较稀疏,而且二者的扫描方式,驱动方式都不太一样.我花了一个下午才摸索出了它的使用方式,因此分享给大家,希望大家不必再绕弯路. 材料准备 12接口(户外)LED单元板一块:比如我是从[这里]买的,大家搜索“半户外 LED 单元板”就可以了.我的板是16x32大小. Arduino Uno一块 5V电源一个(比如充电宝.给手机充电的头) 硬件搭

【Arduino】8地点LED数码管(3461BS)

淘宝买了一块3461BS的8地点LED数码管,婴儿就迫不及待地尝试,结果看到了文件,好家伙无Arduino测试程序. 莫急~莫急~无论如何串行操作,大不了呗瞎蒙! 以下几点是在更有趣的点瞎蒙: 1.须要了解什么是"上升沿"."下降沿".否则看參考代码(文档仅仅提供51单片机的DEMO)会认为非常迷糊 2.怎样显示小数点?这个文档中提都没提到,经研究发现每一个字符(如0用0xC0表示)的最高位(即左数第一位)都是1(两进制表示).于是我试探性的将其与上0x7f(即0x