Arduino Polska Forum
Matryca LED matrix 8x8 - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Diody LED i Multiplexing (https://forum.arduinopolska.pl/dzial-diody-led-i-multiplexing)
+--- Wątek: Matryca LED matrix 8x8 (/watek-matryca-led-matrix-8x8)



Matryca LED matrix 8x8 - korsarz - 24-11-2018

Witam szanowne grono,
zacznę od tego, że nie jestem jeszcze zbyt biegły w pisaniu programów. Czasami potrzebuje podpowiedzi. 
Ale do rzeczy. Chcę za pomocą wspomnianej matrycy wyświetlać odległość od przeszkody. Mam cztery czujniki HC SR04, każde dwa rządki LED odpowiadają jednemu czujnikowi. 
Problem polega na tym, że każdy czujnik "wyświetlając odległość gasi odczyt poprzedniego" i powstaje cykliczne mruganie. Jest to spowodowane adresowaniem ledów, dlatego chciałem pod koniec programu dodawać tablice odpowiednich bitów i dopiero wysyłać jedną tablicę do matrycy. Niestety nie mogę sobie z tym poradzić już od tygodnia. Czy ktoś ma pomysł jak to rozwiązać?
 
Zestaw tablic do jednego czujnika:
byte aa1[8]=     {0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00};        //Tablica bitów z wyświetlacza LED1
byte bb1[8]=     {0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00};
byte cc1[8]=     {0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00};
byte dd1[8]=     {0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00};
byte ee1[8]=     {0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00};
byte ff1[8]=     {0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00};
byte gg1[8]=     {0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00};

Warunek dla jednego czujnika:
if(wynik1<=5){
   a= hh1;
    }
    else if(wynik1<=10){
   a=gg1;
    }
    else if(wynik1 <=20)
    {
    a=ff1;
    }
    else if(wynik1 <=40)
    {
    a=ee1;
    }
    else   if(wynik1 <=60)
    {
    a=dd1;
    }
    else  if(wynik1 <=90)
    {
    a=cc1;
    }
    else  if(wynik1 <=120)
    {
    a=bb1;
    }
    else if(wynik1 >150)
    {
    a=aa1;
    }

Wyświetlanie:
printByte(a);
    delay(500);
    printByte(b);
    delay(500);
    printByte©;
    delay(500);
    printByte(d);
    delay(500);

Jeśli będzie potrzeba mogę wstawić cały program
Głównie chodzi mi o to czy da się dodać tablice w pętli, bo ja do tego nie doszedłem...


RE: Matryca LED matrix 8x8 - Robson Kerman - 25-11-2018

Wstaw cały kod, używaj znaczników BBCODE.
Zainteresuj się nauką języka C/C++, zwłaszcza przesunięcia bitowe i maskowanie bitów.


RE: Matryca LED matrix 8x8 - korsarz - 25-11-2018

(25-11-2018, 13:57)Robson Kerman napisał(a): Wstaw cały kod, używaj znaczników BBCODE.
Zainteresuj się nauką języka C/C++, zwłaszcza przesunięcia bitowe i maskowanie bitów.

Dodałem w załączniku, z jakiegoś powodu nie mogłem go wkleić jako kod.