Модуль 5 — Датчики и модули (курс для начинающих)
Цель модуля: познакомиться с популярными датчиками для Arduino, научиться читать документацию, подключать и считывать показания с датчиков температуры, освещённости и ультразвука. Создать проект «Умная лампа».
Примеры датчиков
- DHT11 — цифровой датчик температуры и влажности. Передаёт данные по однопроводному протоколу. Прост в использовании, но не отличается высокой точностью (±2°C, ±5% влажности).
- LDR (Light Dependent Resistor) — фоторезистор, изменяет сопротивление в зависимости от уровня освещённости. Используется для измерения света или автоматического управления освещением.
- HC-SR04 — ультразвуковой дальномер. Измеряет расстояние, излучая ультразвук и измеряя время отражения сигнала. Применяется в робототехнике, системах парковки и охранных устройствах.
Чтение документации
Перед подключением любого модуля или датчика важно изучить документацию:
- Параметры питания (рабочее напряжение, ток потребления).
- Интерфейс подключения (цифровой, аналоговый, I2C, SPI и др.).
- Распиновка (назначение каждого вывода).
- Пример кода из даташита или библиотеки.
Совет: ищите «Datasheet + название датчика» или используйте официальные страницы производителей.
Практика
Подключение DHT11 и чтение температуры
Что нужно: Arduino Uno/Nano, датчик DHT11, резистор 10 кОм, библиотека DHT.h.
Схема подключения:
- VCC → +5V
- GND → GND
- DATA → пин 2 Arduino
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
if (isnan(temp) || isnan(hum)) {
Serial.println("Ошибка чтения с датчика DHT11!");
return;
}
Serial.print("Температура: ");
Serial.print(temp);
Serial.print(" *C Влажность: ");
Serial.print(hum);
Serial.println(" %");
delay(2000);
}
Подключение LDR и измерение освещённости
Что нужно: Arduino Uno/Nano, LDR, резистор 10 кОм.
Схема подключения:
- Один вывод LDR → +5V
- Второй вывод LDR → A0 и через резистор 10 кОм на GND
const int ldrPin = A0;
void setup() {
Serial.begin(9600);
}
void loop() {
int lightValue = analogRead(ldrPin); // 0..1023
Serial.print("Освещённость: ");
Serial.println(lightValue);
delay(500);
}
Проект: «Умная лампа»
Задача: включать светодиод при низкой освещённости.
Что нужно: Arduino Uno/Nano, LDR, резистор 10 кОм, светодиод, резистор 220–330 Ом.
Схема подключения:
- LDR — как в предыдущем примере.
- Светодиод через резистор → пин 9 (PWM) и GND.
const int ldrPin = A0;
const int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
int lightValue = analogRead(ldrPin);
if (lightValue < 300) { // порог затемнения
analogWrite(ledPin, 255); // включить на полную яркость
} else {
analogWrite(ledPin, 0); // выключить
}
}
Типичные ошибки
- Отсутствие подтягивающего резистора у LDR — показания будут нестабильны.
- Неправильная распиновка DHT11 — данные не считываются.
- Слишком высокий порог освещённости — лампа включается днём.
Что дальше
В следующем модуле мы научимся подключать и использовать дисплеи для вывода информации с Arduino. Рассмотрим работу с LCD 1602 и OLED, использование библиотек Arduino, а также создадим проект «Термометр с экраном».
Контрольные вопросы
- Какие бывают типы датчиков и модулей для Arduino?
- Для чего нужно читать документацию перед подключением?
- Как подключить и считать данные с DHT11?
- Как использовать LDR для измерения освещённости?
- Как работает проект «Умная лампа»?
Авторский курс по Arduino для начинающих. Использование материалов на коммерческих сайтах допускается с указанием источника.





