Дві схеми - це дві версії дисплея, загальний катод вгорі, загальний анод внизу. Я припускаю, що у вас є загальна версія катода.
Ви підключаєте сегменти A..G, DP через 8 серійних резисторів до 8 вводу / виводу штифтів мікроконтролера. Якщо увімкнути штифт у високому місці, засвітить цей світлодіод на вибраній цифрі. Щоб вибрати будь-яку з чотирьох цифр, ви зробите відповідний загальний катод низьким через транзистор NPN, який ви знову запускаєте зі вводу-виводу через резистор.
Якщо напруга живлення становить 5 В, а ви використовуєте червоні світлодіоди, тоді ви можете використовувати резистори 150 Ом замість 330. Також зменшіть значення базового резистора транзистора до 2,2 кОм, і, наприклад, використовуйте BC337 s для транзисторів.
Для керування повним дисплеєм спочатку робимо штифт 12 низьким, керуючи транзистором на високому рівні та встановлюючи введення / вивід для сегментів цієї цифри. Через деякий час ви вимикаєте штифт 12 і сегменти вимикаєте, і включаєте 9, і знову сегменти для другої цифри. І так далі. Якщо ви переходите від однієї цифри до іншої менш ніж за 2,5 мс, то весь цикл відображення складає 10 мс або 100 Гц, що достатньо, щоб уникнути помітного мерехтіння.
Ви можете використовувати драйвер Maxim, як MAX7219 , але це Damn Expensive ™: 12,80 долара за 1 секунду на Digikey. Хороша річ у тому, що він піклується про мультиплексування для вас, тому вам просто доведеться завантажувати його з даними сегменту для 4-х цифр. Він також має програмний контроль яскравості.
Я перевірив таблицю даних PIC16F690 , і на відміну від інших мікроконтролерів, її введення / виведення , здається, не може отримати джерело 20 мА (що невтішно). Тому транзистори знадобляться і на порту 2:
R1 був одним з резисторів на порту 2. Отже, ви вставляєте між ними Q1 і R2 і повторюєте це для кожного з 8 сегментів. Увага, Q2 - це PNP! Буде робити будь-який транзистор PNP загального призначення.