Skocz do zawartości

Wyświetlanie znaków numerycznych na wyświetlaczu 7-segmentowym


Pomocna odpowiedź

Napisano

Witam,

Czy ktoś z Was ma pomysł na wyświetlanie liczb, na wyświetlaczu 7-segmentowym? Załóżmy, że mamy możliwość podłączenia wyświetlacza, który wyświetla 4 cyfry i jest to wyświetlacz multipleksowany w Pythonie. 

Piszesz o Pythonie, roboczo przenoszę do działu z programowaniem ale jakbyś mógł napisać czego tyczy się to i co chcesz zrobić? Czy jest to z Raspberry Pi, czy coś w stylu Micro Python i np. micro-bit albo ESP?

53 minuty temu, michalk121 napisał:

Czy ktoś z Was ma pomysł na wyświetlanie liczb, na wyświetlaczu 7-segmentowym?

Jeżeli pytasz o sam sposób dekodowania liczby, to są np. takie 2 etapy: pierwsze rozbicie liczby na cyfry - jest to operacja, w której odejmujesz jedności i dzielisz liczbę przez 10 i tak aż zostanie z liczby 0, operacja ta może być wykonywana rekurencyjnie.

Następnie mając cyfry możesz napisać funkcję, która wysteruje piny doprowadzone do wyświetlacza.

Funkcja może być bardzo prosta, gdy potraktujesz cyfrę jako liczbę (a stąd indeks w tablicy) i umieścisz informację o 0 i 1 w tablicy. Te 0 i 1 oznaczają jakie piny mają być w stanie 0 lub 1 żeby pojawiła się liczba, która jest indeksem tablicy. W ten sposób nie będzie żadnych ifów.

Multipleksowanie to przełączanie pewnych pinów, które "otwierają" dany segment, w zależności od aktualnie wyświetlanej pozycji. Może to się odbywać w pętli, a rozbijanie liczby na cyfry będzie sporadycznie wykonywane i wynik zapamiętywany.

  • 1 miesiąc później...

Ja proponuje użycie sprintf i wrzucić to tablicy char w ten sposób dostęp do każdego znaku jest ułatwiony. Dodatkowo jeśli zajdzie potrzeba wysłania wyniku po Uarcie to już jest połowa pracy wykonana. Bardzo łatwo zamienić Ascii 5 w cyfrę 5. wystarczy odjąć znak '0'

 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...