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

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

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

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Изучаем Arduino: инструметы и методы технического волшебства»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

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

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

- 176 -

Рис 86 Страница из технического описания датчика ТС742 177 к различным - фото 81

Рис. 8.6. Страница из технического описания датчика ТС742

- 177 -

к различным устройствам I 2C. Далее перейдем к написанию программы, которая выполняет три действия, описанные ранее.

8.3.3. Написание программы

Как уже упоминалось, в Arduino есть библиотека Wire для связи устройств по протоколу I 2C. После подключения библиотеки можно читать данные из устройства и записывать данные в него. Загрузите код из листинга 8.1, который иллюстрирует преимущества функций, встроенных в библиотеку Wire.

Листинг 8.1. Чтение данных с I 2C-датчика температуры - read_temp.ino

// Чтение температуры из I 2C-датчика

// и вывод значений в последовательный порт

// Подключение библиотеки Wire

#include

int temp_address=72; // Запись адреса 1001000

void setup()

{

// Запуск последовательного порта

Serial.begin(9600);

// Создание объекта Wire

Wire.begin();

}

void loop()

{

// Отправка запроса

// Выбор устройства отправкой адреса устройства

Wire.beginTransmission(temp_address);

// Установка бита asking в 0 для чтения

Wire.write(0);

// Отправка стоп-бита

Wire.endTransmission();

// Чтение температуры из устройства

// Получить 1 байт по адресу устройства

Wire.requestFrom(temp_address, 1);

// Ожидание ответа

while(Wire.available() == 0);

// Чтение данных в переменную

int с = Wire.read();

// Перевод данных из шкалы Цельсия в шкалу Фаренгейта

int f = round(c*9.0/5.0 +32.0);

- 178 -

// Отправка значения в градусах Цельсия и Фаренгейта

// в последовательный порт

Serial.print(c);

Serial.print("C ");

Serial.print(f);

Serial.println("F");

delay(500);

}

Рассмотрим программу подробнее. Команда Wire.beginTransmission() начинает общение с ведомым устройством, отправляя адрес (уникальный идентификатор) устройства. Команда wire.write(0) отправляет "0", указывая, что вы хотите читать из регистра температуры. Затем передаем стоп-бит, вызывая функцию Wire.endTransmission(), чтобы указать окончание записи на устройство. Далее мастер получает информацию от ведомого устройства I 2C. Команда Wire.requestFrom() мастер запрашивает получение одного байта данных из I 2C-устройства. Команда Wire.available() будет блокировать выполнение остальной части кода, пока данные не станут доступны на линии I 2C. Наконец, 8-разрядное значение считывается в переменную командой Wire.read().

Программа из листинга 8.1 также преобразует температуру по Цельсию в градусы Фаренгейта. Формулу такого преобразования можно найти в Интернете. В нашем примере результат округлен до целого числа.

Теперь запустите код листинга 8.1 на плате Arduino и откройте монитор последовательного порта. Вы должны увидеть вывод данных в последовательный порт, который выглядит примерно так, как на рис. 8.7.

Рис 87 Отправка данных из I 2Cдатчика температуры в последовательный порт - фото 82

Рис. 8.7. Отправка данных из I 2C-датчика температуры в последовательный порт

- 179 -

8.4. Проект, объединяющий регистр сдвига, последовательный порт и шину I 2C

Теперь у нас есть простая схема, получающая данные от I 2C-устройства и выводящая результаты в последовательный порт, и можно сделать нечто более интересное. Подключив сдвиговый регистр ( см. главу 7), а также Processing-приложение, визуализируем температуру на экране компьютера.

8.4.1. Создание системы мониторинга температуры

Сначала соберем схему устройства (рис. 8.8). По существу нужно лишь добавить сдвиговый регистр к схеме, изображенной на рис. 8.4.

Рис 88 I 2Cдатчик температуры с гистограммным индикатором на основе - фото 83

Рис. 8.8. I 2C-датчик температуры с гистограммным индикатором на основе сдвигового регистра

- 180 -

8.4.2. Модификация кода программы

Чтобы упростить последовательную связь с Processing-приложением и реализовать функциональность сдвигового регистра, в листинг 8.1 нужно внести два изменения.

Во-первых, измените операторы вывода данных в последовательный порт следующим образом:

Serial.print(c);

Serial.print("C,");

Serial.print(f);

Serial.print("F.");

Программа на Processing должна выдавать температуру в градусах Цельсия и Фаренгейта. Заменяя пробелы и символы возврата каретки запятыми и точками, можно отображать данные в виде, удобном для анализа.

Во-вторых, нужно добавить фрагмент кода для работы со сдвиговым регистром ( см. главу 7) и изменить функцию map(), приводящую светодиодные значения к требуемому диапазону температур. Еще раз взгляните на листинг 7.3, откуда мы возьмем большую часть кода и внесем туда небольшие коррективы. Сначала уменьшим число элементов массива для отображения гистограммы с девяти до восьми. Это нужно, чтобы один светодиод показывал, что система работает (нулевой элемент исключаем из массива). Также следует изменить значение переменных для масштабирования, чтобы отобразить интересующий диапазон температур.

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

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Изучаем Arduino: инструметы и методы технического волшебства» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Изучаем Arduino: инструметы и методы технического волшебства» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x