Сегодня рассмотрим пример подключения 24 реле к 3 контактам Ардуино используя сдвиговый регистр 74HC595. В следующем видео я покажу как подключить 24 кнопки используя ещё 4 контакта Ардуино. Итого используя всего 7 контактов можно добавить неограниченное количество входов и выходов.
При создании проектов на Ардуино, нам часто приходится подключать много датчиков, кнопок, реле и другое. И перед нами всегда встаёт вопрос. Как же всё это подключить, ведь на Ардуино так мало входов и выходов. Вот здесь к нам на помощь и приходят такие микросхемы как сдвиговые регистры.
Без преувеличения можно сказать, что с ними вы сможете подключить любое количество.
Приветствую всех моих подписчиков и гостей канала. Сегодня мы применение микросхемы 74HC595 для увеличения количества выходов.
Для Увеличения входов потребуется 4 входа на Ардуино, и для выходов тоже 3. Так что за действуя всего 7 входов-выходов вы получите неограниченное количество.
Одна такая микросхема способна добавить 8 выходов, а 2 уже 16, 3- 24 и так далее. А задействовано будет всего 3 вывода, независимо от количество входов или выходов.
И не волнуйтесь, что можете потерять в скорости, так как эта микросхема 74HC595 работает на частотах до 100мГц, а 74HC165 на частоте 48мГц, а это значительно больше, чем может выдать микроконтроллер.
У меня есть уже несколько видео на эту тему и если вам интересно или вы что-то не поймёте в этом видео, то перед тем как спросить, посмотрите их, возможно там уже есть ответ на ваш вопрос.
Примеры что я использую в этом видео были взяты оттуда.
Этот урок в основном про Протеус, поэтому на скетчах я останавливаться не буду. Так же я не буду собирать готовую схему, так как я это уже делал в указанных видео.
Вот пример работы.
Сначала все реле выключены, потому что все биты во всех портах стоят в нулевом состоянии. Это задано во встроенной в Ардуино функции ShifhtOUT. Направление чтение битов справа на лево. В скетче всё рассказано.
Вот пример скетча. Он совсем простой, и если выкинуть всё лишнее займёт всего 20 строчек кода.
Повторюсь, сейчас все биты в нулевом состоянии, значит все реле выключены. Изменяя значения битов мы можем изменять состояние реле, то есть включать и выключать их. Для этого всего лишь надо подать в функцию ShiftOUT определённое значение, ноль или единицу. Реле изменят своё состояние с выключенного на включенное. Это можно видеть по изменению положения контакта, а так же по красному квадрату около реле. Он означает, что на реле подан высокий уровень, то есть HIGH. Точно такой же квадрат будет и на сдвиговом регистре. Если квадратик синий, то значит состояние низкое и реле не включено.
Если на микросхеме высокий уровень, а на нужном реле низкий, значит где-то обрыв и сигнал до него не доходит.
Теперь приступаем к работе.
Открываем Протеус. Для начала нам надо создать новый проект. Для этого нажимаем NEW PROJECT и изменим имя, например на registr, так как мы будем работать с регистрами сдвига. Теперь укажем путь для сохранения проекта. В прошлом уроке мы создали папку Протеус на диске D, Вот туда и сохраним.
Дальше указываем, что будем работать с шаблоном default, так как мы уже в нём подготовили некоторые элементы, которые будем часто использовать. Печатную плату создавать не будем, поэтому оставляем без изменений. Дальше тоже со всем соглашаемся и жмём Финиш.
Закрываем окно библиотеки и начинаем рисовать схему подключения. Начнём с контроллера. Выбираем Атмега 328 и вставляем его в окно схемы.
Что бы микроконтроллер работал на частоте 16 мегагерц, а не 8, надо установить внешний кварц. И ещё пару конденсаторов. Я всё это подробно рассказывал в этом видео, если что не понятно то посмотрите его. В следующих уроках я больше не буду показывать этот момент, а буду сразу начинать с примера, а кварц уже будет установлен на схему. Это будет сделано что бы не повторяться, и не занимать ваше время.
Теперь установим на схему микросхемы сдвиговых регистров. Начнём с регистров входа. Хоть они нам и не пригодятся в этом уроке, зато в следующем нам не надо будет этим заниматься. Так как эта схема перекочует в следующее видео. Так как мы будем подключать 20 кнопок, то нам понадобится 3 микросхемы. Правда у нас останется ещё 4 свободных места, так что вы можете установить 24 кнопки.
То же самое проделаем с микросхемой сдвигового регистра для увеличения выходов. Напомню, что каждая такая микросхема даёт прирост выходов для 8 реле. Подключаются они каскадом, одна за другой. Нам как и с кнопками понадобится 3 микросхемы. Подключаются они всего к 3 контактам Ардуино и работают намного быстрее возможностей микроконтроллера, так что тормозов не будет.
При создании схемы вам придётся часто передвигать компоненты для изменения их положения на рабочем экране. Тут есть один нюанс. Для того что бы передвинуть несколько элементов надо что бы они полностью вошли в выделенную область.
Иначе вы можете перенести не весь элемент а только его часть. Надо за этим следить.Теперь скопируем блок из кнопки и реле для простого размножения. Так как все свойства уже установлены, то можно просто вставлять их в схему. Устанавливаем нужное число копий.
Давайте теперь соединим все элементы на схеме. Сначала надо установить землю. Не побоюсь этого сказать, но земля наверное самый главный элемент на схеме. К ней мы подключим по одному контакту от кнопок и реле, а другие контакты соединим с микроконтроллером согласно скетчу.
Теперь, что бы не тянуть провода по всей схеме, поставим ещё одну земля, благо их может быть любое количество и все они будут соединены вместе. А ещё поставим источник питания. Как я говорил в первой части для микроконтроллера источник не нужен, он по умолчанию уже подведён к питанию. Для микросхем тоже не нужен, на них даже не выведены на схеме контакты под питание. Но для работы сдвигового регистра надо принудительно подать питание на определённые выводы. Про них было рассказано в соответствующих видео. Вот для этого и пришлось вывести на схему плюс и минус питания.
Если вы хотите написать что-то на схеме, то можете воспользоваться для этого выводом текста. Просто нажимаете и вводите любой текст. Я что бы не забыть указал, что питание микросхем должно подаваться на выводы 8 и 16.
Теперь надо соединить некоторые выводы микросхем друг с другом. Так как они работают одинаково то выводы 11 – это вывод тактовых импульсов и вывод 12 – это синхронизация у них должны быть соединены вместе.
9 выход отвечает за последовательное соединения нескольких регистров. Его надо подключить к выводу 14 другого регистра.
Пока мы ещё много не нагородили, надо проверить, работает ли это всё вообще. Для этого заходим в редактирование микроконтроллера и делаем необходимые настройки на работу с внешним кварцем. И нам надо указать ссылку на адрес где находится HEX файл нашего скетча.
Открываем скетч. Сейчас все выходы установлены в ноль. То есть на всех выходах сдвигового регистра будет значение низкого уровня, то есть 0. Проверяем.
Включаем анимацию и видим, что напротив каждого выхода регистра горит синий квадратик означающий что на выходах сигнала нет.
Снова открываем скетч и изменим значения. Компилируем, и обновляем HEX файл. Теперь видим, что на некоторых выходах микросхемы появился высокий уровень. Он показан красным квадратиком. Сравним эти значения со скетчем.
Как можно увидеть, всё верно. Так что можно идти дальше и подключать реле.
Один контакт у всех реле подключаем к земле. Здесь схемное решение Протеуса немного отличается от Ардуиновского. В Протеусе, использовано голое реле без опторазвязки и другие радиоэлементов, поэтому для того чтобы реле сработало надо подать питание на обмотку магнита, а в модулях Ардуино питание подаётся на модуль, а сигнал управления подаётся на вход. Если проще, то вход реле надо подключить к выходу сдвигового регистра.
Теперь все выходы регистра надо соединить с реле. У каждой микросхемы 8 выходов. Они обозначаются как Q0-Q7. Если смотреть по выводам микросхемы, то первый выход – это 15 вывод микросхемы, а дальше они идут по порядку с 1 по 7.
Соединять выходы можно и так как я сейчас показываю, но это допустимо только на очень простых схемах и с малым количеством радиоэлементов. Провод можно тянуть не задумываясь как он будет проложен, Протеус сам позаботится о том чтобы проложить связь и нигде ничего не нарушить. Но повторюсь в больших схемах, и даже в этой так делать нельзя. Дальше я покажу правильный способ как надо делать.
Запускаем анимацию, так как HEX файл мы уже загрузили ранее. Вы можете остановить видео и пройтись по линии от регистра до реле и увидеть, что если на регистре красный квадрат то значит на нём высокий уровень и он включит реле. У работающих реле контакт замкнул другой вывод и если бы там была нагрузка, то она бы включилась.
Теперь рассмотрим более правильный способ разработки сложных схем. Когда у вас очень много линий связи, то не обязательно тянуть сотни линий делая из схемы непролазный лес. Можно использовать для этого контакты из вкладки терминалы. Если честно я не знаю как это называется. Кто знает, напишите.
Заходим в Терминалы и выбираем пункт DEFAULT. Это вот такой контакт. Его принцип работы такой. Если на схеме есть один или несколько контактов и между ними есть связь, то это равносильно проведённой между ними линии соединения. Допустим я хочу подключить реле к земле, то мне надо установить такой контакт, зайти в редактирование и выбрать из выпадающего списка пункт назначения. Связь есть, а проводов не видно и схема более наглядная так как около кружочка напечатано с чем этот контакт соединяется. Соединим этим способом все реле с землёй.
Теперь тоже самое сделаем с кнопками. Эта земля нам больше не нужна., удаляем её.
Так же поступим с выходами микросхемы сдвигового регистра. Но здесь, так как мы никуда не ссылаемся, то нам надо дать этим контактам имя. Я дам имя по конечному пункту, то есть с чем этот контакт должен будет соединяться, с каким реле.
И тоже самое делаем с реле. Но так как нам уже есть на что ссылаться, то при редактировании уже можно выбирать из списка, а не писать свои имена. Если это первое реле, то ищем в списке реле 1 и выбираем его. Это действие свяжет реле с нужным контактом регистра. Так как у нас пока нарисовано 12 реле, то и на микросхеме я вывел всего 12 контактов. Потом добавлю недостающее.
Включаем анимацию и смотрим. Как и прежде всё работает. А теперь давайте сравним первый и второй способ. Второй гораздо симпатичнее и лучше читается. Так же его проще редактировать. И ещё десятки плюсов. Так что будем пользоваться этим способом.
По условию, мне надо было сделать 20 кнопок и 20 реле, а у меня всего по 12. Надо исправить. Уплотним схему. По центру у нас было пустое место вот его и используем. Перенесём все кнопки сюда. Мне кажется что собрав их в одном месте так будет удобнее ими пользоваться, да и выглядеть стало посимпатичнее.
Теперь, после того как мы перенесли кнопки у нас образовалось пустое место между рядами. Подожмём реле, тем самым освободим место для ещё двух рядов реле.
Скопируем нижний ряд и вставим его ниже по схеме. Так мы получили ещё 8 штук.
Тоже самое проделаем с кнопками, но здесь сразу скопируем четыре ряда и вставим их снизу на схему. Нам не надо волноваться за название кнопок, так как мы их не вводили.
На выходах сдвиговых регистров добавим недостающие 8 контактов. Так как нам пока некуда ссылаться, то надо создать для них названия с RELAY 13 до RELAY 20.
Переходим к реле. Так как мы копировали ряд, то вход реле у нас получил ссылку на неправильную кнопку и это надо исправить. Переименуем контакт в соответствии с названием реле, так как хоть мы и копировали ряд, но название реле получили в соответствии с порядковым номером на схеме. Надеюсь, понятно объяснил.
Ну и наконец последняя проверка работоспособности нашей схемы. На вопрос почему я так часто проверяю работу, отвечу. Лучше делать понемногу и проверять часто, так проще выяснить где ошибка если что пошло не так. Даже если это займёт чуть больше времени, чем сделать всю работу очень быстро, а потом увидеть, что схема не рабочая, и начинать всё сначала. Но это лишь моё мнение, и оно конечно не идеально. Каждый решает сам как ему поступать.
Спасибо что досмотрели это видео до конца. Оставайтесь на канале скоро выйдут новые видео уроки на разные темы. Я уверен, что здесь вы сможете найти для себя что-нибудь интересное и полезное.
До встречи.
Главная→Метки 74HC595
На данной странице представлены проекты, в которых используется регистр сдвига 74HC595 — один из самых популярных регистров подобного типа
Опубликовано автором admin-new9 февраля, 2022
Все современные микроконтроллеры имеют определенное число контактов ввода/вывода общего назначения (IO pins), но в некоторых случаях как, например, подключение семисегментного индикатора (дисплея), этого числа контактов может быть недостаточно. В этих случаях для увеличения числа доступных контактов хорошим выбором является использование … Читать далее →
Рубрика: Проекты на ESP32 | Метки: 74HC595, ESP32, регистр сдвига, семисегментный дисплей | Добавить комментарий
Опубликовано автором admin-new9 февраля, 2022
На первый взгляд, плата Raspberry Pi имеет достаточно много контактов ввода/вывода (GPIO pins), однако при подключении к ней ряда устройств, например, 3D принтера, этого количества контактов все равно может не хватить. В этих случаях для увеличения количества выходных контактов и … Читать далее →
Рубрика: Проекты на Raspberry Pi | Метки: 74HC595, Raspberry Pi, регистр сдвига | Добавить комментарий
Опубликовано автором admin-new24 мая, 2021
Измерение температуры человеческого тела играет важную роль в медицине для диагностирования состояния человека. В электронике существует множество датчиков для измерения температуры, но точность многих из них не подходит для использования в медицинских целях. В свою очередь, датчик температуры MAX30205 специально … Читать далее →
Рубрика: Схемы на Arduino | Метки: 74HC595, arduino, arduino nano, датчик температуры, медицина, регистр сдвига, семисегментный дисплей, термометр | Комментарии (4)
Опубликовано автором admin-new11 августа, 2021
В настоящее время во встраиваемой электронике (и не только) достаточно широкое применение находят часы на семисегментных дисплеях (индикаторах). Ранее на нашем сайте мы уже рассматривали подключение семисегментного дисплея к плате Arduino Uno, также у нас представлены проекты различных часов на … Читать далее →
Рубрика: Схемы на Arduino | Метки: 74HC595, arduino, arduino uno, DS3231, регистр сдвига, семисегментный дисплей, система реального времени, цифровые часы | Комментарии (2)
Опубликовано автором admin-new12 августа, 2021
Игра в змейку (Snake Game) стала очень популярной с момента появления мобильных телефонов. Сначала она появилась на мобильных телефонах с черно-белым экраном и ее популярность вскоре после этого стала стремительно расти. Вышло очень много версий данной игры для мобильных устройств … Читать далее →
Рубрика: Схемы на Arduino | Метки: 74HC595, arduino, arduino uno, игра, регистр сдвига, светодиодная матрица 8х8 | Добавить комментарий
Опубликовано автором admin-new17 декабря, 2019
В плате Arduino Uno у нас есть 20 контактов ввода/вывода, то есть мы можем запрограммировать все эти 20 контактов на работу на ввод или вывод данных. По факту в микроконтроллере ATMEGA328P, являющемся «сердцем» платы, число выводов больше 20, однако часть … Читать далее →
Рубрика: Схемы на Arduino | Метки: 74HC595, arduino, arduino uno, регистр сдвига | Добавить комментарий
В этом проекте я расскажу о регистрах сдвига, одной из популярных микросхем регистров сдвига — 74HC595 и, наконец, о том, как использовать регистр сдвига 74HC595 с Arduino и о преимуществах этого интерфейса.
Описание
Обычно рассмотрим небольшое приложение, в котором вы хотите управлять 8 светодиодами с помощью Arduino (или любого микроконтроллера). Это приложение, хотя и очень простое, потребует от вас использования 8 доступных входных/выходных контактов вашей платы Arduino: по одному для каждого светодиода.
Теперь рассмотрим немного продвинутый проект, в котором ваши требования включают управление теми же 8 светодиодами, а также выполнение других действий, таких как отображение сообщения или любой информации на ЖК-дисплее 16×2 или подключение устройства Bluetooth для управления светодиодами через смартфон. !!!
Этот тип более крупных проектов потребует много контактов ввода-вывода на плате Arduino, и может не хватить контактов для подключения дополнительных устройств.
На помощь приходит микросхема регистра сдвига.
Сдвиговый регистр — это, по сути, микросхема последовательно-параллельного преобразователя. По сути, он принимает последовательный ввод через один контакт (ну, технически вам нужно как минимум 3 контакта, о которых я расскажу позже) и преобразует его в 8-битный параллельный вывод, тем самым эффективно уменьшая количество интерфейсных контактов между микроконтроллером и его устройства вывода.
Существуют и другие разновидности сдвиговых регистров, такие как последовательный вход, параллельный выход (тот, который нас интересует), последовательный вход, последовательный выход, параллельный вход, последовательный выход и параллельный вход, параллельный выход. Дополнительные сведения о регистрах сдвига см. на странице 9.0023 ТИПЫ СМЕННЫХ РЕГИСТРОВ И ПРИМЕНЕНИЕ .
В этом проекте я буду использовать микросхему регистра сдвига типа Serial IN и Parallel OUT под названием 74HC595.
Как упоминалось ранее, ИС 74HC595 представляет собой 8-битный регистр сдвига с последовательным вводом и параллельным выводом. Это 16-контактная микросхема, доступная в различных корпусах, таких как DIP, SOIC, SSOP и TSSOP.
На следующем рисунке показана схема контактов 74HC59.5 Сдвиговый регистр.
В следующей таблице кратко описаны контакты сдвигового регистра 74HC595.
Номер контакта | Название контакта | Описание |
15, 1-7 | QA, QB – QH | QA – QH (8) Выходные контакты |
8 | ЗЕМЛЯ | Контакт заземления |
9 | QH’ | QH’ Выход |
10 | СРЦЛР’ | Вход сброса |
11 | СРКЛК | Ввод часов |
12 | РКЛК | Вход синхронизации регистра хранения |
13 | OE’ | Включение выхода |
14 | СЕР | Последовательный ввод |
16 | ВКЦ | Напряжение питания |
ПРИМЕЧАНИЕ: Существует несколько производителей микросхемы регистра сдвига 74HC595, и соглашение об именах у каждого производителя может отличаться. Ознакомьтесь с техническими данными на основе производителя. Приведенные выше названия выводов взяты из таблицы данных, предоставленной Texas Instruments.
Позвольте мне построить простую схему, в которой я буду использовать только три контакта Arduino UNO и управлять 8 светодиодами. Это будет возможно при использовании 74HC59.5 Сдвиговый регистр с Arduino.
Три контакта регистра сдвига, которые необходимо подключить к Arduino, — это контакты 11 (тактовый вход), 12 (тактовый вход регистра хранения или просто вход-защелка) и 14 (вход данных).
Все 8 светодиодов будут подключены к микросхеме сдвигового регистра. (подробнее в разделе схемотехника).
На следующем изображении показана принципиальная схема интерфейса сдвигового регистра 74HC595 с Arduino UNO.
Сначала подключите контакт последовательного входа сдвигового регистра 74HC595 к контакту 4 Arduino. Затем подключите контакты часов и защелки, то есть контакты 11 и 12 платы 74HC595, к контактам 6 и 5 платы Arduino соответственно.
Теперь подключите 8 светодиодов с отдельными токоограничивающими резисторами 1 кОм к 8 выходным контактам микросхемы 74HC595. Что касается источника питания, подключите отдельный источник питания 5 В к микросхеме 74HC595 с общим заземлением к Arduino, а не подавайте 5 В от Arduino.
Ниже приведен простой код для последовательного включения светодиодов.
Давайте теперь попробуем понять работу этого проекта. Первоначально все светодиоды будут выключены, так как светодиод байтовой переменной установлен на 0. Теперь каждый бит устанавливается на 1 с помощью функции «bitSet» и сдвигается с помощью функции «shiftOut».
Соответственно каждый светодиод будет включаться в одинаковой последовательности. Если вы хотите выключить светодиод, вы можете использовать функцию «bitClear».
Микросхема регистра сдвига 74HC595 или любой аналогичный регистр сдвига может использоваться в следующих приложениях:
Arduino 0 Комментарии
В этом руководстве Robo India объясняется, как удлинить выходные контакты платы Arduino. Это основное ограничение Arduino. Но с помощью этого урока вы можете увеличить количество выходных контактов платы Arduino. 1. Введение:Пошаговое иллюстрированное руководство по расширению выходных контактов Arduino. В этом руководстве используется сдвиговый регистр 74HC595N для последовательного входа и параллельного выхода.
Этот регистр IC принимает 3-контактный ввод и выдает 8-контактный вывод. Таким образом, это расширяет 3 контакта до 8 контактов.
1.1 SN74HC595N Сдвиговый регистр.Это популярный сдвиговый регистр, который мы используем в этом уроке. Требуется трехконтактный интерфейс от Arduino
Лист данных SNHC595N можно скачать здесь:
Ниже приведена схема выводов регистра сдвига SN74HC595N:
Для выполнения этого эскиза потребуется следующее оборудование. сдвигового регистра.
Серийный номер | Артикул | Количество |
1 | Arduino UNO | 1 |
2 | 9 0047 Макет1 | |
3 | 74HC595N Сдвиговый регистр | 1 |
4 | 9 0047 светодиод8 | |
5 | Резистор 1 кОм | 8 |
5 | Перемычка 90 052 | 19 |
Соберите следующую схему с помощью вышеперечисленных компонентов.
Вот схема этой схемы-
4. 1 shiftWrite(Pin, State): Эта функция аналогична функции digitalWrite . Это делает контакт ВЫСОКИМ/НИЗКИМ. Использование такое же, как и для функции digitalWrite.
4.2increament() : Эта функция предназначена для массива светодиодов в регистре сдвига, светодиоды начинают светиться от светодиода 0 до светодиода 7, и когда все включаются, они начинают выключаться от светодиода 7 до светодиода 0.
4.3 OneByOne(): Эта функция аналогична упомянутой выше increment() но разница в том, что в этой функции одновременно светится только один светодиод. Таким образом, в этой функции светодиод начинает светиться от светодиода 0 до светодиода 7 и в обратном порядке.
4.4. AllHigh(): Эта функция переводит все выходные контакты в ВЫСОКОЕ состояние.
4.5 AllLow(): Эта функция переводит все выходные контакты в НИЗКИЙ уровень.
4.6 SOS(): Эта функция повторяет функции AllHigh() и AllLow() 10 раз с интервалом 100 мс между двумя шагами.
Выходное видео демонстрирует все вышеупомянутые функции.
Вы можете скачать этот код (Arduino Sketch) отсюда.
// Учебное пособие Robo India по сдвиговому регистру SN74HC595N // http://roboindia.com/ INT DataPin = 2; // Контакт данных подключен к контакту № 2 INT ClockPin = 3; // Контакт данных подключен к контакту № 3 интервал защелки = 4; // Контакт данных подключен к контакту № 4 байт данных = 0; // 8-битные данные для отправки через DataPin недействительная установка () { pinMode(DataPin, ВЫХОД); // Все 3 вывода выводятся pinMode(ClockPin, ВЫХОД); pinMode(LatchPin, ВЫХОД); } пустой цикл () { приращение(); // приращение светодиодов начинается с 0 - 7 задержка (2000 г.); SOS(); // Все светодиоды включаются и выключаются 10 раз По одному(); // светодиоды светятся по одному от 0 до 7 задержка (2000 г. ); } // Функция определена ниже- void shiftWrite(int Pin, boolean State) // Функция аналогична digitalWrite { // State-0/1 | Пин - № Пин. битЗапись (Данные, Пин, Состояние); // Установка Pin(Bit) 0 или 1 shiftOut(DataPin, ClockPin, MSBFIRST, Data); // Данные на DataPin digitalWrite(Защелка, ВЫСОКИЙ); // Фиксация данных digitalWrite(Защелка, НИЗКИЙ); } void increment() //инкремент светодиодов начинается с 0–7 { инт № вывода = 0; интервал задержки = 100; for(PinNo = 0; PinNo < 8; PinNo++) { shiftWrite(PinNo, ВЫСОКИЙ); задержка(задержка); } for(PinNo = 7; PinNo >= 0; PinNo--) { shiftWrite(PinNo, LOW); задержка(задержка); } } void OneByOne() // Светодиоды загораются один за другим от 0 до 7 { инт № вывода = 0; интервал задержки = 100; for(PinNo = 0; PinNo < 8; PinNo++) { shiftWrite(PinNo, ВЫСОКИЙ); задержка(задержка); shiftWrite(PinNo, LOW); } for(PinNo = 7; PinNo >=0; PinNo--) { shiftWrite(PinNo, ВЫСОКИЙ); задержка(задержка); shiftWrite(PinNo, LOW); } } void AllHigh() // устанавливает все High { инт № вывода = 0; for(PinNo = 0; PinNo < 8; PinNo++) { shiftWrite(PinNo, ВЫСОКИЙ); } } void AllLow() // Устанавливает все низкие { инт № вывода = 0; for(PinNo = 0; PinNo < 8; PinNo++) { shiftWrite(PinNo, LOW); } } void SOS(){ // Все светодиоды включаются и выключаются 10 раз для (целое число х=0; х<10; х++){ ВсеВысокое(); задержка(100); ВсеНизкий(); задержка(100); } }5.