我正在使用Arduino Due和4x MAX7219 IC来控制LEDs的16x16矩阵。它运行良好,但只有一个LED保持打开(在第0行第15行),即使我清除显示器,甚至手动将其关闭。
我使用LED控制库found on the Arduino playground。
如何关闭那个?
答案 0 :(得分:2)
快速查看后,MAX7219由SPI bus控制。我很难解释如何在总线上正确通信芯片会给你这个问题。如果整个季度小组不起作用那么就会有所不同。
我敢打赌这是一个布线问题(我讨厌说因为它没用)。
LedControl(int dataPin, int clkPin, int csPin, int numDevices);
LedControl(int ?, int ?, int ?, int 4);
检查numDevices应该是4。
我要做的第一件事就是更换MAX7219芯片。如果你有任何备份,我会将它们交换为无效的备份。如果您没有备份,请使用损坏的备份切换正常工作。
我有两个问题:
Arduino是否“认为”LED已开启?
MAX7219是否认为LED已亮起
要回答第一个问题,我会编辑LedControl类的.h文件。我会将数组调用状态[64]公开,以便您可以在客户端代码中查看它。
byte status[64];
将第52行移到67以下。现在您可以访问主代码中的状态数组。它应该看起来像:
LedControl lc=LedControl(12,11,10,1);
for(int i; i <8 ; i++)
Serial.println(lc.status[8*3+i])
回答第二个问题会更加困难。
答案 1 :(得分:0)
原因可能与Arduino Due有关,只接受3.3v而MAX7219需要5v,这可能是你遇到的问题需要google 5v逻辑到3.3v逻辑
答案 2 :(得分:0)
Ow忘记发布答案了。 显然当你连接led错误时它仍然存在,所以这就是问题:D
所以,如果您的指示灯仍然亮着,请检查它是否正确连接xD