Ansifa 发表于 2014-10-15 00:57
程序没写好,两块595一块高电平,一块低电平。电平轮流高低就会产生正反电压。建议贴出程序。
后来我用8个LED来做测试,用其中一块595接上所有LED的长脚,另一块595接上所有LED的短脚。也是当我想把第一个LED关闭时,给第一个LED两端都给高电平,结果就出现无论正接,反接都能点亮LED灯。我估计也是我程序没写好。程序如下,麻烦你帮我看看。
#include <TimerOne.h>
int latchpin = 8;
int clockpin = 12;
int datapin = 11;
byte led[8];
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);
} |