用arduino和两片74HC595控制8X8点阵的问题
我用两片74HC595控制8X8点阵。一片控制行,一边控制列,现在出现了一个问题,LED灯的两端都给高电平时,LED灯也能亮。用万用表测两端的电压为-1V,此时接上单个LED,无论正负极如接,都能点亮LED。可能是什么原因呀?求助呀。。。我搞了一天了。没弄出来换块点阵试试,我用两片74HC595驱动点阵正常,用shiftout就可以 程序没写好,两块595一块高电平,一块低电平。电平轮流高低就会产生正反电压。建议贴出程序。 Ansifa 发表于 2014-10-15 00:57 static/image/common/back.gif
程序没写好,两块595一块高电平,一块低电平。电平轮流高低就会产生正反电压。建议贴出程序。
后来我用8个LED来做测试,用其中一块595接上所有LED的长脚,另一块595接上所有LED的短脚。也是当我想把第一个LED关闭时,给第一个LED两端都给高电平,结果就出现无论正接,反接都能点亮LED灯。我估计也是我程序没写好。程序如下,麻烦你帮我看看。
#include <TimerOne.h>
int latchpin = 8;
int clockpin = 12;
int datapin = 11;
byte led;
void setup()
{
pinMode (latchpin,OUTPUT);
pinMode (clockpin,OUTPUT);
pinMode (datapin,OUTPUT);
}
void loop()
{
digitalWrite(latchpin,LOW);
shiftit(11100000);
shiftit(11111111);
digitalWrite(latchpin,HIGH);
}
void shiftit(byte dataout)
{
boolean pinstate;
digitalWrite (datapin,LOW);
digitalWrite(clockpin,LOW);
for (int i = 0;i < 8;i ++)
{
digitalWrite(clockpin,LOW);
if(dataout &(1 << i))
{
pinstate = HIGH;
}
else
{
pinstate = LOW;
}
digitalWrite(datapin,pinstate);
digitalWrite(clockpin,HIGH);
digitalWrite(datapin,LOW);
}
digitalWrite(clockpin,LOW);
} shiftit(B11100000);
shiftit(B11111111)
而不是
shiftit(11100000);
shiftit(11111111); Ansifa 发表于 2014-10-15 18:18 static/image/common/back.gif
shiftit(B11100000);
shiftit(B11111111)
而不是
之前的问题解决了,非常感谢你:P。还有一个问题就是:控制点阵时,想要的图像是显示出来了,但是不让它亮的部分,还是有一定的亮度(影子),不知道这是不是正常现象?有没有办法解决? 小华盛顿 发表于 2014-10-15 21:52 static/image/common/back.gif
之前的问题解决了,非常感谢你。还有一个问题就是:控制点阵时,想要的图像是显示出来了,但是不让它亮 ...
digitalWrite(latchpin,LOW);
delay(1);
shiftit(B11100000);
shiftit(B11111111);
digitalWrite(latchpin,HIGH);
加一个delay(1)就没有影子了 谢谢,已经解决了。:) 您好, 我现在也是遇到的这个问题,两片595控制8*8点阵,我不知道是怎么连接的,求指教
页:
[1]