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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

current = digitalRead(pin);

}

return current;

}

В основном цикле программы loop() проверяем состояние кнопок, устраняем дребезг, изменяем при нажатии кнопки значение переменной пороговой температуры set_temp и обновляем значение на экране ЖК-дисплея (листинг 10.6).

Листинг 10.6. Программа установки пороговой температуры с помощью двух кнопок

// Устранение дребезга нескольких кнопок

currentDownTempButton = debounce(lastDownTempButton, DOWN_BUTTON);

currentUpTempButton = debounce(lastUpTempButton, UP_BUTTON);

// Уменьшить значение set_temp

if (lastDownTempButton == LOW && currentDownTempButton == HIGH)

{

set_temp--;

}

- 216 -

// Увеличить значение set_temp

else if (lastUpTempButton == LOW && currentUpTempButton == HIGH)

{

set_temp++;

}

// Вывести значение set_temp на ЖК-дисплей

lcd.setCursor(8,1);

lcd.print(set_temp);

// Изменить последние значения статуса кнопок

lastDownTempButton = currentDownTempButton;

lastUpTempButton = currentUpTempButton;

В листинге 10.6 запускаем функцию устранения дребезга debounce() для каждой кнопки, а затем изменяем переменную set_temp заданной пороговой температуры при нажатии одной из кнопок. Потом значение температуры обновляется на экране ЖК-дисплея.

10.5.4. Добавляем вентилятор и звуковое оповещение

Теперь добавим фрагмент кода для управления вентилятором и динамиком. Хотя ЖК-дисплей и так информирует нас обо всем, никогда не помешает дополнительное звуковое оповещение о событиях. Например, подача звукового сигнала перед включением вентилятора. В этом примере мы используем команды tone() в паре с задержкой delay() и notone(). Чтобы задать длительность звука, можно указать второй аргумент команды tone(). Добавив переменную состояния, можно устанавливать звуковое оповещение динамиком только один раз при превышении порогового значения температуры.

Фрагмент кода, приведенный в листинге 10.7, проверяет температуру и управляет динамиком, вентилятором и индикатором вентилятора на ЖК-дисплее.

Листинг 10.7. Выдача звукового оповещения при превышении пороговой температуры

// Стало жарко!

if (с>= set_temp)

// Издать звук динамиком

if ( !one_time)

{

tone(SPEAKER, 400);

delay(500);

one time = true;

}

- 217 -

// Выключить динамик

else

{

noTone (SPEAKER);

}

// Включить вентилятор и знак на ЖК-дисплее

digitalWrite(FAN, HIGH);

lcd.setCursor(15,1);

lcd.write(2);

}

// Стало прохладнее

else

{

// Выключить динамик

// Сбросить состояние one time в false

// Выключить вентилятор и значок на ЖК-дисплее

noTone(SPEAKER);

one time = false;

digitalWrite(FAN, LOW);

lcd.setCursor(15,1);

lcd.write(1);

}

Переменная one_time позволяет выдать однократный, а не непрерывный звуковой сигнал. После того как динамик издает звук длительностью 500 мс частотой 400 Гц, переменная устанавливается в true и сбрасывается в false только тогда, когда температура падает обратно ниже заданного порога.

10.5.5. Итог всего: полная программа

Теперь соберем части в единое целое. В начале программы необходимо подключить библиотеки, определить флажки и инициализировать переменные состояния.

Полный текст программы приведен в листинге 10.8. Загрузите ее на плату Arduino и сравните результаты с видеоклипом, демонстрирующим систему в действии.

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

// Это программа автоматического регулятора температуры

// Для вывода температуры используются 2 знака

// Использует библиотеку Wire с установкой адреса

#include

#define TEMP ADDR 72

// Подключение и инициализация библиотеки LiquidCrystal:

#include

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

- 218 -

// Пользовательский символ градуса

byte degree[8] = {

В00110,

В01001,

В01001,

В00110,

B00000, B00000, B00000, B00000,

};

// Пользовательский символ "вентилятор включен"

byte fan_on[8] = {

800100,

810101,

B01110,

B11111,

В01110,

B10101,

B00100,

B00000,

};

// Пользовательский символ "вентилятор выключен"

byte fan_off[8] = {

В00100,

B00100,

B00100,

B11111,

B00100,

B00100,

B00100,

B00000,

};

// Выводы подключения динамика, кнопок, вентилятора

const int SPEAKER=8;

const int DOWN_BUTTON =9;

const int UP_BUTTON =10;

const int FAN =11;

// Переменные для устранения дребезга кнопок

boolean lastDownTempButton = LOW;

boolean currentDownTempButton = LOW;

boolean lastUpTempButton = LOW;

boolean currentUpTempButton = LOW;

int set_temp = 23; // Значение граничной температуры

boolean one time = false; // Флаг звука динамика

- 219 -

void setup()

{

pinMode(FAN, OUTPUT);

// Создание объекта Wire (I 2С-датчик температуры)

Wire.begin();

// Настройки дисплея (число столбцов и строк)

lcd.begin(16, 2);

// Определить пользовательские символы

lcd.createChar(0, degree);

lcd.createChar(1, fan_off);

lcd.createChar(2, fan_on);

// Вывод закрепленных сообщений на дисплее

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

Интервал:

Закладка:

Сделать

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

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


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

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

x