Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование микроконтроллера Arduino в информационно-управляющих системах. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Результат работы скетча:
1. Старт игры. Подсвечивание светодиода – индикатора таймера.
2. Ожидание случайного промежутка времени от 5 до 15 секунд.
3. Звуковой сигнал. Отключение светодиода – индикатора таймера.
4. Считывание нажатия кнопки.
5. Звуковой сигнал.
6. Определение победителя и подсвечивание соответствующего светодиода.
7. Ожидание перезапуска игры (уход в бесконечный цикл while(1);
5.10.3 Практическое задание
Соберите игру «Кто быстрее» и расширьте ее функционал указанным
способом.
Вариант 1: Сделайте вариант игры для 4 игроков. При необходимости,
используйте вторую макетную плату из другого комплекта «Матрешка Z».
Вариант 2: Подключите LCD дисплей. Выводе на дисплей имя победителя. Вариант 3: В программе примера есть «баг» - если кнопка будет нажата до
звукового сигнала, игрок заведомо победит. Исправьте этот недочет в коде
программы любым из способов.
91
6. Специализированные лабораторные работы
6.1 Лабораторная работа №11 «Датчик концентрации горючих и угарного
газов MQ9. Автономная сигнализация»
Цель работы: научиться работать с датчиком угарного газа, метана,
природного газа, сжиженного углеводородного газа (LPG), изобутана и (n)бутана.
6.1.1 Краткие теоретические сведения
Универсальный датчик MQ-9 (рисунок 45) определяет концентрацию
угарного газа, а также горючих газов, таких, как метан, природный газ, сжиженный
углеводородный газ (LPG), изобутан и (n)бутан. Его сфера применения очень
широка. На базе Arduino возможно, например, собрать автономную сигнализацию
для определения утечки одного из вышеперечисленных веществ, что и будет
рассмотрено в данной лабораторной работе.
Рисунок 45 – Датчик газа MQ9 компании «Амперка» [2]
Датчик построен на базе полупроводникового газоанализатора MQ-9. На
логический выход датчик выдает аналоговый сигнал, пропорциональный
содержанию определенного газа в окружающей среде. В газоанализатор встроен
нагревательный элемент, который необходим для химической реакции.
Предусмотрена возможность контроля нагревательного элемента сенсора через
отдельную группу контактов. Также возможно программно включать и выключать
нагреватель, что значительно продлит время автономной работы устройства.
В общем случае датчик подключается двумя трехпроводными шлейфами. По
первому осуществляется питание датчика и снятие показаний сенсора, по второму -
подается напряжение на нагревательный элемент сенсора. Если нет необходимости
в ручном управлении нагревателем, можно оставьте только первый шлейф, а
питание на нагреватель подавать отдельно или с помощью другого источника
питания.
Диапазон измерений:
угарный газ: 20–2000 ppm; метан: 500–10000 ppm; сжиженные углеводородные газы: 500–10000 ppm;
Характеристики:
напряжение питания нагревателя: 5 В; напряжение питания датчика: 3,3–5 В; потребляемый ток: 150 мА; габариты: 25,4×25,4 мм [2].
Для работы с датчиком необходима специальная библиотека,
предоставляемая производителем и доступная по ссылке:
https://github.com/amperka/TroykaMQ
Датчик совместим с макетной платой. Схема расположения контактов на
датчике приведена на рисунке 46.
93
Рисунок 46 – схема расположения контактов на датчике MQ9 [2]
Контакты подключения шлейфов:
1 группа:
1. Сигнальный (S) — Выходной сигнал сенсора. Подключается к
аналоговому пину микроконтроллера.
2. Питание (V) — Питание датчика. Подключается к пину +5В.
3. Земля (G) — Подключается к пину GND.
2 группа:
1. Сигнальный (E) — Управление питанием нагревателя. Подключается к
цифровому пину платы Arduino.
2. Питание (H) — Питание нагревателя. Подключается к пину +5В.
3. Земля (G) — Подключается к пину GND. [2]
6.1.2 Пример
Подключите контакты датчика MQ9 к плате Arduino: контакты V и H к пину
+5В, контакты G – к пину GND, контакт S – к пину А0, контакт E – к пину 11.
94
Код скетча:
// подключение библиотеки от компании Амперка для работы с датчиком #include <TroykaMQ.h> // пин, к которому подключен датчик #define PIN_MQ9 A0
// пин, к которому подключен нагреватель датчика #define PIN_MQ9_HEATER 11
// создание объекта для работы с датчиком // и указание номера пина выходного сигнала и нагревателя
MQ9 mq9(PIN_MQ9, PIN_MQ9_HEATER); void setup() { // открываем последовательный порт (см. соответствующий раздел
краткого справочника языка Wiring и предыдущие лабораторные работы для повторения знаний о последовательные передачи данных в Arduino)
Serial.begin(9600); // запускаем цикл // в течении 60 секунд на нагревательный элемент подаётся 5 вольт // в течении 90 секунд — 1,5 вольта mq9.cycleHeat(); } void loop() { // когда датчик нагрелся, но еще не откалиброван if (!mq9.isCalibrated() && mq9.atHeatCycleEnd()) { // выполняем калибровку датчика на чистом воздухе mq9.calibrate(); // выводим сопротивление датчика в чистом воздухе (Ro) в serial-порт Serial.print("Ro = ");
95
Serial.println(mq9.getRo()); // запускаем цикл mq9.cycleHeat(); } // если датчик нагрелся и калибровка была совершена успешно if (mq9.isCalibrated() && mq9.atHeatCycleEnd()) { // выводим отношения текущего сопротивление датчика // к сопротивлению датчика в чистом воздухе (Rs/Ro) Serial.print("Ratio: "); Serial.print(mq9.readRatio()); // выводим значения газов в ppm Serial.print(" LPG: "); Serial.print(mq9.readLPG()); Serial.print(" ppm "); Serial.print(" Methane: "); Serial.print(mq9.readMethane()); Serial.print(" ppm "); Serial.print(" CarbonMonoxide: "); Serial.print(mq9.readCarbonMonoxide()); Serial.println(" ppm "); delay(100); // запускаем цикл mq9.cycleHeat(); } }
6.1.3 Практическое задание
Соберите электрическую схему с датчиком MQ9.
96
Вариант 1: К плате подключается пьезо-динамик. Задайте небольшое
пороговое значение для угарного газа. При достижении этого значения срабатывает
звуковой сигнал. Сделайте вашу сигнализацию автономной: используйте батарейку
Крона и наклемники для питания устройства.
Вариант 2: К плате подключается LCD дисплей. На экран выводится
информация о процентном содержании горючих и угарного газов в воздухе.
Сделайте вашу сигнализацию автономной: используйте батарейку Крона и
наклемники для питания устройства.
6.2 Лабораторная работа №12 «Датчик уровня шума. Шумомер на базе
Arduino»
Цель работы: научиться работать с датчиком уровня шума. Сделать
простейший шумомер на базе Arduino.
6.2.1 Краткие теоретические сведения
Датчик шума (рисукок 47) от компании Амперка возвращает аналоговый
сигнал в диапазоне 0-1023 (0–5 В). Выходное напряжение пропорционально средней
шумности за последние несколько сотен миллисекунд. Для регулировки
чувствительности на датчике предусмотрен триммер.
97
Рисунок 7 – Датчик шума компании «Амперка» [2]
Контакты датчика подключаются следующим образом (рисунок 48):
1. Vсс питание. Подключается к пину +5В.
2. Земля (GND). Подключается к пину GND.
3. Сигнальный (S). Подключается к аналоговому пину платы.
Рисунок 48 – схема расположения контактов на датчике шума [2]
98
6.2.2 Пример
Датчик подключен к плате Arduino. Пин Vcc – к пину +5в, пин датчика GND –
к пину Arduino GND, пин S – к аналоговому пину А5.
Код скетча:
#define LED_PIN 13 // Встроенный светодиод Arduino #define LOUDNESS_SENSOR_PIN A5 // Датчик шума подключается к пину А5 #define TRESHOLD 400 // Установка порога срабатывания
void setup() { pinMode(LED_PIN, OUTPUT); }
void loop() { // Считаем текущий уровень шума int loudness = analogRead(LOUDNESS_SENSOR_PIN); // Если громкость выше пороговой.. if (loudness > TRESHOLD) // включаем светодиод, digitalWrite(LED_PIN, HIGH); else // если нет - погасим digitalWrite(LED_PIN, LOW); }
6.2.3 Практическое задание
Соберите электрическую схему с датчиком шума.
99
Вариант 1: Используйте 3 светодиода для обозначения 3 порогов уровня
шума. Когда уровень шума поднимается выше очередного порога, загорается
дополнительный светодиод (1 светодиод – низкий уровень шума, 2 – средний, 3 – высокий).
Вариант 2: К плате подключается LCD дисплей. На экран выводится
информация о текущем уровне шума. Используйте батарейку Крона и наклемники,
чтобы сделать устройство автономным.
6.3 Лабораторная работа №13 «Датчик водорода MQ8. Прибор
измерения содержания водорода в воздухе с аналоговым указателем»
Цель работы: научиться работать с датчиком водорода, использовать
механику (сервопривод) для наглядного представления информации.
6.3.1 Краткие теоретические сведения
Датчик водорода компании Амперка (рисунок 49) построен на базе
полупроводникового газоанализатора MQ-8. Устройство возвращает выдаёт
аналоговый сигнал, пропорциональный содержанию водорода. В газоанализатор
встроен нагревательный элемент, который необходим для химической реакции.
Предусмотрена возможность контроля нагревательного элемента сенсора через
отдельную группу контактов.
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]