4-значний індикатор сегмента світлодіода

 


великий палець


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. Зверніть увагу, якщо він відображається неправильно, перевірте проводку.


великий палець

Немає коментарів:

Дописати коментар