Hallo
ich hoffe ich bin hier richtig, wenn ich eine Frage zu einem Code habe.. ![]()
Also, hier erstmal der Code :
unsigned char i;
unsigned char j;
/*Port Definitions*/
int Max7219_pinCLK = 10;
int Max7219_pinCS = 9;
int Max7219_pinDIN = 8;
int Max7219_pinCLK1 = 7;
int Max7219_pinCS1 = 6;
int Max7219_pinDIN1 = 5;
int pos = 0;
int pingPin = 13;
int inPin = 12;
unsigned char disp1[38][8]={
{0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8},//T
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O
{0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R
};
unsigned char disp2[38][8]={
{0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8},//T
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O
{0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R
};
void Write_Max7219_byte(unsigned char DATA)
{ Â
      unsigned char i;
   digitalWrite(Max7219_pinCS,LOW);  Â
   for(i=8;i>=1;i--)
     {  Â
      digitalWrite(Max7219_pinCLK,LOW);
      digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data
      DATA = DATA<<1;
      digitalWrite(Max7219_pinCLK,HIGH);
     }                Â
}
void Write_Max7219_byte1(unsigned char DATA)
{ Â
      unsigned char i;
   digitalWrite(Max7219_pinCS1,LOW);  Â
   for(i=8;i>=1;i--)
     {  Â
      digitalWrite(Max7219_pinCLK1,LOW);
      digitalWrite(Max7219_pinDIN1,DATA&0x80);// Extracting a bit data
      DATA = DATA<<1;
      digitalWrite(Max7219_pinCLK1,HIGH);
     }                Â
}
void Write_Max7219(unsigned char address,unsigned char dat)
{
    digitalWrite(Max7219_pinCS,LOW);
    Write_Max7219_byte(address);      //address,code of LED
    Write_Max7219_byte(dat);        //data,figure on LED
    digitalWrite(Max7219_pinCS,HIGH);
}
void Write_Max72191(unsigned char address,unsigned char dat)
{
    digitalWrite(Max7219_pinCS1,LOW);
    Write_Max7219_byte(address);      //address,code of LED
    Write_Max7219_byte(dat);        //data,figure on LED
    digitalWrite(Max7219_pinCS1,HIGH);
}
void Init_MAX7219(void)
{
Write_Max7219(0x09, 0x00);    //decoding :BCD
Write_Max7219(0x0a, 0x03); Â Â Â //brightness
Write_Max7219(0x0b, 0x07); Â Â Â //scanlimitï¼›8 LEDs
Write_Max7219(0x0c, 0x01);    //power-down mode:0,normal mode:1
Write_Max7219(0x0f, 0x00);    //test display:1;EOT,display:0
}
void Init_MAX72191(void)
{
Write_Max7219(0x09, 0x00);    //decoding :BCD
Write_Max7219(0x0a, 0x03); Â Â Â //brightness
Write_Max7219(0x0b, 0x07); Â Â Â //scanlimitï¼›8 LEDs
Write_Max7219(0x0c, 0x01);    //power-down mode:0,normal mode:1
Write_Max7219(0x0f, 0x00);    //test display:1;EOT,display:0
}
void setup()
{
 Serial.begin(9600);
 pinMode(Max7219_pinCLK,OUTPUT);
 pinMode(Max7219_pinCS,OUTPUT);
 pinMode(Max7219_pinDIN,OUTPUT);
 delay(50);
 Init_MAX7219();
 pinMode(Max7219_pinCLK1,OUTPUT);
 pinMode(Max7219_pinCS1,OUTPUT);
 pinMode(Max7219_pinDIN1,OUTPUT);
 delay(50);
 Init_MAX7219();
}
void loop(){
long duration, inches, cm;
pinMode (pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
pinMode(inPin, INPUT);
duration = pulseIn(inPin, HIGH);
cm = microsecondsToCentimeters(duration);
if(cm < 4){
for(j=0;j<38;j++)
 {
 for(i=1;i<9;i++)
  Write_Max7219(i,disp1[j][i-1]);
 delay(300);
 }  Â
}
Serial.println(cm, DEC);
delay(10);
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}
So jetzt meine Frage:
Wie ihr seht habe ich versucht 2 Matrix Boards gleichzeitig ans Laufen zu bekommen.. Das hat nicht so ganz funktioniert...Eine Matrix funktioniert und reagiert auf den Ultraschallsensor, das funktioniert allerdings nur alle 20 Sekunden... Und das andere Board leuchtet einfach nur durch... Ich möchte irgendwann soweit sein auf 3 Matrix LEDs die Buchstaben T, O und R aufblinken zu lassen.. Also für "TOR"
Kann mit jemand helfen? Reicht das an Infos um mein Problem zu lösen? Danke im Voraus,
LG Marvin