极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 32869|回复: 22

【迷你玩】玩I2C 8*8矩阵(一)

[复制链接]
发表于 2013-7-17 17:50:17 | 显示全部楼层 |阅读模式
     I2C接口的8X8矩阵是一个比较好玩的廉价显示系统,解决了以前8*8点阵连线复杂,驱动困难,费脑子等诸多问题,今天我们就来玩个简单的,点亮点阵上的一个点。

        本点阵使用了adafruit的相关驱动库及驱动方案。

具体库文件的安装请参看http://wiki.ocrobot.com/doku.php?id=zh:modules:red_i2c_8x8

下面是接线了





接线难度是不是已经变成负数的渣渣了呢?

好了,将下面的程序下载好,就可以了(当然,请仔细阅读下程序注释理解这个程序)。。。


  1. #include <Wire.h>
  2. #include "Adafruit_LEDBackpack.h"
  3. #include "Adafruit_GFX.h"

  4. Adafruit_BicolorMatrix matrix = Adafruit_BicolorMatrix();

  5. void setup() {
  6.   matrix.begin(0x70);  //设定显示屏地址位
  7. }
  8. void loop() {
  9. matrix.setRotation(4);    //设定初始0,0位置方向(0-3四个方向)
  10.   matrix.clear();      // 清屏
  11.   matrix.drawPixel(0, 0, LED_GREEN);   //设定显示颜色,和点的位置(请注意,除双色点阵外,其他颜色点阵均选择LED_GREEN或LED_YELLO)
  12.   matrix.writeDisplay();  //显示
  13.   delay(500);            
  14. }
复制代码


  matrix.drawPixel(0, 0, LED_GREEN);
这个语句中。0,0 分别为X,Y的坐标 取值范围0-7八个点


然后。。。。




让这个点在屏幕上乱窜,我们明天再玩~~~!或者自己研究
欲知后事如何,请听下回分解

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-7-17 18:35:23 | 显示全部楼层
关键在于:wher有卖
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-17 18:42:26 | 显示全部楼层
淘宝杂货铺有售
回复 支持 反对

使用道具 举报

发表于 2013-7-17 20:59:16 来自手机 | 显示全部楼层
wyyyh 发表于 2013-7-17 18:35
关键在于:wher有卖

刚买了个耍上,省了好多接口
回复 支持 反对

使用道具 举报

发表于 2013-7-17 22:42:29 | 显示全部楼层
求库函数和I2C协议帧格式
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-17 23:02:31 | 显示全部楼层
葱拌豆腐 发表于 2013-7-17 22:42
求库函数和I2C协议帧格式

看库的例程,与库,我也不怎么会玩
回复 支持 反对

使用道具 举报

发表于 2013-7-17 23:04:15 | 显示全部楼层
需要带转接板???这样搞有点悬啊!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-18 10:14:49 | 显示全部楼层
Randy 发表于 2013-7-17 23:04
需要带转接板???这样搞有点悬啊!

点阵和驱动板是弄好的
回复 支持 反对

使用道具 举报

发表于 2013-7-23 22:53:59 | 显示全部楼层
8x8点阵不是16个针脚么?
回复 支持 反对

使用道具 举报

发表于 2013-7-23 23:26:17 | 显示全部楼层
LZ方便给个购买的链接吗,我倒是对这个挺感兴趣的用SDA和SCL来控制
回复 支持 反对

使用道具 举报

发表于 2013-8-8 22:02:27 | 显示全部楼层
本帖最后由 chaoser 于 2013-8-8 22:05 编辑

有个问题请教一下:我在淘宝杂货铺买的双色8×8 I2C LED,跟LZ的一样,为啥写 matrix.drawPixel(0, 0, LED_GREEN) 时,亮红灯;写 matrix.drawPixel(0, 0, LED_RED) 时,亮绿灯?这不是反了吗?

仔细看看LZ的实验,似乎也是反的。难道要自己去改 Adafruit_LEDBackpack.cpp ?

此外,按照LZ注释试了下 LED_YELLO,提示 ‘LED_YELLO' was not declared in this scope。难道这是用在单色板上的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-9 21:04:01 | 显示全部楼层
chaoser 发表于 2013-8-8 22:02
有个问题请教一下:我在淘宝杂货铺买的双色8×8 I2C LED,跟LZ的一样,为啥写 matrix.drawPixel(0, 0, LED_ ...

有可能是我们的屏幕的管脚定义和adafruit的屏幕刚好相反的缘故。。。其实完全可以用0,1,代替。。。
回复 支持 反对

使用道具 举报

发表于 2013-8-24 22:06:47 | 显示全部楼层
这个点阵要怎么调节亮度呢?  红色看上去太亮了点,我串联了个220欧的电阻在vcc上可以不?还有其他方法吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-25 13:44:31 | 显示全部楼层
hisky 发表于 2013-8-24 22:06
这个点阵要怎么调节亮度呢?  红色看上去太亮了点,我串联了个220欧的电阻在vcc上可以不?还有其他方法吗?

亮度。。。额。。。这个还没试过,可以去库文件中找找。。因为芯片内置恒流,所以串电阻啥的肯定不能的
回复 支持 反对

使用道具 举报

发表于 2013-8-26 09:54:53 | 显示全部楼层
我试了下,串电阻可以调节亮度,就是不知道会不会对电路有影响。

库文件里面也看了下,好像没有调节亮度的函数   
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-29 00:08 , Processed in 0.082672 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表