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

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

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

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

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

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

Интервал:

Закладка:

Сделать
Рис 31 Аналоговые и цифровые сигналы Компьютерная система никогда не может - фото 21

Рис. 3.1. Аналоговые и цифровые сигналы

Компьютерная система никогда не может оперировать с бесконечным числом десятичных разрядов для аналогового значения, потому что объем памяти и производительность компьютера ограничены. Как же тогда соединить интерфейс цифрового контроллера Arduino с аналоговым реальным миром? Это делает аналого-цифровой преобразователь (АЦП), который преобразует аналоговые значения в цифровые с заданной точностью.

3.3. Преобразование аналогового сигнала в цифровой

Предположим, что вы хотите измерить освещенность в своей комнате. Хороший светочувствительный датчик выдает выходное напряжение, которое зависит от освещенности комнаты. Когда в помещении абсолютно темно, устройство выдало бы 0 В, а при максимальной освещенности - 5 В. Промежуточные значения соответствуют средним освещенностям. Но как эти значения считает плата Arduino, чтобы узнать, насколько светло в комнате? Преобразовать аналоговые значения напряжения в числа, которые может обрабатывать контроллер, позволяет аналого-цифровой преобразователь Arduino.

- 66 -

Точность АЦП зависит от его разрядности. На плате Arduino Uno установлен 10-разрядный АЦП. Это означает, что АЦП может разделить аналоговый сигнал на 2 10различных значений. Следовательно, Arduino может присвоить 2 10= 1024 аналоговых значений, от 0 до 1023.

Опорное напряжение определяет максимальное напряжение на входе АЦП, его значение соответствует коду 1023. При нулевом входном напряжении АЦП выдает на выходе 0, при входном напряжении 2,5 В на выходе будет значение 512 (половина от 1023), при входном напряжении 5 В выходной код равен 1023. Чтобы лучше понять это, посмотрите на графики для трех.разрядного АЦП, изображенные на рис. 3.2. В принципе, опорное напряжение АЦП можно изменить, но в наших устройствах опорным будет напряжение 5 В.

Рис 32 Трехразрядное аналогоцифровое преобразование У трехразрядного АЦП 3 - фото 22

Рис. 3.2. Трехразрядное аналого-цифровое преобразование

У трех.разрядного АЦП 3 бита разрешения, поскольку 2 3= 8, следовательно, у него есть 8 уровней, от 0 до 7. Любому аналоговому значению, которое поступает на вход такого АЦП, на выходе соответствует код от 0 до 7. На рис. 3.2 показано, что уровни входного напряжения преобразуются в выходные дискретные цифровые коды, с которыми может оперировать микроконтроллер. Чем выше разрядность, тем больше уровней, которые доступны для представления каждого значения. Как упоминалось, у Arduino Uno АЦП имеет 1024 уровней, а не 8, как на рис. 3.2.

ПРИМЕЧАНИЕ

Если вы хотите узнать больше об использовании нестандартного (или внешнего) опорного напряжения, посетите страницу на официальном сайте Arduino

http://www.arduino.cc/en/Reference/AnalogReference.

- 67 -

3.4. Считывание аналоговых датчиков с помощью Arduino. Команда analogRead()

Теперь, когда вы понимаете, как преобразовать аналоговые сигналы в цифровые коды, можно начать писать программы и разрабатывать схемы. У различных плат Arduino разное число аналоговых контактов. Для чтения аналоговых значений предусмотрена функция analogRead().

Мы начнем с простых экспериментов с потенциометром и аналоговым датчиком.

Затем вы узнаете, как работают делители напряжения и как можно сделать свои собственные аналоговые датчики из компонентов, сопротивление которых зависит от каких-нибудь внешних факторов.

3.5. Чтение данных с потенциометра

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

Подключите один крайний вывод потенциометра к земле, а другой к шине 5 В. Потенциометры симметричны, так что не имеет значения, с какой стороны вы подключите шину питания, а с какой землю. Средний вывод соедините с аналоговым контактом 0 на плате Arduino. Как правильно подключить потенциометр к Arduino, показано на рис. 3.3. При повороте ручки потенциометра аналоговый входной сигнал будет плавно меняться от 0 до 5 В. В этом можно убедиться с помощью мультиметра. Переведите мультиметр в режим измерения напряжения, подсоедините его, как показано на рис. 3.4, и следите за показаниями, поворачивая ручку потенциометра. Красный (положительный) щуп мультиметра должен быть подключен к среднему контакту потенциометра, а черный ( отрицательный) щуп к земле.

ПРИМЕЧАНИЕ

Потенциометр и мультиметр внешне могут выглядеть не так, как показано на рис. 3.4.

Прежде чем использовать потенциометр для управления другим оборудованием, посмотрим, как считать значение сопротивления потенциометра с помощью АЦП и передать через последовательный порт Arduino для просмотра значений на компьютере. Для чтения значения аналогового входа предусмотрена функция analogRead(), для вывода значений в последовательный порт Arduino IDE - функция serial.pritln(). Наберите и загрузите в плату Arduino программу из листинга 3.1.68

Рис 33 Подключение потенциометра Рис 34 Измерение напряжения с помощью - фото 23

Рис. 3.3. Подключение потенциометра

Рис. 3.4. Измерение напряжения с помощью мультиметра

- 69 -

Листинг 3.1. Программа чтения данных потенциометра - pot.ino

// Программа чтения данных с потенциометра

const int POT=0; // Аналоговый вход 0 для подключения потенциометра

int val = 0; // Переменная для хранения значения потенциометра

void setup()

{

Serial.begin(9600);

}

void loop()

{

val = analogRead(POT);

Serial.println(val);

delay(500);

}

Подробно функционирование последовательного интерфейса обмена данными мы рассмотрим в последующих главах. А сейчас достаточно знать, что сначала необходимо иициировать последовательное соединение, вызвав функцию Serial.begin(), единственный аргумент которой задает скорость передачи данных в бодах. Скорость передачи данных определяет количество битов, передаваемых в секунду. Высокая скорость передачи позволяет передавать больше данных за меньшее время, но может привести к ошибкам в некоторых системах связи. В наших примерах выбрана скорость 9600 бод.

В каждой итерации цикла переменная val получает аналоговое значение, считанное командой analogRead() с входа, соединенного со средним контактом потенциометра (в нашем случае это вход A0). Далее это значение функция serial.println() выводит в последовательный порт, соединенный с компьютером. Затем следует задержка в полсекунды (чтобы числа выводились не быстрее, чем вы можете их прочитать).

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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