Урок 2 — Подключаем сдвиговый регистр 74НС595 к Arduino. «Бегущие» огни

.Урок 2 — Подключаем сдвиговый регистр 74НС595 к Arduino.  «Бегущие» огни

В данном уроке мы с вами подключим сдвиговый регистр 74HC595 к Arduino. Но все по порядку. Сперва рассмотрим что такое сдвиговый регистр и как он устроен.

74HC595 — восьмиразрядный (это означает, что он имеет 8 управляемых выходов) с последовательным вводом, последовательным или параллельным выводом информации, с триггером-защелкой.

сдвигового регистра 74HC595

Vcc

Питание

Q0...Q7

Параллельные выходы

DS или SER

(Data Serial) Вход для последовательных данных

OE

Вход для переключения состояния выходов из высоко много в рабочее(активация при получении LOW)

ST_CP или RCK

(STorage register Clock input, storage — хранилище) Синронизация(«защелкивание») выходов

SH_Cp или SCK

(SHift register Clock input, shift — сдвиг) Вход для тактовых импульсов

MR

Сброс значений регистра (активация при получении LOW)

Q7S

Выход для последовательного соединения регистров

GND

Земля

При использовании 3 пинов Arduino можно получить 8 выходов к которым мы можем подключить не только светодиоды, но и например драйвер двигателя и пр.

Для примера работы сдвигового регистра 74HC595 подключим светодиоды.

Для Видео урока нам понадобится:

- Arduino UNO или Arduino Nano

- Сдвигового регистра 74HC595

- Плата макетная беспаечная

- Резисторы 220 ОМ

-Соединительные провода папа-папа

-Светодиоды 3 или 5 мм.

Схема подключения сдвигового регистра к плате Arduino UNO.

Схема подключения сдвигового регистра к плате Arduino UNO

Принципиальная схема подключения сдвигового регистра к плате Arduino UNO.

Принципиальная схема подключения сдвигового регистра к плате Arduino UNO.

В видео уроке показан пример работы сдвигового регистра. Скетч управления бегущими огнями в среде Arduino IDE будит вот таким:

int dataPin = 10; //Пин подключен к DS входу 74HC595 
int latchPin = 11; //Пин подключен к ST_CP входу 74HC595 
int clockPin = 12; //Пин подключен к SH_CP входу 74HC595 
void setup() { //устанавливаем режим OUTPUT 
  pinMode(latchPin, OUTPUT); 
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT); 
} 
void loop() { 
  byte byteToSend = 0; //Создаем пустой байт B00000000 
  for (int bitPos = 0; bitPos < 8; bitPos++) { // В переменной хранится позиция изменяемого бита 
    byteToSend = 0; // Обнуляем байт при каждом проходе 
    bitWrite(byteToSend, bitPos, HIGH); // При bitPos=0 получим B00000001, при bitPos=1 - B00000010, при bitPos=2 - B00000100 и т.д. 
    digitalWrite(latchPin, LOW);  // устанавливаем синхронизацию "защелки" на LOW
    shiftOut(dataPin, clockPin, LSBFIRST, byteToSend); // Инвертируем сигнал при помощи MSBFIRST, грузим с первого бита 
    digitalWrite(latchPin, HIGH); //"защелкиваем" регистр, тем самым устанавливая значения на выходах
    delay(150); 
  } 
  for (int bitPos = 0; bitPos < 8; bitPos++) { // В переменной хранится позиция изменяемого бита 
    byteToSend = 0; // Обнуляем байт при каждом проходе 
    bitWrite(byteToSend, bitPos, HIGH); // При bitPos=0 получим B00000001, при bitPos=1 - B00000010, при bitPos=2 - B00000100 и т.д. 
    digitalWrite(latchPin, LOW);  // устанавливаем синхронизацию "защелки" на LOW
    shiftOut(dataPin, clockPin, MSBFIRST, byteToSend); // Инвертируем сигнал при помощи MSBFIRST, грузим с первого бита 
    digitalWrite(latchPin, HIGH); //"защелкиваем" регистр, тем самым устанавливая значения на выходах
    delay(150); 
  } 
}

Скетч из видео урока вот такой:

