又见 发表于 2014-12-22 20:26:09

蛮不错哦

pumpitup 发表于 2015-6-8 22:03:14

想问一下,为什么两边都要加电阻呢。
在一侧应该够了吧。

pumpitup 发表于 2015-6-10 11:52:55

丢一个用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]
查看完整版本: Arduino最小系统驱动5*5 LED 点阵