DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu

Podłączenie 7-segmentowego wyświetlacza do Arduino to świetny projekt dla początkujących płytka Arduino bliższy. Ale jest to dość proste do wykonania. Dlatego nieco skomplikujemy zadanie i połączymy czterocyfrowy siedmiosegmentowy wskaźnik.



W tym przypadku użyjemy 4-cyfrowego modułu LED ze wspólną katodą.


Każdy segment w module wskaźnika jest multipleksowany, to znaczy ma wspólny punkt połączenia anody z innymi segmentami jego wyładowania. Każde z czterech wyładowań w module ma własny punkt połączenia ze wspólną katodą. Pozwala to na niezależne włączanie i wyłączanie każdej cyfry. Ponadto ta technika multipleksowania pozwala mikrokontrolerowi używać tylko jedenastu lub dwunastu pinów zamiast trzydziestu dwóch.



Segmenty diodowe wskaźnika wymagają podłączenia rezystorów ograniczających prąd przy zasilaniu napięciem 5 V na pinie logicznym. Wartość rezystora jest zwykle przyjmowana między 330 a 470 omów. Zaleca się również stosowanie tranzystorów w celu zapewnienia dodatkowego prądu, ponieważ każdy pin mikrokontrolera może dostarczyć maksymalnie 40 mA. Jeśli włączysz wszystkie segmenty rozładowania (cyfra 8), zużyty prąd przekroczy ten limit. Poniższy rysunek przedstawia schemat połączeń czterocyfrowego siedmiosegmentowego wskaźnika wykorzystującego tranzystory rezystorowe ograniczające prąd.



Poniżej schematy podłączenia wskaźnika do pinów Arduino. Wykorzystuje bipolarne tranzystory NPN BC547. Potencjometr 10 kOhm podłączony do wejścia płyty A0 pozwala na zmianę wartości wyświetlanej na wskaźniku od 0 do 1023.




Na płycie Arduino wyjścia cyfrowe D2-D8 służą w tym przypadku do sterowania segmentami od „a” do „g”, a wyjścia cyfrowe D9-D12 służą do sterowania bitami od D0 do D3. Należy zauważyć, że w ten przykład punkt nie jest używany, ale na poniższym szkicu można go użyć. Pin D13 płyty Arduino jest zarezerwowany do sterowania segmentem punktowym.



Poniżej znajduje się kod, który pozwala kontrolować czterocyfrową cyfrę wskaźnik segmentu za pomocą płyty Arduino. W nim tablica liczbowa określa kody liczb od 0 do 9 w postaci binarnej. Ten szkic obsługuje zarówno popularne mierniki katodowe (domyślne), jak i wspólne mierniki anodowe (aby to zrobić, musisz odkomentować jedną linię na końcu szkicu).


// bity reprezentujące segmenty od A do G (i punkty) dla liczb 0-9 const int numeral \u003d (// ABCDEFG / dp B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B00111110, // 6 B11100000, // 7 B11111110, // 8 B11100110, // 9); // pinezki dla punktu i każdego segmentu // DP, G, F, E, D, C, B, A const int segmentPins \u003d (13,8,7,6,5,4,3,2); const int nbrDigits \u003d 4; // ilość cyfr wskaźnika LED // cyfry 0 1 2 3 const int digitPins \u003d (9,10,11,12); void setup () (for (int i \u003d 0; i< 8; i++) { pinMode(segmentPins[i], OUTPUT); // устанавливаем выводы для сегментов и точки на выход } for(int i=0; i < nbrDigits; i++) { pinMode(digitPins[i], OUTPUT); } } void loop() { int value = analogRead(0); showNumber(value); } void showNumber(int number) { if(number == 0) { showDigit(0, nbrDigits-1) ; // отображаем 0 в правом разряде } else { // отображаем значение, соответствующее каждой цифре // крайняя левая цифра 0, правая на единицу меньше, чем число позиций for(int digit = nbrDigits-1; digit >\u003d 0; digit--) (if (number\u003e 0) (showDigit (number% 10, digit); number \u003d number / 10;)))) // Wyświetl określoną liczbę na podanej cyfrze 7-segmentowego wskaźnika void showDigit (int number, int digit) (digitalWrite (digitPins, HIGH); for (int segment \u003d 1; segment< 8; segment++) { boolean isBitSet = bitRead(numeral, segment); // isBitSet будет истинным, если данный бит будет 1 // isBitSet = ! isBitSet; // опционально // раскомментируйте опциональную строчку выше для индикатора с общим анодом digitalWrite(segmentPins, isBitSet); } delay(5); digitalWrite(digitPins, LOW); }


