Сдвиговый регистр 74HC165 или как увеличить количество входов Arduino

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ธ.ค. 2017
  • Входной сдвиговый регистр 74HC165 преобразует параллельный вход в последовательный. Позволяет увеличивать количество цифровых входов микроконтроллера
    🐾Купить модуль CJMCU-165 на али: alii.pub/69vejr
    Десяток 74HC165 в DIP - alii.pub/69vekc
    🐾тестовая версия arduinolab.pw/index.php/2018/0...
    🐾доп инфа learn.sparkfun.com/tutorials/...
    🐾поддержать канал материально.
    www.donationalerts.ru/r/arduin...
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 27

  • @Graf_simantika
    @Graf_simantika 3 ปีที่แล้ว +2

    чувак, ты лучший. Я тонну информации перерыл по подключению этого регистра, а ты за 2 минуты объяснил больше и понтяней.

  • @user-vt9vv7jq9t
    @user-vt9vv7jq9t ปีที่แล้ว +1

    При использовании данного скетча некорректно читается крайний бит.
    Чтобы это исправить нужно перед защелкиванием добавить строчку :
    digitalWrite(clk_pin, HIGH);

    • @wotrec
      @wotrec ปีที่แล้ว

      Спасибо добрый человек!

  • @inFawn
    @inFawn 6 ปีที่แล้ว

    Ох это бы видео мне 3 года назад, когда пианино на 2 октавы собирал :) но сам разобрался тогда

  • @MrYsupov
    @MrYsupov 6 ปีที่แล้ว +1

    Про 74HC165 интересно

  • @user-jq7tc7qi5z
    @user-jq7tc7qi5z 4 ปีที่แล้ว

    у вас на сайте про этот регистр, есть опечатки:
    "11-14, 3-6 ноги, D0-D7, Последовательный вход" .-- параллельный
    "10 нога, DS, Последовательный выход,.." -- вход

  • @begineras
    @begineras 6 ปีที่แล้ว

    спасибо за видео ,а как на неё подключить 4 энкодера?

  • @begineras
    @begineras 6 ปีที่แล้ว

    всем хорошего настроения, а как мне на эту микруху подсоединить 3 энкодера ?заранее спс

  • @vladsmirnov5136
    @vladsmirnov5136 6 ปีที่แล้ว

    Сделайте пожалуйста видео как подключить через один 74hc164 или 74hc595 к семисегментному индикатору 4 разряда и что бы можно было вывести значение допустим с таходатчика через Ардуино

    • @arduinoLab
      @arduinoLab  6 ปีที่แล้ว

      th-cam.com/video/9mpydTBuWts/w-d-xo.html
      th-cam.com/video/XKsj-MCv4Is/w-d-xo.html

    • @vladsmirnov5136
      @vladsmirnov5136 6 ปีที่แล้ว

      У меня имеется код (ниже). Помогите мне пожалуйста вывести значения из таходатчика, а то как я уже только не пробовал ковырять код но все равно ничего не получалось.
      Это код для 74hc164
      int clockPin = 6;
      int dataPin = 7;
      // Пины разрядов цифер
      int pins_numbers[4] = {2, 3, 4, 5};
      // Биты для отображения цифер от 0-9
      byte numbers_array[12] = {
      B11000000, B11011011, B10000110, B10010010, // 0 1 2 3
      B10011001, B10110000, B10100000, B11011010, // 4 5 6 7
      B10000000, B10010000, B10111111, B01100011 // 8 9 - о
      };
      void setup() {
      //устанавливаем режим OUTPUT
      pinMode(clockPin, OUTPUT);
      pinMode(dataPin, OUTPUT);
      for(int i; i

  • @user-oh8ji3gt5j
    @user-oh8ji3gt5j 6 ปีที่แล้ว +1

    Если в устройстве дофига узлов и дофига кода то матричную клавиатуру лучше не подключать, ибо может пропустить нажатие кнопки, через этот регистр подключаю джамперы и дип переключатели для настройки, очень удобно.

    • @user-oh8ji3gt5j
      @user-oh8ji3gt5j 6 ปีที่แล้ว

      Вообще можно подключать все что дает длительный логический сигнал, иначе получение данных с регистра придется получать очень часто, и на основные задачи времени мало останется.

  • @TheMyavr
    @TheMyavr 6 ปีที่แล้ว +2

    Спасибо за отличное видео!!! А можно видео с примером как например с помощью єтого регистра подключить каливиатуру 4*3 ?

    • @miggszzz
      @miggszzz 6 ปีที่แล้ว

      Простым и нормальным способом-никак... Эта микросхема не для динамического сканирования..

  • @user-rd4wb4ly2f
    @user-rd4wb4ly2f 4 ปีที่แล้ว +1

    как так выходит, что все схемы изображают младшим битом A (11 нога) а по факту младший бит берется с последней ноги H.
    то есть все схемы говорят нам, что начало в А- ABCDEFGH, но если подаем на А высокий уровень то получаем 00000010=2
    при подключении HABCDEFG - все становится на свои месте, и даже на видео тут видно что при замыкании первого контакта изменяется второй бит а не первый. по даташиту начало в А.но по факту начало с H. это какие то китайские микросхемы или как?

    • @user-sg9ds9dn3h
      @user-sg9ds9dn3h 4 ปีที่แล้ว +1

      Наверное уже несвоевременно, но все же: чтобы все работало корректно нужно перед чтением сдвигового регистра выставить clk_pin в высокое состояние! и все будет работать по даташиту, а по вашему методу потеряется старший разряд.

    • @yataganenko
      @yataganenko 4 ปีที่แล้ว

      ​@@user-sg9ds9dn3h подключил 2шт. CLK - CLK, SH/LD - SH/LDLD, SI-SO. И почему то не читает младший бит во втором.

  • @sheRzoid
    @sheRzoid 4 ปีที่แล้ว

    Не стало понятнее. Как именно увеличивает количество портов? Для прерываний эти пины потом можно использовать?

    • @arduinoLab
      @arduinoLab  4 ปีที่แล้ว

      а где там написано про порт ?

    • @arduinoLab
      @arduinoLab  4 ปีที่แล้ว

      th-cam.com/video/R-vSFEieVTA/w-d-xo.html

  • @user-be4vj5so8e
    @user-be4vj5so8e 6 ปีที่แล้ว +2

    А я пользуюсь 74HC597.

  • @OlegPogodaev
    @OlegPogodaev 6 ปีที่แล้ว +4

    Что-то в этот раз слишком сложно, для меня.

    • @FOX-METAL
      @FOX-METAL 6 ปีที่แล้ว +1

      но всё равно -ЛАЙК

  • @arduinoLab
    @arduinoLab  6 ปีที่แล้ว +7

    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);
    }

    • @kamilbro4488
      @kamilbro4488 3 ปีที่แล้ว

      //это действительно надо делать
      зачем нужно так делать?

  • @user-hv8hk9no7f
    @user-hv8hk9no7f 6 ปีที่แล้ว

    Недавно попробовал сделать джойстик на этой микросхеме )
    vk-book.ru/sdvigovyj-registr-74hc165-i-adruino-dobavlenie-pinov/