Z-Shiftout (расширитель Out портов)

Опубликовано 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 мА на все каналы


 

Задействуемые пины Arduino:

• Любые 3 цифровые вывода контроллера


 

Работа в среде Arduino IDE

Для управления модулем используется стандартная Ардуиновскаю функция

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 модуль


А как же комментарии?