Schemat połączeń jednocyfrowego siedmiosegmentowego wskaźnika
Schemat połączeń wielocyfrowego siedmiosegmentowego wskaźnika

Cyfrowe urządzenie do wyświetlania informacji. To najprostsza implementacja wskaźnika, który może wyświetlać cyfry arabskie. Do wyświetlania liter stosuje się bardziej złożone wskaźniki wielosegmentowe i matrycowe.

Jak sama nazwa wskazuje, składa się z siedmiu elementów wyświetlacza (segmentów), które można oddzielnie włączać i wyłączać. Włączając je w różne kombinacje, można je wykorzystać do komponowania uproszczonych obrazów cyfr arabskich.
Segmenty są oznaczone literami od A do G; ósmy segment - kropka dziesiętna (kropka dziesiętna, DP), do wyświetlania liczb ułamkowych.
Czasami litery są wyświetlane na siedmiosegmentowym wyświetlaczu.

Występują w różnych kolorach, zwykle białym, czerwonym, zielonym, żółtym i niebieskim. Ponadto mogą mieć różne rozmiary.

Również, wskaźnik ledowy może być jednocyfrowe (jak na powyższym obrazku) i wielocyfrowe. Głównie w praktyce stosuje się jedno-, dwu-, trzy- i czterocyfrowe wskaźniki LED:

Oprócz dziesięciu cyfr wyświetlacze siedmiosegmentowe mogą wyświetlać litery. Ale tylko kilka liter ma intuicyjną reprezentację siedmiosegmentową.
Łaciński: wielkie litery A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, małe litery a, b, c, d, e, g , h, i, n, o, q, r, t, u.
Cyrylica: A, B, C, D, d, E, i, H, O, o, P, n, P, C, s, U, H, Y (dwie cyfry), b, E / Z
Dlatego wskaźniki siedmiosegmentowe służą tylko do wyświetlania najprostszych komunikatów.

W sumie 7-segmentowy wskaźnik LED może wyświetlać 128 znaków:

Typowy wyświetlacz LED ma dziewięć wyprowadzeń: jeden prowadzi do katod wszystkich segmentów, a pozostałe osiem do anody każdego segmentu. Ten obwód nazywa się „Obwód ze wspólną katodą”, są też schematy ze wspólną anodą (wtedy jest odwrotnie). Często nie jeden, ale dwa typowe wnioski są wyciągane na różnych końcach podstawy - upraszcza to okablowanie bez zwiększania wymiarów. Są też tzw. „Uniwersalne”, ale ja osobiście nie spotkałem się z takimi. Ponadto istnieją wskaźniki z wbudowanym rejestrem przesuwnym, co znacznie zmniejsza liczbę używanych pinów portu mikrokontrolera, ale są one znacznie droższe i rzadko są używane w praktyce. A skoro nie potrafimy uchwycić ogromu, na razie nie będziemy rozważać takich wskaźników (a są też wskaźniki o znacznie większej liczbie segmentów, macierzowe).

Wielocyfrowe wskaźniki LED często pracuj nad zasada dynamiki: piny o tej samej nazwie segmenty wszystkich cyfr są ze sobą połączone. Aby wyświetlić informacje o takim wskaźniku, mikroukład sterujący musi cyklicznie dostarczać prąd do wspólnych zacisków wszystkich wyładowań, podczas gdy prąd jest dostarczany do zacisków segmentu w zależności od tego, czy ten segment jest zapalony w tym wyładowaniu.

