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

Обратите внимание, что вместо простого оператора else применен оператор else if. Это необходимо, потому что в опции терминала установлена отправка символа перевода строки при каждой передаче. Получив символ перевода строки, функция Serial.read() определит, что он не равен '0' или '1', в результате со светодиодом ничего не произойдет. Если бы мы использовали оператор else, то отправка и '0' и '1' приводила бы к откточению светодиода. При отправке '1' светодиод будет включен и немедленно выкточен снова, когда будет получена последовательность \n!

Отправка последовательности цифр для управления RGB-светодиодом

Отправка одного управляющего символа позволяет управлять единственным цифровым контактом, но что делать, если требуются более сложные алгоритмы управления? В этом разделе мы рассмотрим передачу нескольких групп цифр, разделеых запятой, для управления множеством устройств. Чтобы разобраться в этой задаче, соберем схему подключения RGB-светодиода с общим катодом, как показано на рис. 6.11.

Для управления RGB-светодиодом мы посылаем три отдельные 8-битовые значения (0-255), чтобы задать яркость каждого цвета. Например, чтобы установить максимальную яркость всех цветов, нужно послать "255,255,255". Перечислим проблемы, возникающие при реализации данной задачи:

- 134 -


• необходимо различать цифры и запятые;

• последовательность символов нужно привести к целочисленному формату, чтобы использовать функцию analogWrite();

• числовое значение может состоять из одной, двух или трех цифр.

К счастью, в Arduino IDE есть очень удобная функция для анализа последовательности цифр - Serial. parseInt(). При каждом вызове этой функции она ожидает прихода в буфер последовательности цифр и затем преобразует ее в целое число.

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

Чтобы посмотреть, как действует эта функция, загрузите программу листинга 6.5

на плату Arduino.

Рис. 6.11. Подключение RGB-светодиода к Arduino

- 135 -

Листинг 6.5. Последовательное управление RGB-светодиодом - list_control.ino

// Отправка многосимвольных значений

// Константы выводов RGB-светодиода

const int RED =11;

const int GREEN =10;

const int BLUE =9;

// Переменные значений выводов RGB

int rval = 0;

int gval = 0;

int bval = 0;


void setup()

{

Serial.begin(9600); // Инициализация последовательного порта

// на скорости 9600

// Установить контакты на выход OUT

pinMode(RED, OUTPUT);

pinMode(GREEN, OUTPUT);

pinMode(BLUE, OUTPUT);

}


void loop()

{

// Пока в буфере есть данные

while (Serial.available() > 0)

{

rval = Serial.parseInt(); // Первое ЧИСЛО

gval = Serial.parseInt(); // Второе число

bval = Serial.parseInt(); // Третье число

if (Serial. read() == '\n') // Конец передачи

{

// Установка яркости светодиода

analogWrite(RED, rval);

analogWrite(GREEN, gval);

analogWrite(BLUE, bval);

}

}

}

Программа осуществляет поиск трех целочисленных значений, пока не обнаружит символ перевода строки (\n). Как только это произойдет, полученные значения переменных используются для установки яркости светодиодов. Откройте монитор последовательного порта и введите три значения от 0 до 255, разделенные запятой, например "200,30, 180". Попробуйте получить различные цвета, вводя разные цифры.

- 136 -

6.7. Создаем компьютерное приложение


В конце концов, вам надоест "общение" с платой Arduino через монитор последовательного порта Arduino IDE. Гораздо удобнее работать с приложением, написанным на каком-либо языке программирования, имеющем библиотеки для обмена по последовательному порту. Вы можете использовать ваш любимый язык программирования для написания программы, которая посылает последовательные команды к плате Arduino и получает данные, передаваемые от Arduino к компьютеру.

В этой книге выбран язык программирования Processing, потому что он очень похож на язык Arduino, с которым вы уже знакомы. На самом деле, язык программирования Arduino основан на Processing! Другие популярные языки программирования, для которых существуют обширные библиотеки для работы с последовательным портом, - Python, РНР, Visual Basic, С и т. п. Сначала выясним, как читать передаваемые последовательные данные в Processing, а затем узнаем, как с его помощью создать простой графический интерфейс пользователя (GUI) для отправки команд на плату Arduino.

6.7.1. Интерфейс Processing

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

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

6.7.2. Установка Processing

Перейти на страницу:

Похожие книги

Самоучитель UML
Самоучитель UML

Самоучитель UMLПервое издание.В книге рассматриваются основы UML – унифицированного языка моделирования для описания, визуализации и документирования объектно-ориентированных систем и бизнес-процессов в ходе разработки программных приложений. Подробно описываются базовые понятия UML, необходимые для построения объектно-ориентированной модели системы с использованием графической нотации. Изложение сопровождается примерами разработки отдельных диаграмм, которые необходимы для представления информационной модели системы. Цель книги – помочь программистам освоить новую методологию разработки корпоративных программных приложений для последующего применения полученных знаний с использованием соответствующих CASE-инструментов.

Александр Васильевич Леоненков , Александр Леоненков

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Прочая компьютерная литература / Книги по IT
Основы информатики: Учебник для вузов
Основы информатики: Учебник для вузов

Учебник состоит из двух разделов: теоретического и практического. В теоретической части учебника изложены основы современной информатики как комплексной научно-технической дисциплины, включающей изучение структуры и общих свойств информации и информационных процессов, общих принципов построения вычислительных устройств, рассмотрены вопросы организации и функционирования информационно-вычислительных сетей, компьютерной безопасности, представлены ключевые понятия алгоритмизации и программирования, баз данных и СУБД. Для контроля полученных теоретических знаний предлагаются вопросы для самопроверки и тесты. Практическая часть освещает алгоритмы основных действий при работе с текстовым процессором Microsoft Word, табличным редактором Microsoft Excel, программой для создания презентаций Microsoft Power Point, программами-архиваторами и антивирусными программами. В качестве закрепления пройденного практического курса в конце каждого раздела предлагается выполнить самостоятельную работу.

Вадим Васильевич Лысенко , Лариса Александровна Малинина , Максим Анатольевич Беляев

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
Внутреннее устройство Microsoft Windows (гл. 1-4)
Внутреннее устройство Microsoft Windows (гл. 1-4)

Книга посвящена внутреннему устройству и алгоритмам работы основных компонентов операционной системы Microsoft Windows — Windows Server 2003, Windows XP и Windows 2000 — и файловой системы NTFS. Детально рассмотрены системные механизмы: диспетчеризация ловушек и прерываний, DPC, APC, LPC, RPC, синхронизация, системные рабочие потоки, глобальные флаги и др. Также описываются все этапы загрузки операционной системы и завершения ее работы. B четвертом издании книги больше внимания уделяется глубокому анализу и устранению проблем, из-за которых происходит крах операционной системы или из-за которых ее не удается загрузить. Кроме того, рассматриваются детали реализации поддержки аппаратных платформ AMD x64 и Intel IA64. Книга состоит из 14 глав, словаря терминов и предметного указателя. Книга предназначена системным администраторам, разработчикам серьезных приложений и всем, кто хочет понять, как устроена операционная система Windows.Названия всех команд, диалоговых окон и других интерфейсных элементов операционной системы приведены как на английском языке, так и на русском.Версия Fb2 редакции — 1.5. Об ошибках просьба сообщать по адресу — general2008@ukr.net.

Дэвид Соломон , Марк Руссинович

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT