Джереми Блум - Изучаем Arduino: инструметы и методы технического волшебства

Тут можно читать онлайн Джереми Блум - Изучаем Arduino: инструметы и методы технического волшебства - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая околокомпьтерная литература, издательство БХВ-Петербург, год 2015. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Джереми Блум - Изучаем Arduino: инструметы и методы технического волшебства краткое содержание

Изучаем Arduino: инструметы и методы технического волшебства - описание и краткое содержание, автор Джереми Блум, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Книга посвящена проектированию электронных устройств на основе микроконтроллерной платформы Arduino. Приведены основные сведения об аппаратном и программном обеспечении Arduino. Изложены принципы программирования в интегрированной среде Arduino IDE. Показано, как анализировать электрические схемы, читать технические описания, выбирать подходящие детали для собственных проектов. Приведены примеры использования и описание различных датчиков, электродвигателей, сервоприводов, индикаторов, проводных и беспроводных интерфейсов передачи данных. В каждой главе перечислены используемые комплектующие, приведены монтажные схемы, подробно описаны листинги программ. Имеются ссылки на сайт информационной поддержки книги. Материал ориентирован на применение несложных и недорогих комплектующих для экспериментов в домашних условиях.
Для радиолюбителей

Изучаем Arduino: инструметы и методы технического волшебства - читать онлайн бесплатно полную версию (весь текст целиком)

Изучаем Arduino: инструметы и методы технического волшебства - читать книгу онлайн бесплатно, автор Джереми Блум
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Предположим, вы хотите включить некоторые из светодиодов, подключенных к параллельным выходам сдвигового регистра, например к выходам QA, QC, QE, QG. В двоичном представлении на параллельных выходах должно быть значение 10101010. Теперь посмотрим, как действует регистр. Установим низкий уровень на входе LATCH, чтобы значения на параллельных выходах не изменялись во время загрузки новых данных в ячейки регистра. Затем, подавая импульсы на вход CLOCK, значения на входе DATA загружаем и сдвигаем по ячейкам. После загрузки в регистр всей последовательности данных, устанавливаем на входе LATCH высокий уровень для вывода значений из ячеек на параллельные выходы.

- 157 -

Рис 73 Перемещение данных по сдвиговому регистру 158 733 Передача - фото 71

Рис. 7.3. Перемещение данных по сдвиговому регистру

- 158 -

7.3.3. Передача данных из Arduino

в сдвиговый регистр

Теперь можно написать программу для передачи данных из Arduino в сдвиговые регистры. Воспользуемся встроенной в Arduino IDE функцией shiftOut() для поразрядной выдачи данных на контакт платы Arduino. Эта функция принимает четыре аргумента:

• номер контакта DATA;

• номер контакта CLOCK;

• порядок выдачи битов;

• значение, выдаваемое на выход.

Например, если вы хотите зажечь светодиоды как в предыдущем примере, можно вызвать функцию shiftout() следующим образом:

shiftOut(DATA, CLOCK, MSBFIRST, 810101010);

Константы DATA и с1оск - номера контактов Arduino для передачи данных. Аргумент MSBFIRST показывает, что самый старший бит (крайний слева бит в двоичном числе) будет отправлен первым. Можно передавать данные с параметром LSBFIRST, который начнет передачу с младшего бита. Последний параметр - это передаваемые данные. Знак в перед числом указывает Arduino IDE, что данные представлены в двоичном виде.

Теперь соберем схему устройства. Подключим регистр сдвига к плате Arduino следующим образом: вывод DATA к контакту 8 платы, LATCH к контакту 9, CLOCK к контакту 10.

Не забывайте, что светодиоды нужно подключать через токоограничительные резисторы (220 Ом). При монтаже сверяйтесь с рис. 7.4.

Теперь, зная как работают сдвиговые регистры и используя встроенную в Arduino IDE функцию shiftOut(), мы можем написать программу управления светодиодами (листинг 7.1).

Листинг 7.1. Программа управления светодиодами с помощью сдвигового регистра - alternate.ino

const int SER=8; // Контакт для подключения вывода DATA

const int LATCH =9;// Контакт для подключения вывода LATCH

const int CLK =10; // Контакт для подключения вывода CLOCK

void setup()

{

// Установить контакты на вывод (OUTPUT}

pinMode(SER, OUTPUT);

pinMode(LATCH, OUTPUT);

pinMode(CLK, OUTPUT);

- 159 -

digitalWrite(LATCH, LOW);// LATCH - низкий

shiftOut(SER, CLK, MSBFIRST, 810101010); // Старший бит - первый

digitalWrite(LATCH, HIGH);// LATCH - высокий

}

void loop() {; }

Рис 74 Подключение 8 светодиодов к сдвиговому регистру Поскольку регистр - фото 72

Рис. 7.4. Подключение 8 светодиодов к сдвиговому регистру

Поскольку регистр сдвига фиксирует полученные данные, отправляем их только один раз в функции setup(). Полученные значения хранятся до следующего изменения. Эта программа выполняет те же шаги, что показаны на рис. 7.3. На выводе

- 160 -

LATCH устанавливается низкий уровень, восемь битов данных передаются функцией shiftOut() в ячейки, а затем на LATCH подается высокий уровень, чтобы вывести значения из ячеек на параллельные выходы регистра.

Как видим, нам удалось получить восемь цифровых выходов из трех портов ввода-вывода. Уже неплохо. Но что делать, если нужно еще больше? Это возможно! Последовательно подключая несколько сдвиговых регистров, теоретически можно добавить сотни цифровых выходов, задействуя только три контакта Arduino. Но в таком случае потребуется внешнее питание. Посмотрите на рис. 7.2, там есть неиспользованный контакт QH'. Когда значения смещаются по ячейкам, они на самом деле не отбрасываются, а поступают на вывод QH'. Подключив выход QH' к входу DA ТА другого сдвигового регистра, а также соединив выводы LATCH и CLOCK

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

Можете попробовать подключить еще один регистр сдвига и дважды вызвать функцию shiftout() (за один раз функция shiftOut() может обрабатывать только 8 разрядов данных).

7.3.4. Преобразование между двоичным и десятичным форматами

В листинге 7.1 данные для включения светодиодов передавались в виде двоичной строки. Это позволяет наглядно отобразить включенные и выключенные светодиоды. Тем не менее, данные можно записать в десятичном виде, преобразовав их из двоичного (base2) в десятичный (base 1 0) формат. Каждый разряд двоичного числа (начиная с младшего, самого правого) представляет следующую степень числа 2.

Преобразовать двоичное представление числа в десятичное очень просто. Рассмотрим этапы преобразования двоичного кода в десятичный (рис. 7.5).

Рис 75 Преобразование двоичного числа в десятичное Двоичное значение каждого - фото 73

Рис. 7.5. Преобразование двоичного числа в десятичное

Двоичное значение каждого бита представляет собой увеличивающуюся степень числа 2. В нашем случае биты 7, 5, 3, 1 установлены в единицу. Таким образом, чтобы найти десятичный эквивалент, вы складываете 2 7, 2 5, 2 3 и i. Полученное десятичное значение равно 170. Можно доказать, что это эквивалентно, подставив десятичное значение в код из листинга 7.1.

Замените строку с shiftout() на следющую:

shiftOut(DATA, CLOCK, MSBFIRST, 170);

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

-161 -

7.4. Создание световых эффектов с помощью СДВИГОВОГО регистра

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

7.4.1. Эффект "бегущий всадник"

"Бегущий всадник" - анимационный эффект, когда горящий светодиод сначала движется в одну сторону, а затем в обратную. Соберем схему из предыдущего примера. С помощью функции shiftout() можно очень быстро обновлять данные в ячейках сдвигового регистра, чтобы создавать динамичные световые анимации.

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

В программе передаем функции shiftout() десятичные значения комбинаций светодиодов. В цикле выбираем значение из массива и отправляем в сдвиговый регистр. Код программы приведен в листинге 7.2.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Джереми Блум читать все книги автора по порядку

Джереми Блум - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Изучаем Arduino: инструметы и методы технического волшебства отзывы


Отзывы читателей о книге Изучаем Arduino: инструметы и методы технического волшебства, автор: Джереми Блум. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x