Witam wszystkich serdecznie. Jako że na tym forum jest to mój pierwszy post (mimo, że forum przeglądam często i od dawna), to proszę o wybaczenie mi wszelkich gaf.
Przejdę może od razu do sedna. Planuję zrobić coś na kształt tablicy wyników sportowych. Cały układ chcę zrobić na Atmedze 328p oraz wyświetlaczach 7-segmentowych o wysokości znaku 10 cm (wspólna anoda). Potrzebuję 10 pozycji (stoper, wyniki, sety), tak więc wykorzystam 10 takich wyświetlaczy. Sam pomysł na program już mam, gdyż w wolnej chwili robiłem zegar, z tym że do wyświetlania użyłem HD44780, tu jedyną różnicą jest sposób wyświetlania. Jednak jako że Atmegi programuję sobie w ArduinoIDE przez ISP, to użyłem sobie biblioteki pineapple, dzięki której sterowanie wyświetlaczami jest dziecinnie proste. Multipleksowanie zrobiłem przez rejestry 74HC595. Łącząc je szeregowo mogę podłączyć dowolnie dużo jak na moje potrzeby wyświetlaczy. Na małych wyświetlaczach (10 cm) wszystko działa super. Problem pojawił się dopiero, gdy przyszło podłączyć docelowy wyświetlacz. Na początek podłączam jeden dla uproszczenia.
Problemem jest oczywiście zasilanie- wyświetlacz ten potrzebuje około 9V na segment, a jak wiadomo wyjścia cyfrowe atmegi dają jedynie 5V. Na początku próbowałem podłączyć zasilacz 9V w ten sposób, że zrobiłem wspólną masę z atmegą, a do anod podłączałem plusa. Jednak rejestry zaczęły się grzać a wyświetlacz też nie chodził do końca dobrze. Pierwsze co przyszło mi do głowy, to podłączenie każdego wyjścia sterującego rejestru do bazy tranzystora npn (BC337). Kolektor podłączam do katod wyświetlacza, zaś emiter do masy. Zewnętrzy zasilacz, do zasilania wyświetlaczy wpiąłem zaś tak, że plus idzie do wspólnej anody wyświeltacza, zaś minus idzie do wspólnej masy z Atmega. Oczywiście ze względu na to, że użyłem tranzystorów npn, musiałem w moim programie zmienić sposób sterowania na taki jak dla wspólnej katody.
W internecie znalazłem schemat oddający mniej więcej to, co zrobiłem pomiędzy rejestrem a wyświetlaczem.
Różnicą są tutaj użyte tranzystory. Do baz tranzystorów dałem rezystory 220 om.
Po takim podłączeniu wszystko pięknie działa. Wszystko działa tak jak chciałem właściwie mógłbym już zabierać się do dalszej pracy i dodawać kolejne wyświetlacze jednak mam wątpliwości czy nie zrobiłem czegoś "nie tak". Czy taki sposób jest dopuszczalny i nie niesie ze sobą żadnych pułapek na dłuższą metę? Czy nie powinienem jeszcze czegoś dodać, może coś zmienić? Zastanawiam się również nad tym, czy nie mógłbym zamiast do każdego wyświetlacza używać 7 tranzystorów (nie używam wogóle DP) skorzystać z układu ULN2003. Na etapie składania w całość znacznie ułatwiłoby mi to pracę, gdybym miał jednego scalaka do każdego wyświetlacza. Bardzo proszę o pomoc.
Pozdrawiam
Przejdę może od razu do sedna. Planuję zrobić coś na kształt tablicy wyników sportowych. Cały układ chcę zrobić na Atmedze 328p oraz wyświetlaczach 7-segmentowych o wysokości znaku 10 cm (wspólna anoda). Potrzebuję 10 pozycji (stoper, wyniki, sety), tak więc wykorzystam 10 takich wyświetlaczy. Sam pomysł na program już mam, gdyż w wolnej chwili robiłem zegar, z tym że do wyświetlania użyłem HD44780, tu jedyną różnicą jest sposób wyświetlania. Jednak jako że Atmegi programuję sobie w ArduinoIDE przez ISP, to użyłem sobie biblioteki pineapple, dzięki której sterowanie wyświetlaczami jest dziecinnie proste. Multipleksowanie zrobiłem przez rejestry 74HC595. Łącząc je szeregowo mogę podłączyć dowolnie dużo jak na moje potrzeby wyświetlaczy. Na małych wyświetlaczach (10 cm) wszystko działa super. Problem pojawił się dopiero, gdy przyszło podłączyć docelowy wyświetlacz. Na początek podłączam jeden dla uproszczenia.
Problemem jest oczywiście zasilanie- wyświetlacz ten potrzebuje około 9V na segment, a jak wiadomo wyjścia cyfrowe atmegi dają jedynie 5V. Na początku próbowałem podłączyć zasilacz 9V w ten sposób, że zrobiłem wspólną masę z atmegą, a do anod podłączałem plusa. Jednak rejestry zaczęły się grzać a wyświetlacz też nie chodził do końca dobrze. Pierwsze co przyszło mi do głowy, to podłączenie każdego wyjścia sterującego rejestru do bazy tranzystora npn (BC337). Kolektor podłączam do katod wyświetlacza, zaś emiter do masy. Zewnętrzy zasilacz, do zasilania wyświetlaczy wpiąłem zaś tak, że plus idzie do wspólnej anody wyświeltacza, zaś minus idzie do wspólnej masy z Atmega. Oczywiście ze względu na to, że użyłem tranzystorów npn, musiałem w moim programie zmienić sposób sterowania na taki jak dla wspólnej katody.
W internecie znalazłem schemat oddający mniej więcej to, co zrobiłem pomiędzy rejestrem a wyświetlaczem.
Różnicą są tutaj użyte tranzystory. Do baz tranzystorów dałem rezystory 220 om.
Po takim podłączeniu wszystko pięknie działa. Wszystko działa tak jak chciałem właściwie mógłbym już zabierać się do dalszej pracy i dodawać kolejne wyświetlacze jednak mam wątpliwości czy nie zrobiłem czegoś "nie tak". Czy taki sposób jest dopuszczalny i nie niesie ze sobą żadnych pułapek na dłuższą metę? Czy nie powinienem jeszcze czegoś dodać, może coś zmienić? Zastanawiam się również nad tym, czy nie mógłbym zamiast do każdego wyświetlacza używać 7 tranzystorów (nie używam wogóle DP) skorzystać z układu ULN2003. Na etapie składania w całość znacznie ułatwiłoby mi to pracę, gdybym miał jednego scalaka do każdego wyświetlacza. Bardzo proszę o pomoc.
Pozdrawiam