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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Обратите внимание, что выводы SDA и SCL датчика подключены к контактам А4 и

AS платы. Напомним, что SDA и SCL - это линия передачи данных и линия синхронизации, соответственно. Контакты Arduino А4 и AS мультиплексируются между аналого-цифровым преобразователем (АЦП) и аппаратным интерфейсом I 2C.

При инициализации библиотеки Wire эти контакты подключены к контроллеру I 2C

в ATmega, обеспечивая взаимодействие объекта Wire с I 2C-устройствами. При этом

- 174 -

Рис 84 Схема подключения датчика температуры использовать А4 и AS как - фото 79

Рис. 8.4. Схема подключения датчика температуры использовать А4 и AS как аналоговые входы нельзя, потому что они заняты обменом с устройствами I 2C.

8.3.2. Анализ технического описания датчика

Теперь нужно написать программу, которая определяет действия Arduino для получения данных от I 2 С-датчика температуры. С помощью библиотеки Wire сделать это довольно легко. Чтобы не допустить ошибки, следует внимательно прочесть справочную информацию об алгоритме связи, который поддерживает именно этот чип. Давайте проанализируем протокол взаимодействия, представленный в таблицах и на графиках, показанных на рис. 8.5 и 8.6.

На рис. 8.6 показано, как осуществлять чтение и запись данных для датчика ТС74.

Микросхема имеет два регистра: в первом хранится значение текущей температуры

- 175 -

рис 85 Протокол обмена датчика ТС74 в градусах Цельсия во втором - фото 80

рис. 8.5. Протокол обмена датчика ТС74

в градусах Цельсия, во втором - информация о конфигурации чипа (включая режим ожидания и режим передачи данных). Это ясно из табл. 4.1 на рис. 8.6. Нет необходимости вникать в юоансы конфигурации, требуется только получить значение температуры от устройства. В табл. 4.3 и 4.4 на рис. 8.6 показано, как хранится информация о температуре внутри 8-разрядного регистра.

В секции Write Byte fonnat на рис. 8.5 показано, как прочитать значение температуры из ТС74:

• послать адрес устройства в режиме записи и выставить 0, чтобы указать, что нужно перейти в режим чтения из регистра данных;

• отправить на адрес устройства команду запроса (1 байт) на чтение информации от устройства;

• подождать прихода всех 8 битов информации о значении температуры.

Теперь становится понятно, как работать с подобными I 2C-устройствами. Если вы еще не все уяснили, поищите в Интернете примеры программ подключения 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 должна выдавать температуру в градусах Цельсия и Фаренгейта. Заменяя пробелы и символы возврата каретки запятыми и точками, можно отображать данные в виде, удобном для анализа.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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