Добавил:
МТУСИ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическая работа 3 / ПР3_Мягков_БАП2201.docx
Скачиваний:
4
Добавлен:
21.04.2026
Размер:
8.78 Mб
Скачать

2 Выполнение

    1. 2.1 Подключение стенда c Arduino Nano

На рисунке 12 представлен стенд, с которого будем опрашивать датчики движения и влажности.

Рисунок 12 – Стенд с Arduino Nano с датчиом движения (круглый шар)

и датчиком влажности (голубая подушечка)

В листинге 3 представлен код для опроса датчика движения на Arduino Uno. Предварительно установим библиотеку DHT sensor library, иначе будет ошибка, как на рисунке 13. На рисунках 14 и 15 представлены результаты выполнения программы из кода листинга 3.

Листинг 3 – Опрос датчика движения Arduino Nano

#define PIR_PIN 2 // Пин D2 для сигнала с датчика

void setup() {

 pinMode(PIR_PIN, INPUT); // Устанавливаем пин как вход

 Serial.begin(9600);    // Инициализация монитора порта

 Serial.println("Датчик готов к работе...");

}

void loop() {

 // Читаем цифровое значение: HIGH (движение есть) или LOW (нет)

 int motion = digitalRead(PIR_PIN);

 if (motion == HIGH) {

  Serial.println("Движение обнаружено!");

  // Добавьте задержку, чтобы избежать многократных сообщений

  delay(1000);

 } else {

  // В покое датчик выдает LOW

 }

}

Рисунок 13 – Ошибка отсутствия библиотеки DHT sensor library

Рисунок 14 – Обнаружение движения с датчика движения Arduino Nano

в serial monitor Arduino IDE

Рисунок 15 – Обнаружение движения с датчика движения Arduino Nano при подёргивании рукой

В листинге 4 представлен кол для снятия показаний с датчика влажности. На рисунке 16 показан съём значений с датчика влажности.

Листинг 4 – Программирование датчика влажности и температуры

DHT11 Arduino Nano

#include "DHT.h" // Исправлено: include через 'l'

#define DHTPIN 4 // Пин D4, как вы указали

#define DHTTYPE DHT11 // Тип датчика

DHT dht(DHTPIN, DHTTYPE); // Инициализация

void setup() {

Serial.begin(9600); // Исправлено: Serial через 'l'

Serial.println("DHT11 Test Start");

dht.begin(); // Запуск датчика

}

void loop() {

// Задержка 2 секунды (DHT11 медленный, 250мс для него мало)

delay(2000);

float h = dht.readHumidity();

float t = dht.readTemperature(); // Исправлено: добавлен dht.

// Проверка, удалось ли считать данные

if (isnan(h) || isnan(t)) {

Serial.println("Failed to read from DHT sensor!");

return;

}

Serial.print("Humidity: ");

Serial.print(h);

Serial.print(" %\t"); // Исправлено: \t для табуляции

Serial.print("Temperature: ");

Serial.print(t);

Serial.println(" *C");

}

Рисунок 16 – Считывание влажности и температуры с датчика DHT11

Arduino Nano в serial monitor Arduino IDE

Соседние файлы в папке Практическая работа 3