Опубликовано 23.03.2016 0:59:00
Z-Shiftout построен на базе микросхемы 74HC595.
74HC595 это 8-ми битный сдвиговый регистр с трехпроводным SPI интерфейсом на входе и 8ю Out выводами на выходе, которые могут использоваться для управления различной периферией: светодиоды, реле модули и т.п.
Стоить отметить, что данный модуль поддерживает каскадное подключение, т.е. последовательно подключая модули, можно нарастить необходимое для проекта количество выводов: 8, 16, 24, 32 и т.д.
• Интерфейс: SPI
• Количество выходов: 8
• Напряжение питания: 3.3 - 5В
• Максимальный ток вывода: 35мА, но не более 70 мА на все каналы
• Любые 3 цифровые вывода контроллера
Для управления модулем используется стандартная Ардуиновскаю функция
shiftOut
Модуль оборудован пяти-пиновым разъемом стандарта 2.54мм
+5V: Плюс питания
GND: Минус питания
DIN: Последовательный ввод данных.
На дублирующем разъеме он меняется на DOUT. Служит для каскадного подключения
LATCH: Защелка
CLOCK: Вход тактирования
Для наглядности, можно подключить 8 светодиодов по схеме с общим катодом.
// Тестировалось на Arduino IDE 1.0.6 const int dataPin = 12; // Пин для передачи данных const int latchPin = 11; // Пин "защелка" const int clockPin = 10; // Пин синхронизации long ledState; // Текущее состояние светодиодов void setup() { pinMode(dataPin, OUTPUT); pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); Serial.begin(9600); // В функцию Shiftout передается число, которое состоит и 8 бит // каждый бит отвечает за 1 светодиод, если в нем установлен 1, // то светодиод будет гореть, иначе, он потухнет. // Этим состоянием включим 3 светодиод. ledState = B00100000; digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, ledState); digitalWrite(latchPin, HIGH); } void loop() { }
При работе с двумя и более модулями, вся работа сводится к проталкиванию битов из первого регистра во второй.
Иными словами, для двух модулей шлем не 8 бит, а 16
// Тестировалось на Arduino IDE 1.0.6 const int clockPin = 7; // Пин синхронизации const int latchPin = 6; // Пин "защелка" const int dataPin = 5; // Пин для передачи данных void setup() { pinMode(latchPin, OUTPUT); pinMode(dataPin, OUTPUT); pinMode(clockPin, OUTPUT); Serial.begin(9600); // В функцию Shiftout передается число, которое состоит и 8 бит. // Для двух модулей необходимо послать 16 бит. // Включим 3 и 11ый вывод. digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, B00100000); shiftOut(dataPin, clockPin, MSBFIRST, B00100000); digitalWrite(latchPin, HIGH); } void loop() { }
• Принципиальная схема: z-shiftout-module-schematic.jpg
• Техническое описание микросхемы 74HC595: datasheet
Купить в России Z-Shiftout модуль
А как же комментарии?