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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

В качестве примера заменим R1 на фоторезистор, а R2 возьмем постоянным с номиналом 10 кОм (рис. 3.11 ). Для данного упражнения можно оставить на плате RGB-светодиод и подключить его как одноцветный.

Загрузите программу считывания аналоговых данных и выдачи результата в последовательный порт ( см. листинг 3.1) и поменяйте освещенность фоторезистора. Вы не сможете получить весь диапазон значений от 0 до 1023, потому что у фоторезистора никогда не будет нулевого сопротивления. В результате вы определите минимальное и максимальное значения напряжения на выходе. Эти данные потребуются, чтобы сделать "интеллектуальный" ночник, который будет светить более ярко в темном помещении, и наоборот. Выберите аналоговые значения для вашей комнаты, соответствующие темноте и максимальной освещенности. У меня это бы

- 77 -

ли значения 200 (темнота) и 900 (максимальное освещение). У вас могут быть другие цифры. Они зависят от условий освещения, значения резистора R2 и характеристик фоторезистора.

Рис 311 Подключение фоторезистора 310 Управление аналоговыми выходами по - фото 30

Рис. 3.11. Подключение фоторезистора

3.10. Управление аналоговыми выходами по сигналу от аналоговых входов

Напомним, что функция analogWrite() позволяет изменять яркость светодиода. Но не забывайте, аргумент этой функции 8-разрядный, т. е. находится в диапазоне от 0 до 255, в то время как АЦП выдает значения от 0 до 1023. В языке программирова

- 78 -

ния Arduino есть удобные функции для пропорционального преобразования значений от одного диапазона к другому: map() и constrain(). Синтаксис функции map() выглядит следующим образом:

output = map(value, fromLow, fromHigh, toLow, toHigh).

Здесь value - преобразуемое значение (напряжение на аналоговом входе). fromLow и fromHigh - это нижняя и верхняя границы текущего диапазона. В нашем примере это минимальная и максимальная освещенность в помещении (200 и 900). toLow и toHigh - нижняя и верхняя границы нового диапазона. Аргумент функции analogWrite() должен быть в диапазоне от 0 до 255. Но мы хотим меньшей освещенности сопоставить большую яркость светодиода, т. е. минимальным значениям на аналоговом входе должны соответствовать максимальные значения на выводах светодиода. У доб но, что функция map() делает это автоматически. Функция map() осуществляет линейное отображение. Например, если fromLow и fromHigh равны 200 и 900, соответственно, а toLow и toHigh равны 255 и 0, то 550 превратится в 127, потому что 550 находится посередине между 200 и 900, а 127 посередине между 255 и 0. Следует учесть, что функция map() не ограничивает значения, если они выходят за границы диапазона. Если value окажется меньше 200 (для нашего примера), то output будет больше 255. Это неудобно, т. к. передать функции analogWrite() значение, превышающее 255, нельзя. Для ограничения значений есть Функция constrain(), синтаксис которой выглядит следующим образом:

output = constrain(value, min, max).

При передаче значения из функции map() в функцию constrain() можно установить аргумент min равным 0 и max - 255, тогда величины, выходящие за рамки этого диапазона, будут ограничены. Теперь все готово, чтобы написать программу управляемого ночника. Посмотрим, как будет выглядеть окончательно наш проект (листинг 3.3).

Листинг 3.3. Программа управляемого ночника - nightlight.ino

// Автоматический ночник

const int RLED=9; // Контакт 9 для ШИМ-вывода RED RGB-светодиода

const int LIGHT=0; // Контакт A0 для входа фоторезистора

const int MIN_LIGHT=200; // Нижний порог освещенности

const int MAX_LIGHT=900; // Верхний порог освещенности

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

void setup()

{

pinMode(RLED, OUTPUT); // Сконфигурировать RED-контакт светодиода как выход

}

- 79 -

void loop()

{

val = analogRead(LIGHT); // Чтение показаний фоторезистора

val = map(val, MIN_LIGHT, MAX_LIGHT, 255, 0); // вызов функции map()

val = constrain(val, 0, 255); // ограничение границ

analogWrite(RLED, val); // управление светодиодом

}

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

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

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

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

Интервал:

Закладка:

Сделать

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

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


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

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

x