int dataPin = 10; //Пин подключен к DS входу 74HC595 
int latchPin = 11; //Пин подключен к ST_CP входу 74HC595 
int clockPin = 12; //Пин подключен к SH_CP входу 74HC595 
void setup() { //устанавливаем режим OUTPUT 
  pinMode(latchPin, OUTPUT); 
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT); 
} 
void loop() { 
  byte byteToSend = 0; //Создаем пустой байт B00000000 
  for (int bitPos = 0; bitPos < 8; bitPos++) { // В переменной хранится позиция изменяемого бита 
    byteToSend = 0; // Обнуляем байт при каждом проходе 
    bitWrite(byteToSend, bitPos, HIGH); // При bitPos=0 получим B00000001, при bitPos=1 - B00000010, при bitPos=2 - B00000100 и т.д. 
    digitalWrite(latchPin, LOW);  // устанавливаем синхронизацию "защелки" на LOW
    shiftOut(dataPin, clockPin, LSBFIRST, byteToSend); // Инвертируем сигнал при помощи MSBFIRST, грузим с первого бита 
    digitalWrite(latchPin, HIGH); //"защелкиваем" регистр, тем самым устанавливая значения на выходах
    delay(150); 
  } 
   byteToSend = 0; // Обнуляем байт при каждом проходе 
  for (int bitPos = 0; bitPos < 8; bitPos++) { // В переменной хранится позиция изменяемого бита 
   // byteToSend = 0; // Обнуляем байт при каждом проходе 
    bitWrite(byteToSend, bitPos, HIGH); // При bitPos=0 получим B00000001, при bitPos=1 - B00000010, при bitPos=2 - B00000100 и т.д. 
    digitalWrite(latchPin, LOW);  // устанавливаем синхронизацию "защелки" на LOW
    shiftOut(dataPin, clockPin, MSBFIRST, byteToSend); // Инвертируем сигнал при помощи MSBFIRST, грузим с первого бита 
    digitalWrite(latchPin, HIGH); //"защелкиваем" регистр, тем самым устанавливая значения на выходах
    delay(150); 
  } 
}

Как видно из примеров мы можем управлять выходами с сдвигового регистра по нашему усмотрении. И это только самые распространенные примеры. Вы можете сделать свои. Например включение светодиодов через один. Или сделать стробоскоп используя знания полученные в уроке: Полицейский стробоскоп своими руками на Arduino.

Придумать можно много интересных вариантов применения сдвигового регистра 74HC595 в проектах на Arduino.

Следующий урок: Два сдвиговых регистра 74HC595. Бегущие огни.

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

Понравилась статья? Поделитесь ею с друзьями:

Вернуться в раздел: Уроки Arduino: Подключение датчиков и модулей к Arduino Дата публикации 5 апреля , 2017

Комментарии

Ваше Имя*
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.

Garminziff
#377 Гость: Garminziff (7 января, 2022 в 01:29)

then only a few have reached us

Professionalamu
#376 Гость: Professionalamu (22 декабря, 2021 в 11:39)

Of his works, he is especially famous

Beaconmpe
#375 Гость: Beaconmpe (21 декабря, 2021 в 19:15)

antiquities. These are the Egyptian papyri

Mojavebzq
#374 Гость: Mojavebzq (21 декабря, 2021 в 19:05)

and was erased, and on cleaned

Amazonnnarb
#373 Гость: Amazonnnarb (17 декабря, 2021 в 10:07)

manuscripts attributed to Robins

Dormanibu
#358 Гость: Dormanibu (5 мая, 2021 в 00:40)

Of his works, he is especially famous

Humminbirdchy
#338 Гость: Humminbirdchy (19 апреля, 2021 в 00:34)

works of art.

iAquaLinkzwa
#335 Гость: iAquaLinkzwa (16 апреля, 2021 в 22:15)

then only a few have reached us

Independentgiq
#334 Гость: Independentgiq (16 апреля, 2021 в 02:49)

works of art.

Amazonnnqgi
#333 Гость: Amazonnnqgi (15 апреля, 2021 в 06:49)

only a few survived.

Fenderdsg
#332 Гость: Fenderdsg (14 апреля, 2021 в 23:48)

Testaru. Best known

Haywardanr
#331 Гость: Haywardanr (14 апреля, 2021 в 22:55)

which is carried out by the printing

Avalancheurd
#330 Гость: Avalancheurd (13 апреля, 2021 в 04:17)

book about the chess of love ", created by

Drywallqcr
#329 Гость: Drywallqcr (13 апреля, 2021 в 04:15)

elements (case, binding).

AllencoeltGR
#308 Гость: AllencoeltGR (11 марта, 2021 в 01:54)

Спасибо, давно искал

Foamgzi
#296 Гость: Foamgzi (9 февраля, 2021 в 20:36)

Europe, and in Ancient Russia

WalterNixPD
#202 Гость: WalterNixPD (23 декабря, 2020 в 19:08)

Спасибо за пост


Cлучайные товары

Посмотреть товар в Магазине »

Мы в соц сетях

Подпишись на канал Telegram

Portal-PK (Портал ПК) © 2015 - 2024
Разработка проектов
AT Block
DWIN Box