Labview + Arduino + matryca LED 8x8 ze sterownikiem MAX7219
Labview + Arduino + matryca LED 8x8 ze sterownikiem MAX7219
Cześć wszystkim, postanowiłem trochę podłubać w LabVIEW i wykorzystać je do komunikacji z Arduino. Na youtube znalazłem pewien filmik, który stał się dla mnie inspiracją do stworzenia mojego projekciku. Oto filmik:
https://www.youtube.com/watch?v=Ec495vzNhO4
Postępuje zgodnie z filmikiem (niestety nic nie rozumiem, co ten gość gada) i instrukcjami w panelu LabVIEW. Wszystko mam odpowiednio podpięte, w Arduino odpalam LabVIEW Interface for Arduino i potem operuję już w LabVIEW. Wszystko elegancko świeci, tak jak na filmiku, mogę zapalać i gasić poszczególne diody po zrobieniu tego, co mam opisane w zakładce Initialization. Cała procedura jest jednak dość długa, a sama struktura programu jak dla mnie, nowicjusza, trochę zagmatwana i skomplikowana. Chciałbym jak na tę chwilę możliwie jak najbardziej uprościć strukturę programu. Widzę to w ten sposób, że chciałbym mieć jeden przycisk w LabVIEW, przy pomocy którego mógłbym gasić lub zapalać wszystkie diody na matrycy. Czy jest to możliwe w znacznie uproszczony sposób? Podsyłam w załączniku, co udało mi się wykombinować do tej pory, co moim zdaniem jest głównym trzonem całego programu. Jednak utknąłem w martwym punkcie, nie wiem co robić dalej, nie mam pomysłu i wiedzy. Czy byłby ktoś w stanie rozwiązać mój problem? Bardzo mi na tym zależy, zainteresował mnie ten temat i chciałbym zacząć robić coś na własną rękę poza suchym studiowaniem.
https://www.youtube.com/watch?v=Ec495vzNhO4
Postępuje zgodnie z filmikiem (niestety nic nie rozumiem, co ten gość gada) i instrukcjami w panelu LabVIEW. Wszystko mam odpowiednio podpięte, w Arduino odpalam LabVIEW Interface for Arduino i potem operuję już w LabVIEW. Wszystko elegancko świeci, tak jak na filmiku, mogę zapalać i gasić poszczególne diody po zrobieniu tego, co mam opisane w zakładce Initialization. Cała procedura jest jednak dość długa, a sama struktura programu jak dla mnie, nowicjusza, trochę zagmatwana i skomplikowana. Chciałbym jak na tę chwilę możliwie jak najbardziej uprościć strukturę programu. Widzę to w ten sposób, że chciałbym mieć jeden przycisk w LabVIEW, przy pomocy którego mógłbym gasić lub zapalać wszystkie diody na matrycy. Czy jest to możliwe w znacznie uproszczony sposób? Podsyłam w załączniku, co udało mi się wykombinować do tej pory, co moim zdaniem jest głównym trzonem całego programu. Jednak utknąłem w martwym punkcie, nie wiem co robić dalej, nie mam pomysłu i wiedzy. Czy byłby ktoś w stanie rozwiązać mój problem? Bardzo mi na tym zależy, zainteresował mnie ten temat i chciałbym zacząć robić coś na własną rękę poza suchym studiowaniem.
- Załączniki
-
- przyklad2.vi
- (259.14 KiB) Pobrany 391 razy
Re: Labview + Arduino + matryca LED 8x8 ze sterownikiem MAX7219
Przyglądnij się raz jeszcze filmikowi i zatrzymaj sobie np 21:10, przeczytaj co jest tam napisane. Otóż do funkcji przesyłasz tablicę dwuwierszową, w której pierwszy wiersz stanową adresy kolumny (pierwsze cztery cyfry adresu są ignorowane, więc mogą być zera lub jedynki), a drugi rząd stanowi dana, czyli stan poszczególnych ledów. Zobrazowanie masz w filmiku np 18:31, w pętli for. Osobiście uważam, że autor filmiku trochę przesadził w operacjach na tabelach, bo wystarczy zwykły index array (patrz załącznik), ale nie mam jak tego sprawdzić - może jego sposób faktycznie jest lepszy.
PS. Usuń w event Timeout - niepotrzebny Ci jest w ogóle.
PS2. Stwórz event stopujący program wrażliwy na zmianę przycisku stop
PS3. Główny event niech będzie wrażliwy na zmianę wartości tablicy Input
Sprawdź czy mam rację;)
PS. Usuń w event Timeout - niepotrzebny Ci jest w ogóle.
PS2. Stwórz event stopujący program wrażliwy na zmianę przycisku stop
PS3. Główny event niech będzie wrażliwy na zmianę wartości tablicy Input
Sprawdź czy mam rację;)

