想问一下,为什么两边都要加电阻呢。
在一侧应该够了吧。 丢一个用lz的方法使用8个口控制16个LED。
能实现,但是灯光变暗了。。
int group[] = {7, 4, 3, 2}; //从左向右
int member[] = {11, 10, 9, 8}; //接正
unsigned char ledStatus;
long int lastTime;
int mode = 1;
int v1CurLed;
void setLed()
{
if (1==mode)
{
for(int i=0;i<15;i++) ledStatus=0;
v1CurLed = 0;
ledStatus = 1;
}
}
void nextLed()
{
ledStatus = 0;
v1CurLed++;
if (v1CurLed>15) v1CurLed = 0;
ledStatus = 1;
}
void freshLed()
{
for (int g=0; g<=3; g++)
{
digitalWrite(group, LOW);
for (int m=0;m<=3;m++)
{
int thisLed = ledStatus;
digitalWrite(member, thisLed);
if (thisLed == 1)
digitalWrite(member, LOW);
}
digitalWrite(group, HIGH);
}
}
void setup() {
for (int i=0;i<=3;i++)
{
pinMode(group, OUTPUT);
pinMode(member, OUTPUT);
digitalWrite(group, HIGH);
digitalWrite(member, LOW);
}
setLed();
}
void loop()
{
long int currentTime = millis();
if (currentTime - lastTime>100)
{
nextLed();
lastTime = millis();
}
freshLed();
}
页:
1
[2]