Как да използвате микроконтролер за задвижване на 7 сегмент LED графика?
В света на електрониката, 7 сегментни светодиодни графики са основен за показване на числено и някаква азбучна информация по прост и ефективен начин. Като доставчик на7 сегмент LED графика, Станах свидетел на нарастващото търсене на тези компоненти в различни приложения, от прости цифрови часовници до сложни промишлени контролни панели. В тази публикация в блога ще ви преведа през процеса на използване на микроконтролер, за да задвижвате 7 сегментни LED графики, обхващайки всичко - от основите на 7 сегментарни светодиода до аспектите на програмирането.
Разбиране на 7 сегментни светодиодни графики
Преди да се потопим в детайлите на задвижването на 7 сегментни LED графики с микроконтролер, е от съществено значение да разберем как работят тези дисплеи. 7 сегментен светодиоден дисплей се състои от седем индивидуални светодиода, подредени в определен модел, за да образуват цифрите 0 - 9 и някои букви. Сегментите обикновено са обозначени като A, B, C, D, E, F и G и понякога се включва допълнителен сегмент за десетична точка (DP).
Има два основни типа 7 сегментни LED дисплея: общ катод и общ анод. При общ катоден дисплей всички катодни терминали на отделните светодиоди са свързани заедно и заземени, докато в общ аноден дисплей всички анодни терминали са свързани заедно и се снабдяват с положително напрежение. Изборът между тези два типа зависи от конкретното приложение и възможностите на изходния микроконтролер.
Избор на микроконтролер
Първата стъпка в задвижването на 7 сегментни LED графики е да изберете подходящ микроконтролер. На пазара има многобройни микроконтролери, всеки със собствен набор от функции и възможности. Някои популярни избори за шофиране на 7 сегментарни светодиода включват Arduino Uno, Raspberry Pi Pico и Atmega328p.
Когато избирате микроконтролер, помислете за следните фактори:
- I/O щифтове: Уверете се, че микроконтролерът има достатъчно цифрови изходни щифтове, за да контролира всички сегменти от 7 -те сегментен LED дисплей. За едноцифрен дисплей ще ви трябват поне 7 пина (или 8, ако включите десетичната точка).
- Обработка на мощност: Докато задвижването на 7 сегментен LED дисплей не изисква високоефективен микроконтролер, наличието на достатъчна мощност на обработка може да бъде полезно, ако планирате да внедрите допълнителни функции или да изпълнявате по-сложни задачи.
- Език за програмиране: Изберете микроконтролер, който поддържа език за програмиране, с който сте запознати. Например, Arduino използва опростена версия на C/C ++, която е лесна за научаване и използване за начинаещи.
Свързване на веригата
След като сте избрали микроконтролер, следващата стъпка е да свържете 7 -те сегментен LED дисплей към микроконтролера. Следните стъпки очертават общия процес за свързване на общ сегмент на сегмента на Cathode 7 към Arduino Uno:
- Идентифицирайте щифтовете: Обърнете се към листа за данни на 7 -те сегментен LED дисплей, за да идентифицирате пиновете, съответстващи на всеки сегмент (A - G и DP) и общия катоден щифт.
- Свържете сегментите: Свържете всеки сегмент (A - G и DP) към цифров изходен щифт на Arduino UNO, като използвате подходящи резистори, за да ограничите тока, който тече през светодиодите. Типичната стойност за резистора е около 220 - 330 ома.
- Свържете общия катод: Свържете общия катоден щифт на 7 -те сегментен LED дисплей към земята (GND) щифт на Arduino Uno.
Ето една проста диаграма на веригата, показваща връзката между Arduino UNO и общ сегмент на Cathode 7 Sect Display:
Arduino UNO 7 сегментен дисплей Дигитален щифт 2 ------- Сегмент A Дигитален щифт 3 ------- Сегмент B Цифров щифт 4 ------- Сегмент C Цифров щифт 5 ------- Сегмент D Цифров щифт 6 ------- Сегмент E Цифров щифт 7 ------- Сегмент F Цифров щифт 8 ------- Сегмент G Цифров щифт 9 ------- Десетичен момент (DP) GND -------- Общ катод
Програмиране на микроконтролера
След свързване на LED дисплея на 7 сегмента към микроконтролера, следващата стъпка е да напишете програма за контрол на дисплея. Следното е прост пример за програма, написана в Arduino IDE за показване на цифрите 0 - 9 на общ сегментен дисплей на Cathode 7:


