Arduino:Примеры/Гайд по использованию датчика движения с Arduino
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Гайд по использованию датчика движения с Arduino[1]
В этом проекте мы создадим простую цепь с платой Arduino и датчиком движения типа PIR (означает «passive infrared», что переводится как «пассивный инфракрасный»). Ниже показано, как этот датчик работает вживую:
Описание
Датчик движения типа PIR измеряет инфракрасный свет, идущий от объектов, расположенных рядом с ним. Таким образом, он определяет движение, беря за основу данные об изменении инфракрасного света в окружающем пространстве. Это делает его идеальным датчиком для определения, к примеру, людей или животных, находящихся в пределах измеряемого диапазона.
Датчик на рисунке выше оснащен двумя потенциометрами, с помощью которых настраивается время задержки (это потенциометр слева) и чувствительность датчика (это потенциометр справа).
Распиновка
В подключении датчика к плате Arduino нет ничего сложного (у датчика всего три контакта):
- Контакт GND на датчике – к контакту GND на Arduino
- Контакт OUT на датчике – к цифровому контакту на Arduino
- Контакт 5V – к контакту 5V на Arduino
Необходимые компоненты
- Один датчик движения типа PIR (см. на eBay и на Amazon)
- Одна плата Arduino (см. на Amazon)
- Один светодиод
- Провода-перемычки (см. на Amazon)
Схема
Подключите друг к другу все эти компоненты, как показано на картинке ниже:
Код
Загрузите в IDE Arduino следующий код:
/*
* Использование датчика движения типа PIR с платой Arduino.
* Более подробно о проекте на: randomnerdtutorials.com/pirsensor
* Модифицирован Руи Сантосом (Rui Santos)
на основе скетча Лимор Фрид (Limor Fried)
*/
int led = 13; // контакт для светодиода
int sensor = 2; // контакт для датчика
int state = LOW; // по умолчанию никакого движения
// не определено
int val = 0; // переменная для хранения
// статуса датчика
void setup() {
pinMode(led, OUTPUT); // контакт для светодиода
// ставим в режим OUTPUT
pinMode(sensor, INPUT); // контакт для датчика
// ставим в режим INPUT
Serial.begin(9600); // инициализируем последовательную
// коммуникацию
}
void loop(){
val = digitalRead(sensor); // считываем данные от датчика
if (val == HIGH) { // проверяем, находится ли датчик
// в состоянии HIGH
digitalWrite(led, HIGH); // включаем светодиод
delay(100); // задержка в 100 миллисекунд
if (state == LOW) {
Serial.println("Motion detected!"); // "Замечено движение!"
state = HIGH; // обновляем состояние переменной на HIGH
}
}
else {
digitalWrite(led, LOW); // выключаем светодиод
delay(200); // задержка в 200 миллисекунд
if (state == HIGH){
Serial.println("Motion stopped!"); // "Движение прекращено!"
state = LOW; // обновляем состояние переменной на LOW
}
}
}
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino