wilson16 发表于 2013-9-8 17:57:05

Arduino 和8x8 dot matrix 问题


好不容易可以显示到一个A字。但看会去自己的programming, array很奇怪。其实我只是要做比如两个input(Active low),当第一个input1 trigger时,会显示A。如果是input2 trigger 时会显示B。大概是这样。但写到这边,不会了。 我用两个74HC595。一个col,一个给Row。

http://imageshack.us/a/img837/1123/ceeb.jpg


int latchPin = 5;
int clockPin = 6;
int dataPin = 4;
int i,j;

int row;
int rowlatchPin = 10;
int rowclockPin = 9;
int rowdataPin = 8;



byte colMatrix[] = {

{0x00},
{0x3f},
{0x44},
{0x44},
{0x44},
{0x44},
{0x3f},
{0x00}

};

void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);

   pinMode(rowlatchPin, OUTPUT);
pinMode(rowdataPin, OUTPUT);
pinMode(rowclockPin, OUTPUT);
}

void loop()
{
/*leds = 0;
updateShiftRegister();
delay(500);
for (int i = 0; i < 8; i++)
{
    bitSet(leds, i);
    updateShiftRegister();
    delay(500);
}*/

   //use a nested for loop to initialize all the pins

   for(row = 0; row <8; row++)
   {
    int rowbit= 1<<row;
    digitalWrite(rowlatchPin, LOW);
    shiftOut(rowdataPin, rowclockPin, MSBFIRST,rowbit);
   
    digitalWrite(latchPin, LOW);
   
    for(int j =7; j>=0; j--)
    {
    shiftOut(dataPin, clockPin, MSBFIRST, colMatrix);
    }
   digitalWrite(latchPin, HIGH);
   digitalWrite(rowlatchPin, HIGH);
   delayMicroseconds(500);
   }   
}

wilson16 发表于 2013-9-8 17:58:25

希望你们帮帮忙。:D
页: [1]
查看完整版本: Arduino 和8x8 dot matrix 问题