Podłączenie jednocyfrowego siedmiosegmentowego wskaźnika do mikrokontrolera

Poniższy diagram pokazuje, jak to zrobić podłączony jest jednocyfrowy, siedmiosegmentowy wskaźnik do mikrokontrolera.
Należy pamiętać, że jeśli wskaźnik z KATODA OGÓLNA, to jego wspólny pin jest podłączony do "Ziemia", a segmenty są zapalane przez karmienie jednostka logiczna do styku portu.
Jeśli wskaźnik z WSPÓLNA ANODA, a następnie podawany jest jego wspólny drut „plus” napięcie, a zapłon segmentów następuje poprzez przeniesienie wyjścia portu do stanu logiczne zero.

Wskazanie w jednocyfrowym wskaźniku LED odbywa się poprzez podanie kodu binarnego odpowiedniej cyfry odpowiedniego poziomu logicznego na piny portu mikrokontrolera (dla wskaźników z OK - jednostki logiczne, dla wskaźników z OA - zera logiczne).

Rezystory ograniczające prąd może, ale nie musi, być obecny w schemacie. Wszystko zależy od napięcia zasilania, które jest dostarczane do wskaźnika i właściwości techniczne wskaźniki. Jeśli np. Napięcie dostarczane do segmentów wynosi 5 V, a są one zaprojektowane na napięcie robocze 2 V, należy zainstalować rezystory ograniczające prąd (aby ograniczyć przepływający przez nie prąd dla zwiększonego napięcia zasilania i nie spalać nie tylko wskaźnika, ale także portu mikrokontrolera).
Bardzo łatwo jest obliczyć wartość rezystorów ograniczających prąd, zgodnie ze wzorem dziadka Om.
Na przykład cechy wskaźnika są następujące (zaczerpnięte z arkusza danych):
- napięcie robocze - 2 wolty
- prąd roboczy - 10 mA (\u003d 0,01 A)
- napięcie zasilania 5 V.
Wzór do obliczeń:
R \u003d U / I (wszystkie wartości w tym wzorze muszą być podane w omach, woltach i amperach)
R \u003d (napięcie zasilania - napięcie robocze) / prąd roboczy
R \u003d (5-2) / 0,01 \u003d 300 omów

Schemat podłączenia wielocyfrowego siedmiosegmentowego wskaźnika LED w zasadzie to samo, co przy podłączaniu jednocyfrowego wskaźnika. Jedyną rzeczą jest to, że tranzystory sterujące są dodawane w katodach (anodach) wskaźników:

Nie pokazano na schemacie, ale między bazami tranzystorów a zaciskami portu mikrokontrolera konieczne jest uwzględnienie rezystorów, których rezystancja zależy od rodzaju tranzystora (wartości rezystorów są obliczane, ale można również spróbować użyć rezystorów o wartości nominalnej 5-10 kOhm).

Wskazywanie zrzutów odbywa się w sposób dynamiczny:
- wystawiony kod binarny odpowiednia cyfra na wyjściach portu PB przez 1 bit, następnie poziom logiczny jest podawany do tranzystora sterującego pierwszego bitu
- kod binarny odpowiedniej cyfry ustawiany jest na wyjściach portu PB na 2 cyfry, następnie poziom logiczny podawany jest na tranzystor sterujący drugiej cyfry
- kod binarny odpowiedniej cyfry jest ustawiany na wyjściach portu PB na 3 cyfry, następnie poziom logiczny jest przykładany do tranzystora sterującego trzeciej cyfry
- więc w kółko
W takim przypadku należy wziąć pod uwagę:
- dla wskaźników z dobrze zastosowano strukturę tranzystora sterującego NPN (kontrolowane przez jednostkę logiczną)
- dla wskaźnika z OA - budowa tranzystora PNP (sterowane logicznym zerem)