Re: Labview + Arduino + matryca LED 8x8 ze sterownikiem MAX7219
Okej zastosowałem się do Twoich rad, jednak nadal nic nie działa. Wyrzuciłem timeout, nie wiem jednak, jak stworzyć event "stop" stopujący program. W załączniku podsyłam, jak wygląda obecnie diagram i panel. Czy jest tam wszystko ok? Ogólnie chcę zrobić to w taki sposób, że mam przycisk w panelu. Pierwsze jego wciśnięcie powoduje zaświecenie wszystkich diód, natomiast drugie - ich zgaszenie, itd. I jeszcze jedna kwestia. W vi z tego filmiku, co podsyłałem, odpowiednie porty z matrycy są podpięte do odpowiednich pinów Arduino, tj. DIN do pinu 11, LOAD do 8 i CLK do 13. Czy jest to w jakiś sposób zadeklarowane w programie? Wydaje mi się, że najważniejszy jest port LOAD podpięty do pinu 8 i mam przeświadczenie, że jest to zdefiniowane przy funkcji Arduino SPI (constant 8). Czy pozostałe porty nie mają tu żadnego znaczenia i mogę podpiąć je gdzie chcę? I tylko definiować LOAD przy Arduino SPI?
Re: Labview + Arduino + matryca LED 8x8 ze sterownikiem MAX7219
Piny 13 oraz 11 wynikają z konstrukcji arduino. 11 odpowiada MOSI https://www.arduino.cc/en/Reference/SPI więc jeśli masz innego arduino niż uno lub Duemilanove, to może powinineś do innego się połączyć. Więcej też tutaj http://linksprite.com/wiki/index.php5?t ... Matrix_Kit
Event stop obsługuje gdy kontrolka zmieni wartość (value change). Ogólnie to rzuć okiem na program, który Ci machnąłem i sprawdź, czy wszystko rozumiesz i czy ogólnie działa w ogóle
Event stop obsługuje gdy kontrolka zmieni wartość (value change). Ogólnie to rzuć okiem na program, który Ci machnąłem i sprawdź, czy wszystko rozumiesz i czy ogólnie działa w ogóle
- Załączniki
-
- przyklad2.vi
- (255.29 KiB) Pobrany 391 razy

Re: Labview + Arduino + matryca LED 8x8 ze sterownikiem MAX7219
Posiadam Arduino Uno, więc zostawiłem wszystko tak, jak miałem podłączone - LOAD na pin 8, DIN na 11 i CLK na 13. W miarę rozumiem jak to powinno działać w takiej formie, w jakiej mi to podesłałeś, za co oczywiście dziękuję. Mimo wszystko po stestowaniu nic się nie dzieje. Odpalam program, na panelu wciskam przycisk "All", jednak nic się nie dzieje, diody na matrycy nie gasną ani się nie zapalają. "Stop" funkcjonuje należycie. Nie mam pojęcia, co może być nie tak.
Labview + Arduino + matryca LED 8x8 ze sterownikiem MAX7219
A który model mikrokontrolera masz przy tej macierzy?
Działa Ci program z filmiku?
Ledy w ogóle się świecą?
Działa Ci program z filmiku?
Ledy w ogóle się świecą?

Re: Labview + Arduino + matryca LED 8x8 ze sterownikiem MAX7219
Ustawione mam tam Uno. Program z filmiku mi działa, po zrobieniu wszystkiego, co jest napisane w zakładce Initialization, zapalają się wszystkie Ledy i potem mogę gasić pojedyncze diody tam w panelu. Z mojej obserwacji wynika jeszcze, że sposób zapalenia diód opisany w Initialization nie jest jedyny. Udało mi się zaświecić całą matrycę, jeżeli w Shutdown miałem ustawione same 0, a w Display dałem 1 na końcu. Wtedy zaświeciły mi się wszystkie diody. Po zmianie wartości w Display na 0, wszystkie diody gasły. Właśnie w taki sposób chciałbym, żeby to się odbywało, jak na ten etap.
Re: Labview + Arduino + matryca LED 8x8 ze sterownikiem MAX7219
Ok, dodałem inicjalizację, oraz zmieniłem sposób zaświecania dla całej tablicy, spawdź czy jest jakaś reakcja
- Załączniki
-
- przyklad2.vi
- (256.25 KiB) Pobrany 425 razy