// Определете щифтовете, свързани към всеки сегмент const int segmentpins [] = {2, 3, 4, 5, 6, 7, 8, 9}; // дефинирайте моделите за всяка цифра (0 - 9) const byte digitpatterns [] = {0b00111111, // 0 0b00000110, // 1 0b01011011, // 2 0b01001111, // 3 0b01100110, // 4 0b01101101, // 5 0b01111101, // 6 0Б000001111, // 7 // 7 // 7 0b0111111, // 6 0 0B01111111, // 8 0B01101111 // 9}; void setup () {// задайте всички сегментарни щифтове като изход за (int i = 0; i <8; i ++) {pinmode (segmentpins [i], изход); }} void loop () {// Показване на всяка цифра от 0 до 9 с 1 секунда закъснение между всяка цифра за (int digit = 0; цифра <10; цифра ++) {displayDigit (цифра); забавяне (1000); }} void displayDigit (int digit) {byte pattern = digitpatterns [digit]; за (int i = 0; i <7; i ++) {digitalWrite (segmentPins [i], bitread (pattern, i)); } // Изключете десетичната точка DigitalWrite (SegmentPins [7], ниска); }
В тази програма първо дефинираме щифтовете, свързани към всеки сегмент от 7 -те сегментен светодиоден дисплей и моделите за всяка цифра (0 - 9). Вsetup ()Функция, ние задаваме всички сегментарни щифтове като изход. Вloop ()функция, ние повтаряме всяка цифра от 0 до 9 и извиквамеdisplayDigit ()функция за показване на цифрата на 7 -те сегментни светодиодни дисплеи. ThedisplayDigit ()Функцията приема цяло число, представящо цифрата, която трябва да бъде показана, и задава подходящите щифтове високи или ниски въз основа на цифрата.
Шофиране на множество цифри
Ако трябва да покажете множество цифри с помощта на 7 сегментни LED дисплеи, можете да използвате техника, наречена мултиплексиране. Мултиплексирането включва бързо превключване между цифрите с висока честота, така че човешкото око да възприема всички цифри като осветени едновременно.
За да внедрите мултиплексиране, ще трябва да използвате допълнителни пинове на микроконтролера, за да контролирате общите катодни или анодни пинове на всяка цифра. Например, ако искате да шофирате aТрицифрен 7 сегментен светодиодДисплей, ще ви трябват 3 допълнителни пина, за да контролирате общия катод или анодни щифтове на всяка цифра.
Ето една модифицирана версия на предишната програма за задвижване на трицифрен обикновен сегмент на Cathode 7 сегмент с помощта на мултиплексиране:
// Определете щифтовете, свързани към всеки сегмент const int segmentpins [] = {2, 3, 4, 5, 6, 7, 8, 9}; // Определете щифтовете, свързани към общия катод на всяка цифра const int digitpins [] = {10, 11, 12}; // дефинирайте моделите за всяка цифра (0 - 9) const byte digitpatterns [] = {0b00111111, // 0 0b00000110, // 1 0b01011011, // 2 0b01001111, // 3 0b01100110, // 4 0b01101101, // 5 0b01111101, // 6 0Б000001111, // 7 // 7 // 7 0b0111111, // 6 0 0B01111111, // 8 0B01101111 // 9}; void setup () {// задайте всички сегментарни щифтове като изход за (int i = 0; i <8; i ++) {pinmode (segmentpins [i], изход); } // Задайте всички цифрени щифтове като изход за (int i = 0; i <3; i ++) {pinmode (digitpins [i], изход); }} void loop () {// Показване на цифрите 123 int цифри [] = {1, 2, 3}; за (int digitIndex = 0; digitIndex <3; digitIndex ++) {displayDigit (цифри [digitIndex], digitIndex); забавяне (2); // Регулирайте забавянето, за да контролирате скоростта на мултиплексиране}} void displayDigit (int digit, int digitIndex) {// Изключете всички цифри за (int i = 0; i <3; i ++) {digitalWrite (digitpins [i], висок); } байт модел = digitpatterns [digit]; за (int i = 0; i <7; i ++) {digitalWrite (segmentPins [i], bitread (pattern, i)); } // Изключете десетичната точка DigitalWrite (SegmentPins [7], ниска); // Включете избраната цифрова цифрова писалка (digitpins [digitIndex], ниска); }
В тази програма добавяме масив от пинове (Digitpin) за контрол на общите катодни щифтове на всяка цифра. Вloop ()функция, ние повтаряме всяка цифра и извиквамеdisplayDigit ()функция за показване на цифрата в съответната цифрена позиция. ThedisplayDigit ()Функцията първо изключва всички цифри, след това задава съответните сегментарни щифтове въз основа на цифровия модел и накрая включва избраната цифра.
Заключение
Задвижването на 7 сегментни LED графики с помощта на микроконтролер е сравнително лесен процес, който може лесно да се постигне с правилните компоненти и умения за програмиране. Следвайки стъпките, описани в тази публикация в блога, трябва да можете да свържете 7 сегментен LED дисплей към микроконтролер и да показвате числена информация.
Ако се интересувате от закупуване на висококачествено7 сегмент LED графика,Трицифрен 7 сегментен светодиод, илиЧетирицифрен 7 сегментен светодиодПоказва, моля, не се колебайте да се свържете с нас за повече информация и да обсъдите вашите специфични изисквания. Ние се ангажираме да предоставим на нашите клиенти най -добрите продукти и услуги на конкурентни цени.
ЛИТЕРАТУРА
- Документация на Arduino: https://www.arduino.cc/reference/en/
- 7 сегментни светодиодни таблици с данни: Различни уебсайтове на производителите