Podłączmy siedmiosegmentowy wskaźnik LED do płytki Arduino i nauczmy się nim sterować za pomocą biblioteki Led4Digits.h.

Poprzednia lekcja szczegółowo opisana dla mikrokontrolerów. Podłączmy taki wskaźnik do płytki Arduino.

Schemat podłączenia wskaźnika do płytki Arduino wygląda następująco.

Zmontowałem go na płytce drukowanej.

Aby zarządzać wskaźnikami, napisałem bibliotekę Led4Digits.h:

I zapłać.

Biblioteka umożliwia zarządzanie siedmiosegmentowymi wskaźnikami:

  • do czterech cyfr;
  • z dowolnymi wariantami polaryzacji impulsów sterujących (wszystkie);
  • działa równolegle;
  • umożliwia wyświetlenie na wskaźniku:
    • segmenty każdej kategorii;
    • liczba każdej cyfry;
    • liczba całkowita 0 ... 9999;
  • można określić liczbę cyfr, aby wyprowadzić liczbę całkowitą;
  • istnieje tryb hartowania dla nieistotnych wyładowań.

Możesz pobrać bibliotekę Led4Digits.h z tego linku:

I zapłać. Tylko 40 rubli. miesięcznie za dostęp do wszystkich zasobów serwisu!

Sposób instalacji jest napisany w.

Nie podam kodu źródłowego. Możesz je zobaczyć w plikach biblioteki. Jak zwykle jest wystarczająco dużo komentarzy. Opiszę szczegółowo, wraz z przykładami, jak korzystać z biblioteki.

Biblioteka do sterowania wskaźnikami LED dla Arduino Led4Digits.

Oto opis zajęć. Podałem tylko publiczne metody i właściwości.

klasa Led4Digits (
publiczny:
cyfra bajtowa; // kody sterujące segmentem bitowym
void regen (); // regenerację, metodę należy wywoływać regularnie
void tetradToSegCod (byte dig, byte tetrad); // konwersja tetrady na kody segmentów
wydruk logiczny (wartość int bez znaku, cyfra w bajcie, pusta wartość bajtu); // wyjście całkowite



} ;

Konstruktor.

Led4Digits (typ bajtuLed, cyfra bajtuPin0, cyfra bajtuPin1, cyfra bajtuPin2, cyfra bajtuPin3,
bajt segPinA, bajt segPinB, bajt segPinC, bajt segPinD,
bajt segPinE, bajt segPinF, bajt segPinG, bajt segPinH);

typeLedUstawia polaryzację impulsów sterujących dla sygnałów wyboru bitów i segmentów. Obsługuje dowolne schematy połączeń ().

typeLed Wybór zrzutu Wybór segmentu Typ programu
0 -_- -_- Wspólna anoda z klawiszami wyboru rozładowania
1 _-_ -_- Wspólna anoda
2 -_- _-_ Wspólna katoda
3 _-_ _-_ Wspólna katoda z klawiszami wyboru rozładowania

digitPin0 ... digitPin3 - wnioski z doboru kategorii. Jeśli digitPin \u003d 255, to cyfra jest wyłączona. Pozwala to na podłączenie wskaźników z mniejszą liczbą cyfr. digitPin0 - najmniej znacząca (prawa) cyfra.

segPinA… segPinH - Kołki sterujące segmentem.

Na przykład,

oznacza: wskaźnik typu 1; produkty z kategorii 5,4,3,2; wnioski segmentu 6,7,8,9,10,11,12,13.

Void regen () metoda

Metoda musi być wywoływana regularnie w równoległym procesie. Odtwarza obraz na wskaźnikach. Czas cyklu odświeżania jest równy okresowi wywołania metody pomnożonej przez liczbę bitów.

Na przykład,

// obsługa przerwań 2ms
void timerInterrupt () (
disp.regen (); // regeneracja wskaźnika
}

