小华盛顿 发表于 2014-10-14 21:08:48

用arduino和两片74HC595控制8X8点阵的问题

我用两片74HC595控制8X8点阵。一片控制行,一边控制列,现在出现了一个问题,LED灯的两端都给高电平时,LED灯也能亮。用万用表测两端的电压为-1V,此时接上单个LED,无论正负极如接,都能点亮LED。可能是什么原因呀?求助呀。。。我搞了一天了。没弄出来

STCunio 发表于 2014-10-14 22:32:21

换块点阵试试,我用两片74HC595驱动点阵正常,用shiftout就可以

Ansifa 发表于 2014-10-15 00:57:30

程序没写好,两块595一块高电平,一块低电平。电平轮流高低就会产生正反电压。建议贴出程序。

小华盛顿 发表于 2014-10-15 08:54:26

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);
}

Ansifa 发表于 2014-10-15 18:18:01

shiftit(B11100000);
shiftit(B11111111)
而不是
shiftit(11100000);
shiftit(11111111);

小华盛顿 发表于 2014-10-15 21:52:10

Ansifa 发表于 2014-10-15 18:18 static/image/common/back.gif
shiftit(B11100000);
shiftit(B11111111)
而不是


之前的问题解决了,非常感谢你:P。还有一个问题就是:控制点阵时,想要的图像是显示出来了,但是不让它亮的部分,还是有一定的亮度(影子),不知道这是不是正常现象?有没有办法解决?

Ansifa 发表于 2014-10-16 01:22:55

小华盛顿 发表于 2014-10-15 21:52 static/image/common/back.gif
之前的问题解决了,非常感谢你。还有一个问题就是:控制点阵时,想要的图像是显示出来了,但是不让它亮 ...

digitalWrite(latchpin,LOW);
delay(1);
shiftit(B11100000);
shiftit(B11111111);
digitalWrite(latchpin,HIGH);

加一个delay(1)就没有影子了

小华盛顿 发表于 2014-10-16 11:40:48

谢谢,已经解决了。:)

会飞的土豆 发表于 2018-1-15 14:08:14

您好, 我现在也是遇到的这个问题,两片595控制8*8点阵,我不知道是怎么连接的,求指教
页: [1]
查看完整版本: 用arduino和两片74HC595控制8X8点阵的问题