我正在使用Arduino Due和 4x MAX7219 IC 来控制 16x16 的LED矩阵。它工作得很好,但只有一个 LED 保持亮着(在第 0 行第 15 行),即使我清除了我的显示器,甚至手动关闭它。
我使用Arduino 游乐场上的 LED 控制库。
我如何关闭那个?
我正在使用Arduino Due和 4x MAX7219 IC 来控制 16x16 的LED矩阵。它工作得很好,但只有一个 LED 保持亮着(在第 0 行第 15 行),即使我清除了我的显示器,甚至手动关闭它。
我使用Arduino 游乐场上的 LED 控制库。
我如何关闭那个?
快速浏览一下 MAX7219 是由SPI 总线控制的。我很难解释在总线上正确通信的芯片如何给你这个问题。如果整个四分之一面板都不起作用,那么情况会有所不同。
我敢打赌这是一个接线问题(我不想这么说,因为它没有帮助)。
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])
第二个问题会更难回答。
原因可能与 Arduino Due 只接受 3.3v 和 MAX7219 需要 5v 有关,所以这可能是您遇到的问题,您需要 google 5v 逻辑到 3.3v 逻辑
Ow忘了发布答案。显然,当您连接错误的 LED 时,它仍然亮着,这就是问题所在:D
因此,如果您的 LED 仍然亮着,请检查它是否连接正确 xD