Arduino и Сдвиговый регистр 74HC165

25-02-2020, 10:36 0 комментариев
Сегодня рассмотрим подключение 74HC165 к Ардуино и основные моменты, с ним связанные. Мы уже рассказывали нашим читателям о расширителях портов, так вот – сдвиговый регистр еще выгоднее и круче!

Наверняка многим опытным (да и начинающим) «ардуинщикам» знакома ситуация нехватки выходных портов. В планах намечается воплощение большого сверх-идеального конструкторского проекта, а по сути - ничего не получается. Приобретать и инсталлировать дополнительные платы и микроконтроллеры – не выход (это хлопотно и дорого). Что же предпринять? - Предлагаем поработать с популярным модулем 74HC165 и оценить его несомненные достоинства.

Для этого обратимся к техническим характеристикам:
  • напряжение питания: 2 - 6V;
  • для включения достаточно 2 пинов платы расширения;
  • рабочая частота: 2-100 МГц;
  • диапазон температур: -40°C ... 125°C;
  • размеры: 19.9 × 7.6 × 8.4 мм;
  • вес: около 1 г.
Стоит добавить, что прибор стоит копейки и продается буквально на каждом шагу. Ну а мы продолжаем.
Обратите внимание на распиновку выводов микросхемы, она изложена ниже:

Теперь попробуем подключить сдвиговый регистр 74HC165 к Arduino. Для выполнения этой цели понадобится следующее «железо»:
  1. Микроконтроллер Arduino Nano (Arduino Uno также может подойти)
  2. Сдвиговый регистр 74HC165
  3. Макетная плата
  4. Соединительные провода
После сборки приступаем к заливке скетча (для считывания информации):
const uint8_t data_pin = 11; // 9 pin, Q7 /данные или MISO
const uint8_t shld_pin = 8; // 1 pin, !PL /защелка
const uint8_t clk_pin = 12; // 2 pin, CP /такты или SCK
const uint8_t ce_pin = 9; // 15 pin, !CE / чипселект

void setup() {
  Serial.begin(9600);
  pinMode(shld_pin, OUTPUT);
  pinMode(ce_pin, OUTPUT);
  pinMode(clk_pin, OUTPUT);
  pinMode(data_pin, INPUT); 
    // выключаем регистр
  digitalWrite(clk_pin, HIGH);
  digitalWrite(shld_pin, HIGH);
}

void loop() {
    // Дергаем защелку, чтобы захватить состояние входов
  digitalWrite(shld_pin, LOW);
  delayMicroseconds(5);
  digitalWrite(shld_pin, HIGH);
  delayMicroseconds(5); 
    // это действительно нужно сделать
  pinMode(clk_pin, OUTPUT);
  pinMode(data_pin, INPUT); 
    // считываем байт из регистра
  digitalWrite(ce_pin, LOW);
  uint8_t the_shifted = shiftIn(data_pin, clk_pin, MSBFIRST);
  digitalWrite(ce_pin, HIGH);
    // отправлем в монитор порта
  Serial.print(the_shifted);
  Serial.print(" - ");
  Serial.println(the_shifted, BIN);
  delay(1000);
}
К слову, для нормальной работы достаточно стандартных библиотек Arduino IDE.
Данную схему можно модернизировать, например, присоединив другие аппаратные компоненты (резисторы (сопротивление 10 кОм), тактовые кнопки, светодиоды ∕ индикаторы и др.).

Уверены, с таким устройством вы сможете воплотить любое конструкторское решение в жизнь! Экспериментируйте! Удачи!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

Сегодня мы с вами рассмотрим подключение 74HC595 к Ардуино, а также поговорим о базовых характеристиках этой модели выходного сдвигового регистра и его...

Тема нашей сегодняшней статьи – подключение датчика сердечного ритма AD8232 к Ардуино. Про целесообразность и практичность подобного устройства много говорить...

В этой статье мы рассмотрим подключение ADS1115 к Ардуино. Речь идет о 16-битном аналого-цифровом преобразователе, оснащенном 4 входами непосредственно для...

На повестке дня - подключение AM2320 к Ардуино. Тема очень занятная по той простой причине, что подобные датчики являются просто «мастхевом» для современных...

Оставить комментарий