Tablica cyfr bajtowych

Zawiera stan segmentów. cyfra to najmniej znaczący bit, najmniej znaczący bit cyfry to segment „A” najmniej znaczącej cyfry. Stan bitu równy 1 oznacza, że \u200b\u200bsegment jest podświetlony.

Na przykład,

cyfra \u003d B0000101;

oznacza, że \u200b\u200bw drugiej cyfrze świecą się segmenty „A” i „C”.

Przykład programu, który kolejno oświetla wszystkie segmenty każdego bitu.

// segmenty biegowe
#zawierać
#zawierać

//
Led4Digits disp (1, 5,4,3,2,6,7,8,9,10,11,12,13);

void setup () (
przerwanie timera 2ms
MsTimer2 :: start (); // przerwanie włączone
}

void loop () (
dla (int i \u003d 0; i< 32; i++) {
if (i \u003d\u003d 0) disp.digit \u003d 1;
else if (i \u003d\u003d 8) disp.digit \u003d 1;
else if (i \u003d\u003d 16) disp.digit \u003d 1;
else if (i \u003d\u003d 24) disp.digit \u003d 1;
else (
disp.digit \u003d disp.digit<< 1;
disp.digit \u003d disp.digit<< 1;
disp.digit \u003d disp.digit<< 1;
disp.digit \u003d disp.digit<< 1;
}
opóźnienie (250);
}
}

// obsługa przerwań 2ms
void timerInterrupt () (
disp.regen (); // regeneracja wskaźnika
}

W tablicy cyfry 1 jest przesunięta, a wskaźniki to wskazują.

Void tetradToSegCod method (byte dig, byte tetrad)

Metoda umożliwia wyświetlanie liczb i liter kodu szesnastkowego na osobnych cyfrach. Ma argumenty:

  • dig - numer bitu 0 ... 3;
  • tetrad - dziesiętny kod znaku. Kod 0 wyświetli liczbę „0”, kod 1 - cyfrę „1”, kod 14 - literę „E”.

Na przykład,

tetrad (2, 7);

wyświetli liczbę „7” jako trzecią cyfrę.

Przykład programu, który zmienia po kolei znaki w każdej cyfrze.

// liczby po kolei
#zawierać
#zawierać

// wskaźnik typu 1; produkty z kategorii 5,4,3,2; wyjścia segmentu 6,7,8,9,10,11,12,13
Led4Digits disp (1, 5,4,3,2,6,7,8,9,10,11,12,13);

void setup () (
MsTimer2 :: set (2, timerInterrupt); // przerwanie timera 2ms
MsTimer2 :: start (); // przerwanie włączone
}

void loop () (
dla (int i \u003d 0; i< 64; i++) {
disp.tetradToSegCod (i \u003e\u003e 4, i);
opóźnienie (250);
}
}

// obsługa przerwań 2ms
void timerInterrupt () (
disp.regen (); // regeneracja wskaźnika
}

Boolean print method (unsigned int value, byte digitNum, byte blank)

Metoda wyświetla liczbę całkowitą na wskaźnikach. Konwertuje liczbę binarną na BCD dla każdej cyfry. Ma argumenty:

  • wartość - liczba wyświetlana na wskaźniku.
  • digitNum - liczba cyfr numeru. Nie mylić z liczbą cyfr wskaźnika. Możesz wydrukować numer jako 2 cyfry i wyświetlić znaki na pozostałych dwóch za pomocą cyfry.
  • puste - znak wygaszenia nieistotnych cyfr. puste \u003d 0 oznacza, że \u200b\u200bliczba powinna być wyświetlana ze wszystkimi zerami. Liczba „7” będzie wyglądać jak „0007”. Jeśli wartość pusta jest różna od 0, nieznaczące zera zostaną wygaszone.

Jeśli wartość liczby przekracza dopuszczalną dla wybranej liczby cyfr (digitNum), funkcja wyświetli „---” na wskaźniku i zwróci fałsz.

Przykład programu do wyprowadzania liczb.

// wyświetl numer
#zawierać
#zawierać

// wskaźnik typu 1; produkty z kategorii 5,4,3,2; wyjścia segmentu 6,7,8,9,10,11,12,13
Led4Digits disp (1, 5,4,3,2,6,7,8,9,10,11,12,13);

void setup () (
MsTimer2 :: set (2, timerInterrupt); // przerwanie timera 2ms
MsTimer2 :: start (); // przerwanie włączone
}

void loop () (
dla (int i \u003d 0; i< 12000; i++) {
disp.print (i, 4, 1);
opóźnienie (50);
}
}

// obsługa przerwań 2ms
void timerInterrupt () (
disp.regen (); // regeneracja wskaźnika
}

Dwie ostatnie metody nie zmieniają stanu segmentu „H” - kropki dziesiętnej. Aby zmienić stan punktu, możesz użyć poleceń:

cyfra | \u003d 0x80; // zapal przecinek dziesiętny
cyfra & \u003d 0x7f; // gasić przecinek dziesiętny

Wyświetlanie liczb ujemnych (int) do wskaźników.

Liczby ujemne można wyprowadzić w następujący sposób:

  • Sprawdź znak numeru.
  • Jeśli liczba jest ujemna, wypisz znak minus na najbardziej znaczącym bicie i zmień znak liczby na dodatni w funkcji print ().
  • Jeśli liczba jest dodatnia, pomiń cyfrę znaku i wydrukuj liczbę za pomocą funkcji print ().

Oto program, który demonstruje tę metodę. Drukuje liczby od -999 do 999.

// wyprowadza liczby ujemne
#zawierać
#zawierać

// wskaźnik typu 1; produkty z kategorii 5,4,3,2; wyjścia segmentu 6,7,8,9,10,11,12,13
Led4Digits disp (1, 5,4,3,2,6,7,8,9,10,11,12,13);

void setup () (
MsTimer2 :: set (2, timerInterrupt); // przerwanie timera 2ms
MsTimer2 :: start (); // przerwanie włączone
}

void loop () (

dla (int i \u003d -999; i< 1000; i++) {

Jeśli ja< 0) {
// liczba jest ujemna
disp.digit \u003d B01000000; // znak -
disp.print (i * -1, 3, 1);
}
else (
disp.digit \u003d B00000000; // wygaszenie znaku
disp.print (i, 3, 1);
}

opóźnienie (50);
}
}

// obsługa przerwań 2ms
void timerInterrupt () (
disp.regen (); // regeneracja wskaźnika
}

Wyświetlanie liczb ułamkowych, format zmiennoprzecinkowy.

Istnieje wiele sposobów wyświetlania liczb zmiennoprzecinkowych (liczb zmiennoprzecinkowych) przy użyciu standardowych funkcji C. Jest to przede wszystkim funkcja sprint (). Działa bardzo wolno, wymaga dodatkowej konwersji kodów znaków na kody binarno-dziesiętne, konieczne jest wybranie kropki z ciągu. Inne funkcje mają te same problemy.

Używam innego sposobu wyświetlania wartości zmiennych typu float na wskaźnikach. Metoda jest prosta, niezawodna i szybka. Ograniczone do następujących operacji:

  • Liczba zmiennoprzecinkowa jest mnożona przez 10 do potęgi odpowiadającej wymaganej liczbie miejsc dziesiętnych. Jeśli chcesz wyświetlić 1 miejsce dziesiętne na wskaźnikach, pomnóż przez 10, jeśli 2, a następnie pomnóż przez 100, 3 cyfry - przez 1000.
  • Ponadto liczba zmiennoprzecinkowa jest jawnie konwertowana na liczbę całkowitą (int) i wyświetlana na wskaźnikach przez funkcję print ().
  • Kropka jest umieszczana w wymaganym miejscu.

Na przykład następujące wiersze wyprowadzą zmienną typu float z dwoma miejscami po przecinku na 7-segmentowych diodach LED.

float x \u003d 2,12345;

disp.digit | \u003d 0x80; //

Mnożymy liczbę przez 100, a kropkę na trzecim miejscu dzielimy wynik przez 100.

Oto program, który wyprowadza liczby zmiennoprzecinkowe od 0,00 do 99,99 do wskaźników.

// wyjście zmiennoprzecinkowe
#zawierać
#zawierać

// wskaźnik typu 1; produkty z kategorii 5,4,3,2; wyjścia segmentu 6,7,8,9,10,11,12,13
Led4Digits disp (1, 5,4,3,2,6,7,8,9,10,11,12,13);

void setup () (
MsTimer2 :: set (2, timerInterrupt); // przerwanie timera 2ms
MsTimer2 :: start (); // przerwanie włączone
}

void loop () (
float x \u003d 0;

dla (int i \u003d 0; i< 10000; i++) {
x + \u003d 0,01;

disp.print ((int) (x * 100.), 4, 1);
disp.digit | \u003d 0x80; // oświetlić punkt trzeciej klasy

opóźnienie (50);
}
}

// obsługa przerwań 2ms
void timerInterrupt () (
disp.regen (); // regeneracja wskaźnika
}

Jak widać, biblioteka Led4Digits.h znacznie upraszcza pracę z siedmiosegmentowymi wskaźnikami LED podłączonymi do płytki Arduino. Nie znalazłem odpowiednika takiej biblioteki.

Istnieją biblioteki do pracy z wyświetlaczami LED za pośrednictwem rejestru przesuwnego. Ktoś napisał do mnie, że znalazł bibliotekę współpracującą z wyświetlaczem LED podłączonym bezpośrednio do płytki Arduino. Ale kiedy go używasz, wskaźnik wyładowań świeci nierównomiernie, mrugnij.

W przeciwieństwie do analogów, biblioteka Led4Digits.h:

  • Działa równolegle. W pętli głównej program ładuje dane do określonych zmiennych, które są automatycznie wyświetlane na wyświetlaczu. Wyjście informacji i regeneracja wskaźnika następują w przerwaniu timera, niezauważonym przez program główny.
  • Cyfry na wyświetlaczu świecą się równomiernie, bez migania. Właściwość tę zapewnia fakt, że regeneracja odbywa się w cyklu ściśle określonym przez przerwanie timera.
  • Biblioteka ma zwarty kod, jest wykonywana szybko, minimalnie ładuje kontroler.

W kolejnej lekcji do płyty Arduino podłączymy jednocześnie wskaźnik LED i matrycę przycisków. Napiszmy bibliotekę dla takiej konstrukcji.

Kategoria:. Możesz dodawać do zakładek.

Są takie parametry, dla których wygodniej byłoby podać obiektywne informacje niż tylko wskazanie. Na przykład temperatura powietrza na zewnątrz lub godzina na budziku. Tak, wszystko to można zrobić za pomocą świecących żarówek lub diod LED. Jeden stopień - jedna zapalona dioda LED lub żarówka itp. Ale licząc te świetliki - cóż, nie! Ale jak mówią, najprostsze rozwiązania są najbardziej niezawodne. Dlatego programiści bez wahania wzięli proste paski LED i ułożyli je we właściwej kolejności.

Na początku XX wieku, wraz z pojawieniem się lamp elektronicznych, pojawiły się pierwsze wskaźniki wyładowań gazowych.

Za pomocą takich wskaźników można było wyświetlać cyfrowe informacje cyframi arabskimi. Wcześniej na takich lampach wykonywano różne wskazania dla instrumentów i innych urządzeń elektronicznych. Obecnie elementy wyładowcze prawie nigdy nie są nigdzie używane. Ale styl retro jest zawsze modny, dlatego wielu radioamatorów zbiera wspaniałe zegarki na wskaźnikach wyładowań gazowych dla siebie i swoich bliskich.


