• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Matryca LED matrix 8x8
#1
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...
 
Odpowiedź
#2
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.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#3
(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.


Załączone pliki
.txt   matrixx.txt (Rozmiar: 7.95 KB / Pobrań: 4)
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości