- Відображення семи сегментів:
- Необхідні компоненти:
- Схема та робоче пояснення:
- Пояснення програмування:
Raspberry Pi - це плата на основі процесора ARM, розроблена для інженерів-електронників та любителів. PI - одна з найбільш надійних платформ для розробки проектів, що існують зараз. Завдяки вищій швидкості процесора та 1 ГБ оперативної пам'яті, PI можна використовувати для багатьох важливих проектів, таких як обробка зображень та IoT.
Для виконання будь-якого з важливих проектів потрібно розуміти основні функції PI. У цих підручниках ми розглянемо всі основні функціональні можливості Raspberry Pi. У кожному підручнику ми обговоримо одну з функцій PI. Наприкінці цієї серії підручників з Raspberry Pi ви зможете вивчити Raspberry Pi та самостійно робити хороші проекти. Пройдіть нижче підручники:
- Початок роботи з Raspberry Pi
- Конфігурація Raspberry Pi
- Світлодіод блимає
- Кнопкова взаємодія
- Покоління ШІМ Raspberry Pi
- РК-інтерфейс з Raspberry Pi
- Керування двигуном постійного струму
- Управління кроковим двигуном
- Реєстр зсуву зв’язку
- Підручник з ADC Raspberry Pi
- Управління сервомотором
- Ємнісна сенсорна панель
У цьому посібнику ми збираємося виконати взаємодію сегментів дисплея Raspberry Pi 7. Сім сегментних дисплеїв є найдешевшими для дисплея. Кілька цих сегментів, складених разом, можуть бути використані для відображення температури, значення лічильника тощо. Ми підключимо 7-сегментний блок відображення до GPIO PI і будемо контролювати їх для відображення цифр відповідно. Після цього ми напишемо програму в PYTHON для семисегментного відображення, щоб вона рахувала від 0-9 і скидала себе до нуля.
Відображення семи сегментів:
Існують різні типи та розміри 7-сегментних дисплеїв. Ми докладно розповіли про сім сегмент, який працює тут. В основному є два типи 7-сегментного, загальний анодний тип (загальний позитивний або загальний VCC) та загальний катодний тип (загальний негативний або спільний грунт).
Загальний анод (CA): У цьому всі негативні клеми (катоди) усіх 8 світлодіодів з'єднані між собою (див. Схему нижче), названі COM. І всі позитивні термінали залишаються наодинці.
Загальний катод (CC): У цьому всі позитивні клеми (аноди) усіх 8 світлодіодів з'єднані між собою, іменовані як COM. І всі негативні терміки залишаються в спокої.
Ці семисегментні дисплеї CC та CA дуже зручні при мультиплексуванні кількох комірок. У нашому навчальному посібнику ми будемо використовувати CC або Common Cathode Seven Segment Display.
Ми вже з'єднали 7 сегмент з 8051, з Arduino та з AVR. Ми також використовували 7-сегментний дисплей у багатьох наших проектах.
Ми обговоримо трохи про Raspberry Pi GPIO, перш ніж продовжувати далі, У Raspberry Pi 2 є 40 вихідних штифтів GPIO. Але з 40 можна запрограмувати лише 26 штифтів GPIO (від GPIO2 до GPIO27), див. Малюнок нижче. Деякі з цих штифтів виконують деякі спеціальні функції. Якщо відкласти спеціальний GPIO, у нас залишилось 17 GPIO.
У GPIO (контакт 1 або 17) +3,3 сигнал досить для приведення в дію 7 сегментний дисплей. Щоб забезпечити обмеження струму, ми будемо використовувати резистор 1 кОм для кожного сегмента, як показано на схемі.
Щоб дізнатись більше про штифти GPIO та їхні поточні виходи, перейдіть за посиланням: Світлодіод блимає з Raspberry Pi
Необхідні компоненти:
Тут ми використовуємо Raspberry Pi 2 Model B з ОС Raspbian Jessie. Усі основні вимоги до обладнання та програмного забезпечення обговорювались раніше, ви можете переглянути їх у Вступі про Raspberry Pi, крім того, що нам потрібно:
- З'єднувальні штифти
- Загальний катод 7-сегментний дисплей (LT543)
- Резистор 1 кОм (8 штук)
- Макет
Схема та робоче пояснення:
Нижче наведено підключення для інтерфейсу 7-сегментного дисплея до Raspberry Pi. Тут ми використовували сегмент Загальний катод 7:
PIN1 або e ------------------ GPIO21
PIN2 або d ------------------ GPIO20
PIN4 або c ------------------ GPIO16
PIN5 або h або DP ---------- GPIO 12 // не є обов'язковим, оскільки ми не використовуємо десяткову крапку
PIN6 або b ------------------ GPIO6
PIN7 або ------------------ GPIO13
PIN9 або f ------------------ GPIO19
PIN10 або g ---------------- GPIO26
PIN3 або PIN8 ------------- підключені до заземлення
Отже, ми будемо використовувати 8 GPIO-контактів PI як 8-бітний PORT. Тут GPIO13 - це LSB (найменший значущий біт), а GPIO 12 - MSB (найбільш значущий біт).
Тепер, якщо ми хочемо, щоб відобразити номер «1», ми повинні сегменти потужності B і C. Для живлення сегментів B і C нам потрібно живити GPIO6 і GPIO16. Отже, байт для функції "PORT" буде 0b00000110, а шістнадцяткове значення "PORT" буде 0x06. З високою кількістю висновків ми отримуємо на дисплеї "1"
Ми записали значення для кожної цифри для відображення та зберегли ці значення у рядку символів з назвою 'DISPLAY' (перевірте розділ коду нижче). Потім ми викликали ці значення по одному, щоб показати відповідну цифру на дисплеї, використовуючи функцію 'PORT'.
Пояснення програмування:
Як тільки все буде підключено згідно з принциповою схемою, ми можемо увімкнути PI, щоб написати програму на PYHTON.
Ми поговоримо про декілька команд, які ми будемо використовувати в програмі PYHTON, Ми збираємось імпортувати файл GPIO з бібліотеки, функція нижче дозволяє програмувати GPIO штифти PI. Ми також перейменовуємо “GPIO” на “IO”, тому в програмі, коли ми хочемо посилатися на шпильки GPIO, ми будемо використовувати слово “IO”.
імпортувати RPi.GPIO як IO
Іноді, коли шпильки GPIO, які ми намагаємось використовувати, можуть виконувати деякі інші функції. У такому випадку ми отримаємо попередження під час виконання програми. Команда нижче вказує PI ігнорувати попередження та продовжувати роботу з програмою.
IO.setwarnings (False)
Ми можемо вказати шпильки GPIO PI або за номером контакту на борту, або за номером їх функції. Як і "PIN 29" на платі, це "GPIO5". Отже, ми говоримо тут, або ми будемо представляти шпильку тут як «29» або «5».
IO.setmode (IO.BCM)
Ми встановлюємо 8 штифтів GPIO як вихідні, для штифтів даних та управління РК-дисплеєм.
IO.setup (13, IO.OUT) IO.setup (6, IO.OUT) IO.setup (16, IO.OUT) IO.setup (20, IO.OUT) IO.setup (21, IO.OUT) IO.setup (19, IO.OUT) IO.setup (26, IO.OUT) IO.setup (12, IO.OUT)
Якщо умова в фігурних дужках є істинним, оператори всередині циклу виконуються один раз. Отже, якщо біт0 8-бітового «виводу» відповідає дійсності, PIN13 буде ВИСОКИМ, інакше PIN13 буде НИЗКИМ. У нас є вісім "якщо не так" умов для bit0 до bit7, так що відповідний світлодіод, що знаходиться всередині 7-сегментного дисплея, може бути зроблений високим або низьким, щоб відобразити відповідне число.
if (pin & 0x01 == 0x01): IO.output (13,1) else: IO.output (13,0)
Ця команда виконує цикл 10 разів, х збільшуючи від 0 до 9.
для x в діапазоні (10):
Команда нижче використовується як назавжди цикл, за допомогою цієї команди оператори всередині цього циклу будуть виконуватися постійно.
Поки 1:
Усі інші функції та команди описані в розділі "Код" нижче за допомогою "Коментарі".
Після написання програми та її виконання Raspberry Pi запускає відповідні GPIO, щоб показати цифру на 7-сегментному дисплеї. Програма написана для того, щоб дисплей постійно рахував від 0 до 9.