Wadą lamp wyładowczych jest to, że zużywają dużo energii elektrycznej. Trwałość jest dyskusyjna. Na naszej uczelni liczniki częstotliwości na wskaźnikach wyładowań gazowych są nadal używane w pomieszczeniach laboratoryjnych.

Wskaźniki siedmiosegmentowe

Wraz z pojawieniem się diod LED sytuacja zmieniła się dramatycznie na lepsze. Same diody LED pobierają mało prądu. Jeśli umieścisz je we właściwej pozycji, możesz wyświetlić absolutnie każdą informację. Aby podkreślić wszystkie cyfry arabskie wystarczy siedem świecących pasków LED - segmentów ustawionych w określony sposób:

Do prawie wszystkich takich wskaźników siedmiosegmentowych dodaje się również ósmy segment - punkt, aby pokazać wartość całkowitą i ułamkową dowolnego parametru

W teorii otrzymujemy wskaźnik ośmiosegmentowy, ale w staromodny sposób nazywany jest również wskaźnikiem siedmiosegmentowym.

Jaki jest efekt końcowy? Każdy pasek na siedmiosegmentowym wyświetlaczu jest oświetlony diodą LED lub grupą diod LED. W efekcie, podświetlając określone segmenty, możemy wyświetlić cyfrę od 0 do 9, a także litery i symbole.

Rodzaje i oznaczenie na schemacie

Istnieją jednocyfrowe, dwucyfrowe, trzycyfrowe i czterocyfrowe siedmiosegmentowe wskaźniki. Nie widziałem więcej niż cztery kategorie.

Na diagramach siedmiosegmentowy wskaźnik wygląda mniej więcej tak:

W rzeczywistości, oprócz głównych wniosków, każdy siedmiosegmentowy wskaźnik ma również wspólny zacisk ze wspólną anodą (OA) lub wspólną katodą (OK)

Obwód wewnętrzny siedmiosegmentowego wskaźnika ze wspólną anodą będzie wyglądał następująco:


i ze wspólną katodą, taką jak ta:


Jeśli mamy siedmiosegmentowy wskaźnik ze wspólną anodą (OA), to w układzie należy podać „plus” mocy na to wyjście, a jeśli ze wspólną katodą (OK) - to „minus” lub masę.

Jak sprawdzić siedmiosegmentowy wskaźnik

Mamy dostępne następujące wskaźniki:


Do sprawdzenia nowoczesnego siedmiosegmentowego wskaźnika potrzebujemy multimetru z funkcją ciągłości diod. Na początek szukamy ogólnego wniosku - może to być OA lub OK. Tutaj tylko przez wpisanie. Cóż, następnie sprawdzamy działanie pozostałych segmentów wskaźnika zgodnie z powyższymi schematami.

Jak widać na poniższym zdjęciu, testowany segment płonie. Inne segmenty sprawdzamy w ten sam sposób. Jeśli wszystkie segmenty świecą, to taki wskaźnik jest nienaruszony i możesz go używać w swoich projektach.


Czasami napięcie na multimetrze nie wystarcza do przetestowania segmentu. Dlatego bierzemy zasilacz i ustawiamy na nim 5 woltów. Aby ograniczyć prąd płynący przez segment, sprawdź rezystor 1-2 kiloomów.


W ten sam sposób sprawdzamy wskaźnik z chińskiego odbiornika.


W obwodach wskaźniki siedmiosegmentowe są podłączone do rezystorów na każdym pinie

We współczesnym świecie wskaźniki siedmiosegmentowe są zastępowane wskaźnikami ciekłokrystalicznymi, które mogą wyświetlać absolutnie dowolne informacje

ale aby z nich korzystać, potrzebujesz pewnych umiejętności w obwodach takich urządzeń. Dlatego wskaźniki siedmiosegmentowe są nadal używane ze względu na ich niski koszt i łatwość użycia.

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu