Artefakty LCD MAX7219 - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Wyświetlacze (https://forum.arduinopolska.pl/dzial-wy%C5%9Bwietlacze) +--- Wątek: Artefakty LCD MAX7219 (/watek-artefakty-lcd-max7219) |
Artefakty LCD MAX7219 - Wesouek - 30-01-2022 Cześć Wszystkim. Robię pewien większy projekt. Ogólnie upraszczając jest to automacik, który po wrzuceniu monety załącza elektrozawór ( Danfoss BB230AS, 230V 10W) odpowiednim przekaźnikiem i wyświetla czas między innymi na wyświetlaczu Matrycowym led opartym na MAX7219. Wszystko działa do momentu wyłączenia się przekaźnika/elektrozaworu. W momencie gdy ten się wyłącza, na wyświetlaczu zapalają się wszystkie diody (tak jakby wchodził w tryb testowy). Gdy dla testu na wyjściu zamiast elektrozaworu daję np. lampę 100W wszystko śmiga ok. Wyświetlacz do arduino podłączony jest na 2m kablu (od domofonu ) do interfejsu SPI. Rzeczy które próbowałem, a które nie dały rezultatu : - rozdzielenie zasilania arduino, przekaźnika i wyświetlacza (ze wspólną masą) - rezystory pull-up, pull-down na wszystkich 3 liniach sygnałowych (przy pull-down do linii CS zdarzyło się kilka razy, że problem się nie pojawił) - zmiana częstotliwości SPI (SPI_CLOCK_DIV) Czy jest jeszcze coś czego mogę spróbować? RE: Artefakty LCD MAX7219 - kaczakat - 31-01-2022 Zmiana koncepcji, interfejsy typu SPI są "pudełkowe", kilka no w porywach do kilkudziesięciu cm w optymalnych warunkach otoczenia, które tu niestety jak widać nie występują, nie są odporne na zakłócenia. Drugi sposób to dołożenie do wyświetlacza Atmegi, przesyłanie komunikatów przez UART lub RS485. RE: Artefakty LCD MAX7219 - Wesouek - 20-02-2022 Sorki za długi czas bez odpowiedzi. Ciągle walczyłem z tematem aż w końcu się udało. Konwersja sygnałów na rs485 nie zdała niestety egzaminu; nawet gdy LCD był przy samym Arduino na 5cm kablu artefakty się pojawiały. Rozwiązanie okazało się proste i programowe. Jako że do obsługi MAX7219 używam biblioteki MD Parola wystarczyło, że przed włączeniem/wyłączeniem elektrozaworu czyszczę LCD, usuwam obiekt klasy a następnie, po przełączeniu elektrozaworu i odczekaniu 200ms, tworzę i inicjalizuję nowy obiekt klasy do obsługi LCD. Innymi słowy programowo resetuję LCD. Działa to sprawnie i brak jakichkolwiek artefaktów. Może to niezbyt eleganckie rozwiązanie, ale działa w 100%. |