Модуль семисегментного 3-разрядного дисплея красного цвета свечения с управлением по последовательной шине на драйвере 74HC595 управляется как от платы Arduino, так и от Raspberry Pi. Часы, секундомер, буквенно-цифровое обозначение и многое другое, теперь все стало доступным и простым. Драйверы соединены последовательно и управляются по трем проводам. Так же модуль имеет выходные сигналы для возможности подключения последующих драйверов типа 74HC595 или такого же индикатора. Контакты P1 являются входными, контакты P2 — выходными.
Контакты:
- VCC – питание;
- GND – земля;
- SDI – данные (вход DS для 74HC595);
- SKLC – тактовый сигнал (вход CHCP для 74HC595);
- LOAD – защелка (вход STCP для 74HC595).
Пример:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
//Пин подключен к SH_CP входу 74HC595 int clockPin = 6; //Пин подключен к ST_CP входу 74HC595 int latchPin = 7; //Пин подключен к DS входу 74HC595 int dataPin = 8; // битовый массив отображаемых цифр от 0 до 9, минуса, символа градуса цельсия и букв лат.алфавита byte DigitsArray[33] = { B11000000, B11111001, B10100100, B10110000, // 0, 1, 2, 3 (0-3) B10011001, B10010010, B10000010, B11111000, // 4, 5, 6, 7 (4-7) B10000000, B10010000, B10111111, B10011100, // 8, 9, -, ° (8-11) B10001000, B11000110, B10000110, B10001110, // A, C, E, F (12-15) B10001001, B11110001, B11000111, B10001100, // H, J, L, P (16-19) B11000001, B10010001, B10000011, B10100111, // U, Y, b, c (20-23) B10100001, B10000100, B10001011, B10101011, // d, e, h, n (24-27) B10100011, B10000111, B11100011, B11111111, // o, t, u, всеВЫКЛ (28-31) B00000000 // всеВКЛ }; // очищаем все три индикатора void ClearDisplay() { DigitShow(31); // разряд сотни DigitShow(31); // разряд десятка DigitShow(31); // разряд единицы delay (5); } // управляем регистром 74CH595, выводим символ на индикатор дисплея void DigitShow (int NumCharacter) { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, DigitsArray[NumCharacter]); digitalWrite(latchPin, HIGH); } void setup() { // устанавливаем режим ВЫХОД пинам управления pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); ClearDisplay(); } void loop() { // поочередно считываем цифры и буквы из массива for (int Count = 0; Count < 31; Count++) { // цифра единичного разряда чила DigitShow(Count + 2); // цифра десятичного разряда числа DigitShow(Count + 1); // цифра разряда сотых числа DigitShow(Count); delay (500); } } |
Схема:
