1. Введення
У цьому експерименті ми використовуємо Arduino для керування 4-значним 7-сегментним світлодіодним дисплеєм із звичайним катодом.
Для світлодіодного дисплея незамінні резистори, що обмежують струм.
Існує два способи підключення струмообмежувального резистора. Один з них - підключити по одному резистору для кожного кінця катода, всього 4 для катода d1-d4. Перевага цього методу полягає в тому, що він вимагає менше резисторів, всього 4. Але він не може підтримувати постійну яскравість, 1, найяскравіший; 8, найменш яскравий.
Інший спосіб - підключити один резистор до кожного висновку. Він гарантує постійну яскравість, але вимагає більше резисторів.
У цьому експерименті ми використовуємо 8 резисторів (220 Ом). Ми використовуємо резистори 220 Ом через відсутність резистора 100 Ом. Якщо ви використовуєте 100 Ом, відображення стає яскравішим.
2. Потрібне обладнання
- Плата V4.0 або плата MEGA 2650*1
- 4-значний світлодіодний сегментний дисплей*1
- Резистор 220 Ом*8
- Макет*1
- Перемичка макета * кілька
- USB-кабель*1
3. Принцип відображення 4-значного дисплея
Для 4-значного дисплея всього 12 контактів. Коли ви розміщуєте десяткову крапку вниз, шпилька в нижній лівій частині позначається як 1, у верхній лівій частині — 12. Показано нижче.
4. Підключення ланцюга
Підключення для V4.0
Підключення для 2560 R3
5. Зразок коду
/* keyestudio супер навчальний набір Проект 18 4-значний світлодіодний сегментний дисплей http//www.keyestudio.com */ // дисплей 1234 // вибрати штифт для катода int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; int f = 6; int g = 7; int dp = 8; // вибрати штифт для анода int d4 = 9; int d3 = 10; int d2 = 11; int d1 = 12; // встановити змінну довга n = 1230; int x = 100; int del = 55; // Точне налаштування годинника void setup() { pinMode(d1, OUTPUT); pinMode(d2, OUTPUT); pinMode(d3, OUTPUT); pinMode(d4, OUTPUT); pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT); pinMode(e, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT); pinMode(dp, OUTPUT); } ////////////////////////////////////////////////// //////////// void loop() { Дисплей (1, 1); Дисплей (2, 2); Дисплей (3, 3); Дисплей (4, 4); } ////////////////////////////////////////////////// ////////////// void WeiXuan(непідписаний символ n)// { перемикач (n) { випадок 1: цифровий запис (d1, LOW); digitalWrite(d2, HIGH); digitalWrite(d3, HIGH); digitalWrite(d4, HIGH); перерва; випадок 2: digitalWrite(d1, HIGH); digitalWrite(d2, LOW); digitalWrite(d3, HIGH); digitalWrite(d4, HIGH); перерва; випадок 3: digitalWrite(d1,HIGH); digitalWrite(d2, HIGH); digitalWrite(d3, LOW); digitalWrite(d4, HIGH); перерва; випадок 4: digitalWrite(d1, HIGH); digitalWrite(d2, HIGH); digitalWrite(d3, HIGH); digitalWrite(d4, LOW); перерва; за замовчуванням: digitalWrite(d1, HIGH); digitalWrite(d2, HIGH); digitalWrite(d3, HIGH); digitalWrite(d4, HIGH); перерва; } } void Num_0() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, HIGH); digitalWrite(g, LOW); цифровий запис (dp, LOW); } void Num_1() { digitalWrite(a, LOW); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, LOW); digitalWrite(g, LOW); цифровий запис (dp, LOW); } void Num_2() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, LOW); digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, LOW); digitalWrite(g, HIGH); цифровий запис (dp, LOW); } void Num_3() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, LOW); digitalWrite(f, LOW); digitalWrite(g, HIGH); цифровий запис (dp, LOW); } void Num_4() { digitalWrite(a, LOW); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, HIGH); digitalWrite(g, HIGH); цифровий запис (dp, LOW); } void Num_5() { digitalWrite(a, HIGH); digitalWrite(b, LOW); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, LOW); digitalWrite(f, HIGH); digitalWrite(g, HIGH); цифровий запис (dp, LOW); } void Num_6() { digitalWrite(a, HIGH); digitalWrite(b, LOW); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, HIGH); digitalWrite(g, HIGH); цифровий запис (dp, LOW); } void Num_7() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, LOW); digitalWrite(g, LOW); цифровий запис (dp, LOW); } void Num_8() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, HIGH); digitalWrite(g, HIGH); цифровий запис (dp, LOW); } void Num_9() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, LOW); digitalWrite(f, HIGH); digitalWrite(g, HIGH); цифровий запис (dp, LOW); } void Clear() // очищаємо екран { digitalWrite(a, LOW); digitalWrite(b, LOW); digitalWrite(c, LOW); digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, LOW); digitalWrite(g, LOW); цифровий запис (dp, LOW); } void pickNumber(беззнаковий символ n)// вибір числа { перемикач (n) { регістр 0:Num_0(); перерва; випадок 1: Кількість_1(); перерва; випадок 2:Число_2(); перерва; випадок 3: Кількість_3(); перерва; випадок 4: Кількість_4(); перерва; випадок 5:Num_5(); перерва; випадок 6: Число_6(); перерва; випадок 7: Число_7(); перерва; випадок 8: Число_8(); перерва; випадок 9: Число_9(); перерва; за замовчуванням: Clear(); перерва; } } void Display(беззнаковий символ x, беззнаковий символ номер)// взяти x як координату та номер відображення { WeiXuan(x); pickNumber(Число); затримка (1); Clear() ; // очищаємо екран } ////////////////////////////////////////////////// ////////
6. Результат тесту
Завантажте наведений вище код на плату контролера, ви побачите, що світлодіодний дисплей показує число 1234. Зверніть увагу, якщо він відображається неправильно, перевірте проводку.

Немає коментарів:
Дописати коментар