The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Руководство содержит пошаговое описание выполнения экспериментов и проектов с помощью электронных компонентов, представленных в наборе «Умный дом».

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by BHV.RU Publishing House, 2020-01-11 02:50:37

Руководство пользователя к набору «Умный дом» для экспериментов с контроллером Arduino

Руководство содержит пошаговое описание выполнения экспериментов и проектов с помощью электронных компонентов, представленных в наборе «Умный дом».

Keywords: Arduino,Умный дом

Содержание

Введение .................................................................................... 2

Что вам понадобится? .............................................................................. 2
Состав набора ........................................................................................... 3
Начало работы .......................................................................................... 4

Краткая справка по программированию Arduino .................................. 6

УРОКИ......................................................................................... 9

Урок 1. Работа с монитором порта............................................................. 9
Урок 2. Управление светодиодом: включение/выключение, плавное
регулирование яркости ............................................................................12
Урок 3. Подключение кнопки ...................................................................14
Урок 4. Подключение потенциометра и светодиода.................................... 17
Урок 5. Подключение пьезоизлучателя ...................................................18
Урок 6. Световой терменвокс.................................................................. 20
Урок 7. Подключение к Arduino датчика звука........................................ 23
Урок 8. Подключение датчика движения................................................ 25
Урок 9. Подключение датчика газа..........................................................27
Урок 10. Подключение реле .................................................................... 29
Урок 11. Подключение фоторезистора......................................................31

ПРОЕКТЫ .................................................................................. 33

Проект 1. Универсальная сигнализация .................................................. 33
Проект 2. Освещение домашнего сада .................................................... 38
Проект 3. Умный свет.............................................................................. 40
Проект 4. Секретный код ........................................................................ 42
Проект 5. Умный дом ...............................................................................44

Введение

Благодарим Вас за покупку учебного набора! Теперь вы готовы к путешествию
в удивительный мир Arduino.

Шаг за шагом вы научитесь подключать к Arduino различные электронные компо-
ненты, модули и датчики, получите навыки написания программного кода и работы
в среде Arduino IDE. Выполняя учебные задания, вы сможете создать из имеющихся
компонентов полноценные устройства, описанные в этом руководстве, или приду-
мать собственные. Заключительный проект объединяет все датчики набора в ком-
бинированную систему, которая будет охранять ваш дом, позаботится об «умном
освещении» и напомнит о необходимости проветрить помещение, если в нем ста-
нет душно.

Набор подготовлен для тех, у кого нет опыта разработки проектов Arduino, а также
написания программного кода для электронных устройств.

Примечание
Прилагаемая в комплекте популярная книга Дж. Блума «Изучаем Arduino: инструмен-
ты и методы технического волшебства» поможет вам изучить основы использования
популярной микроконтроллерной платформы Arduino для разработки различных элек-
тронных устройств и обучения в области электротехники, программирования и взаимо-
действия человека с компьютером.

Надеемся, что набор поможет вам быстро адаптироваться в мире Arduino, и вы по-
лучите удовольствие, видя, как оживают ваши творения!

Что вам понадобится?

Во-первых, необходимо иметь доступ к сети Интернет — чтобы скачать среду раз-
работки Arduino IDE (Integrated Development Environment)1, а также загрузить примеры
программного кода (если вы не хотите вводить его вручную) и специальные библио-
теки.

Во-вторых, понадобится хорошо освещенный стол, на котором вы будете собирать
проекты, а также расположенный вблизи рабочего места настольный ПК или ноут-
бук для загрузки кода в Arduino.

Внимание!
Помните, что вы работаете с электричеством (хотя и низкого напряжения постоянно-
го тока), и поэтому поверхность стола не должна быть металлической. А если уж так
случилось, обязательно накройте ее токоизолирующим материалом (например, ска-
тертью, бумагой и т. п.).

Приготовьте блокнот и ручку для создания собственных схем подключения, разра-
ботки концепции и дизайна проекта.

1 Ссылка для закачки: http://arduino.ru/Arduino_environment.

2

И, наконец, самое главное, без чего вам не обойтись, — это энтузиазм и желание
учиться, а набор даст необходимый импульс к развитию и реализации ваших твор-
ческих идей!

Состав набора

Плата макетная беспаеч- Провода с разъемами Модуль зуммера 5В, Светодиод синий,
2 шт.
ная, 400 контактов, 1 шт. «папа-мама» 20 шт. 1 шт.

Модуль Arduino Uno, Провода с разъемами Модуль реле 4х, Светодиод желтый,
1 шт. 2 шт.
«папа-папа», 20 шт. 1 шт.

Кабель USB, Кнопка тактовая, Потенциометр 10 кОм, Светодиод красный,
1 шт. 3 шт.
1 шт. 2 шт.

Датчик звука, Фоторезистор, Резистор 220 Ом, Светодиод зеленый,
1 шт. 1 шт. 10 шт. 2 шт.

Датчик движения Датчик углекислого газа Резистор 10 кОм, Руководство,
HC-SR501, 1 шт. 1 шт.
MQ-135, 1 шт. 10 шт.

3

Начало работы

В основе набора лежит модуль Arduino Uno (рис. В.1), построенный на микрокон-
троллере ATmega328. В состав модуля входит все необходимое для удобной работы
с этим микроконтроллером: 14 цифровых входов/выходов (из них 6 могут исполь-
зоваться в качестве ШИМ-выходов), 6 аналоговых входов, кварцевый резонатор
на 16 МГц, разъем USB, разъем питания, разъем для внутрисхемного программиро-
вания (ICSP) и кнопка сброса. Для начала работы с уcтройством достаточно просто
подать питание от AC/DC-адаптера или батарейки, либо подключить его к компью-
теру посредством USB-кабеля.

Рис. В.1. Модуль Arduino Uno

Перед началом работы необходимо:

1. Cкачать среду разработки Arduino для вашей операционной системы с сайта
http://arduino.cc/en/Main/Software.

Рис. В.2. Страница для загрузки среды разработки

4

Если у вас установлена ОС Windows, то нажмите на ссылку Windows Installer
(рис. В.2), скачайте инсталляционный файл (например, arduino-1.0.6-windows.
exe) и запустите его на выполнение. Среда разработки Arduino будет уста-
новлена.
2. Подключите разъем USB-кабеля к плате Arduino.
3. Подключите другой разъем USB-кабеля к USB-разъему компьютера. При этом
на плате должен загореться зеленый светодиод питания, помеченный ON.
Windows запустит процесс установки драйверов. Если ОС самостоятельно не
сможет установить драйверы Arduino, то установите их вручную, указав к ним
путь, — например, C:\Program Files\Arduino\drivers. После установки проверьте
в Диспетчере устройств, определился ли модуль как USB Serial Port (рис. В.3).

Рис. В.3. Определение модуля Arduino в среде Windows

Рис. В.4. Окно среды разработки Arduino с информацией о подключенной плате

5

4. Запустите среду разработки Arduino. В меню Сервис | Плата выберите Arduino
Uno. А в меню Сервис | Последовательный порт выберите порт, который у
вас определился в Диспетчере устройств (см. рис. В.3). В нижней части окна
должна появиться надпись с названием выбранных контроллера и COM-порта
(рис. В.4).

Теперь все готово для загрузки первой программы на плату Arduino. Чтобы убедить-
ся в этом, запустим программу Blink, которая будет мигать встроенным светодио-
дом на плате. Для этого:

1. Выполните последовательность команд Файл | Примеры | 01.Basics и выбери-
те программу Blink. Откроется новое окно с кодом этой программы.

2. Нажмите кнопку Загрузить, расположенную в левом верхнем углу Arduino IDE.
В строке состояния, находящейся внизу, отобразится процесс компиляции и
загрузки программы. После загрузки программы светодиод, подключенный к
выводу 13 Arduino, должен мигать оранжевым цветом с частотой один раз в
секунду. Поздравляем! Ваша первая программа работает успешно.

Примечание

Более подробно об установке Arduino IDE, загрузке программы Blink, а также ана-
лиз ее исходного кода можно посмотреть на страницах прилагаемой к набору кни-
ги Дж. Блума «Изучаем Arduino: инструменты и методы технического волшебства»
(см. разд. 1.8. «Запускаем первую программу» главы 1).

Краткая справка
по программированию Arduino

Этот раздел ориентирован на тех, кто имеет небольшой опыт программирования
и нуждается только в пояснении особенностей языка С и интерфейса Arduino. Для
более подробного изучения основ посетите сайты http://arduino.cc/en/Reference/
HomePage (англ.) или http://arduino.ru/Reference (рус.).

Команда Описание
Основные операторы
void setup() {}
Основные подпрограммы void loop() {}
int led = 0;
Объявление переменных
(тип Integer, значение = 0) const int analogInPin = A0;
Объявление констант int Arrayname[6] = {2, 4, -8, 3,
(тип Integer, значение = A0) 2};
Объявление массивов 6
(тип Integer, 6 значений)

Команда Описание

Устанавливает режим работы заданного входа/ pinMode(led, OUTPUT);
выхода (pin)

Инициализация последовательного интерфейса Serial.begin(9600);

Подключение библиотеки #include <libX.h>

Ввод/вывод

Подает HIGH (или LOW) значение на цифровой digitalWrite(led,HIGH);
вход/выход (pin)

Выдает аналоговую величину (волну ШИМ) analogWrite(led, 255);
на порт входа/выхода

Функция — считывает значение с заданного входа: digitalRead(schalter)
HIGH или LOW

Функция — считывает значение с указанного analogRead(A0)
аналогового входа

Передает данные через последовательный порт Serial.print(“Hello!”);
как текст ASCII

Передает текст через последовательный порт + Serial.println(“Hello!”);
перенос строки

Функция — считывает очередной доступный байт Serial.read();
из буфера последовательного соединения
tone(8,x)
Генерирует сигнал (Pin 8, частота X (Гц), tone(8, x, y)
длительность Y (миллисекунд))

Останавливает сигнал на порту (8) noTone(8)

Управляющие операторы

Конструкция If…Else if (button == HIGH){ }
else{ }

switch (x) {

Переключатель case 1:
case 2:

default:

Период ожидания (500 ms) delay(500);

Цикл For for (x = 2; x < 7; x++) {

while (myswitch == HIGH) {

Цикл While }
или: do{
} while (myswitch ==HIGH);

Преждевременный выход из цикла break;

Пропускает оставшиеся операторы continue;
в текущем шаге цикла

Математические функции

Синус, косинус, тангенс sin(),cos(),tan()

Корень из X sqrt(x)

X в степени Y pow(x, y)
Абсолютное значение (значение X) abs(x)
Случайное число random()

7

Команда Описание

Сравнение ==
Равно !=
Неравно >, <
Больше, меньше >=, <=
Больше или равно, меньше или равно min(x, y)
Функция — наименьшее число из двух (X или Y) max(x, y)
Функция — наибольшее число из двух (X или Y)
Логические операторы &&
И ||
Или !
Не Boolean; char; unsigned char;
byte; int; unsigned int; word;
Типы данных long; unsigned long; short; float;
double; string (array); String
(Object);

Преобразование типов данных char(); byte(); int(); word();
long(); float()

Прерывания noInterrupts()
Запрет прерываний Interrupts()
Разрешение прерываний attachInterrupt(interrupt,
function, mode)
Включает обработку внешнего прерывания detachInterrupt(interrupt)

Выключает обработку внешнего прерывания //
Другие /*Комментарий*/
Комментарии, одна строка map(значения датчика, 0, 1024, 0,
Комментарии, несколько строк 255);
Функция — диапазон преобразований, например:
10-разрядный датчик на 8-битный ШИМ constrain(значения датчика, 0,
(8-Bit-PWM) 255);
Функция — проверяет (и, если надо, задает)
новое значение (нижняя граница значений/ return x;
верхняя граница) goto label1;
Для функции — возвращаемое значение Void Имя процедуры() { }
Переход к метке (label1) int Имя функции (byte — параметры,
Процедура передаваемые в функцию) {
Функция, которая возвращает значения Integer return 13;
и имеет входные параметры Byte }

8

УРОКИ

Урок 1

Работа с монитором порта

Познакомимся со встроенной в Arduino IDE утилитой — монитором последователь-
ного порта (Serial monitor). Это удобный для работы инструмент.

Необходимые компоненты

• Контроллер Arduino Uno
• Плата для прототипирования

Практическое задание

Рассмотрим взаимодействие контроллера Arduino Uno с портом.
1. Сначала напишем простой скетч, который будет записывать в порт фразу с за-

данной периодичностью (листинг У1.1).

Листинг У1.1

void setup () { // Функция setup ()
// вызывается

// при старте программы

Serial.begin(9600); // Инициализируем порт,
// устанавливаем скорость
// обмена данными, равной
// 9600 битов в секунду

}

void loop(){ // Функция loop () — это основной
// цикл программы

Serial.println(“Ardino”); // Печатает данные в порт

delay(1000); // Задержка 1 секунда

}

2. Загрузим этот скетч в контроллер командой: Файл | Загрузить.
3. Для начала обмена данными необходимо открыть монитор, выбрав в меню

команду: Сервис | Монитор порта (рис. У1.1).
4. Мы видим, что контроллер непрерывно пересылает нашу фразу в порт (рис. У1.2).

9

Рис. У1.1. Открытие монитора порта

Рис. У1.2. Пересылка данных в порт

Теперь наладим обратную связь. Мы будем пересылать команду посредством пор-
та Arduino, чтобы она включала и выключала встроенный на плате светодиод. Для
этого:

1. Напишем следующий скетч (листинг У1.2).

Листинг У1.2

int outputPin = 13; // Объявляем переменную
int val; // outputPin и присваиваем ей значение контакта
// Объявляем переменную для
// хранения введенного символа

void setup()
{

10

Serial.begin(9600); // Установка порта на скорость 9600 бит/сек

pinMode(outputPin, OUTPUT); // Устанавливаем 13-й контакт
// в режим вывода

} // Если есть принятый символ,
void loop()
{

if (Serial.available()) {

val = Serial.read(); // то читаем его и сохраняем в val

if (val == ‘H’) { // Если принят символ ‘H’,

digitalWrite(outputPin, HIGH); // то включаем светодиод

}
if (val == ‘L’) { // Если принят символ ‘L’,

digitalWrite(outputPin, LOW); // то выключаем светодиод

}
}
}

2. Загрузим скетч (листинг У1.2) в контроллер командой: Файл | Загрузить.

3. Теперь необходимо открыть монитор порта и отправлять из него на Arduino
символы H и L. То есть, вводим в поле ввода символы H или L и нажимаем
кнопку Послать (рис. У1.3). Пересылая с компьютера в порт Arduino команды,
мы управляем встроенным светодиодом.

Рис. У1.3. Пересылка на Arduino символа H

11

Урок 2

Управление светодиодом:
включение/выключение,
плавное регулирование яркости

В этом уроке мы поэкспериментируем со светодиодом (рис. У2.1) — заставим его
моргать, плавно разгораться и затухать.

Рис. У2.1. Светодиод • Светодиод
• Резистор 220 Ом
Необходимые компоненты

• Контроллер Arduino Uno
• Плата для прототипирования
• Один провод

Схема подключения

Рис. У2.2. Схема подключения
светодиода

12

Программный код

Листинг У2.1

int brightness = 0; // Яркость светодиода
int fadeAmount = 5; // Шаг изменения яркости

unsigned long currentTime;

unsigned long loopTime;

void setup() {
pinMode(10, OUTPUT); // Устанавливаем 10-ю ногу как выход
currentTime = millis();

loopTime = currentTime;

}

void loop() {

currentTime = millis();

if(currentTime >= (loopTime + 20)){
analogWrite(10, brightness); // Устанавливаем значение
// на 10-й ножке. Прибавляем шаг изменения яркости,
// которая установится в следующем цикле:
brightness = brightness + fadeAmount;
// Если достигли мин. или макс. значения,
// то идем в обратную сторону (реверс):
if (brightness == 0 || brightness == 255) {

fadeAmount = -fadeAmount ;

}

loopTime = currentTime;

}

}

Для того чтобы поморгать светодиодом, напишите следующий код (листинг У2.2).

Листинг У2.2
int led = 10;

void setup() {

pinMode(led, OUTPUT);

}

void loop() {

digitalWrite(led, HIGH); // Включаем светодиод,

// подавая на него напряжение командой HIGH

delay(1000); // Пауза 1 секунда

digitalWrite(led, LOW); // Выключаем светодиод,

// снимая с него напряжение командой LOW

delay(1000); // Пауза 1 секунда

}

13

Порядок подключения

1. Длинную ножку светодиода (анод) подключите к выводу D10 контроллера
Arduino через резистор 220 Ом, а другую (катод) — к выводу GND (рис. У2.2).

2. Загрузите скетч листинга У2.1.

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

Урок 3

Подключение кнопки

В этом уроке мы поэкспериментируем с кнопкой — передадим состояние кнопки
в монитор порта и заставим загораться светодиод по нажатию на кнопку.

Необходимые компоненты

• Контроллер Arduino Uno • Светодиод
• Плата для прототипирования • Резистор 220 Ом
• Провода • Резистор 10 кОм
• Кнопка

Схема подключения: вариант 1

Рис. У3.1. Схема подключения кнопки (вариант 1)

Важно!
Вход Arduino должен иметь заранее известное состояние (1 или 0). В «подвешенном»
состоянии он будет собирать внешние наводки (статические, электрические и электро-
магнитные излучения).

14

Чтобы привести вход в заранее известное состояние, используют подтягивающие ре-
зисторы. Они бывают двух видов: подтяжки верхние и нижние.
Верхние (pull-up) — подключаются к плюсу питания, а нижние (pull-down) — к минусу.
В нашем примере мы используем подтягивающий резистор к минусу. Таким образом,
когда кнопка отключена, вход будет подключен к «земле» через резистор, сопротивле-
ние которого заведомо меньше внутреннего сопротивления входа. Поэтому наводка,
попавшая на вход, уйдет в GND. Если же подключен полезный сигнал (+5 В), то он
будет стекать во вход (незначительная часть сигнала уйдет в GND через подтяжку).
В итоге, при нажатой кнопке у нас будет стабильный сигнал (+5 В), а при отпущенной
кнопке — стабильный ноль.

Программный код: вариант 1

Листинг У3.1
void setup()

{
Serial.begin(9600);
pinMode(2, INPUT);
}
void loop() {

int sensorValue = digitalRead(2);
Serial.println(sensorValue, DEC);
}

Порядок подключения: вариант 1

1. Один вход кнопки подключаем к выводу 5V контроллера Arduino, другой — че-
рез подтягивающий резистор 10 кОм к GND, выход кнопки подключаем к D2
(рис. У3.1).

2. Загрузите скетч листинга У3.1. Этот код считывает состояние входа D2 и от-
правляет в порт: 1 — если кнопка нажата, и 0 — если не нажата. На рис. У3.2
показано отображение результатов нажатия кнопки.

Рис. У3.2. Результаты нажатия кнопки

15

Схема подключения: вариант 2

Усложним код и подключим светодиод (рис. У3.3), чтобы заставить его загораться
по нажатию на кнопку.

Рис. У3.3. Схема подключения кнопки (вариант 2)

Программный код: вариант 2

Листинг У3.2

void setup() {

Serial.begin(9600);

pinMode(2, INPUT);

}

void loop() {

int sensorValue = digitalRead(2);

Serial.println(sensorValue, DEC);

if(digitalRead(2)==HIGH)

{
digitalWrite(9,HIGH); // Включаем светодиод

} // Если не нажата...
else

{
digitalWrite(9,LOW); // выключаем

}

}

Порядок подключения: вариант 2

1. Подключим к схеме светодиод, как показано на рис. У3.3: анод — к входу D9
контроллера Arduino, а катод — через резистор 220 Ом к GND.

2. Загрузим скетч листинга У3.2.

Теперь при нажатии на кнопку светодиод станет загораться.
16

Урок 4

Подключение потенциометра и светодиода

В этом уроке мы подключим к Arduino аналоговый потенциометр и светодиод
и научимся регулировать яркость светодиода с помощью потенциометра.

Необходимые компоненты

• Контроллер Arduino Uno • Светодиод
• Плата для прототипирования • Резистор 220 Ом
• Потенциометр

Схема подключения

Рис. У4.1. Схема подключения потенциометра и светодиода

Программный код

Листинг У4.1

#define led 8 // Определяем пин для светодиода
#define val A1 // Определяем пин для потенциометра
void setup()
{

17

pinMode(led, OUTPUT); // Объявляем пин led - выходом
inMode(val, INPUT); // Объявляем пин val - входом

}

void loop()

{

int x; // Объявляем переменную x для присвоения ей значений

x = analogRead(val) / 4; // Присваиваем переменной х значение с входа val

analogWrite(led, x); // Записываем значение х в переменную led

}

Порядок подключения

1. Подключите один вывод потенциометра к выводу 5V контроллера Arduino,
центральный контакт — к аналоговому входу А1 и оставшийся — к GND
(рис. У4.1).

2. Короткую ножку светодиода подключите к GND, длинную — через сопротивле-
ние 220 Ом к цифровому входу 8.

Теперь при прокрутке потенциометра яркость светодиода станет меняться.

Потенциометр можно использовать для передачи значений различным устрой-
ствам — например, регулировать скорость мотора, шагового двигателя или же на-
страивать паузу между событиями.

Урок 5

Подключение пьезоизлучателя

В этом уроке мы подключим к Arduino пьезоизлучатель (рис. У5.1). С его помощью
можно генерировать различные тоны и простые мелодии.

Рис. У5.1. Пьезоизлучатель

18

Необходимые компоненты

• Контроллер Arduino Uno
• Пьезоизлучатель
• Провода

Схема подключения

Рис. У5.2. Схема подключения пьезоизлучателя

Программный код

Листинг У5.1
int SoundPin = 13; // Объявляем переменную,

// к которой подключен пин пьезоизлучателя
int DelaySound = 1000; // Пауза 1 секунда
void setup()
{
}
void loop()
{

tone(SoundPin, 1915); // Воспроизводим сигнал с частотой 1915 Гц
delay(DelaySound); // Пауза 1 секунда (1000 миллисекунд – значение

// переменной DelaySound) – длительность воспроизведения сигнала
tone(SoundPin, 1700);
delay(DelaySound);
tone(SoundPin, 1519);
delay(DelaySound);
tone(SoundPin, 1432);
delay(DelaySound);

19

tone(SoundPin, 1275);
delay(DelaySound);
tone(SoundPin, 1136);
delay(DelaySound);
tone(SoundPin, 1014);
delay(DelaySound);
noTone(7); // Выключаем звук
}

Порядок подключения

Ножку «плюс» пьезоизлучателя подключите к выводу 5V контроллера Arduino, нож-
ку «минус» — к GND, а ножку «I/O» — к пин 13 (рис. У5.2).

Пояснение
Функция tone() генерирует на порту входа/выхода сигнал — прямоугольную «волну»
заданной частоты и с 50%-ным рабочим циклом. Длительность может быть задана па-
раметром, в противном случае сигнал генерируется, пока не будет вызвана функция
noTone().

Вы сможете использовать пьезоэлемент для воспроизведения различных мело-
дий. Для этого следует подавать на пьезоэлемент сигнал определенной частоты
и длительности. Подробнее о соответствии частоты сигнала воспроизводимым му-
зыкальным нотам, а также примеры программы можно посмотреть на сайте разра-
ботчика Arduino: http://www.arduino.cc/en/Tutorial/Melody.
Используя несколько пьезоэлементов, можно создать целый оркестр, добавив
в схему несколько кнопок, можно сделать небольшой электронно-клавишный ин-
струмент, а с помощью фоторезистора — создать световой терменвокс, о котором
вы узнаете из следующего урока.

Урок 6

Световой терменвокс

В этом уроке мы подключим к Arduino фоторезистор и пьезоизлучатель (рис. У6.1) —
таким образом мы соберем простейший имитатор музыкального инструмента тер-
менвокса. Только при игре на нашем терменвоксе «музыкант» будет подносить руки
не к антенне, а к фоторезистору.

Пояснение
Cопротивление фоторезисторов (рис. У6.1, а) уменьшается под воздействием света
и увеличивается в темноте. Фоторезисторы просты в использовании, но достаточно
медленно реагируют на изменение уровня освещенности и имеют весьма низкую точ-
ность. Как правило, сопротивление фоторезисторов может варьироваться от 50 Ом
при дневном освещении до более чем 10 МОм в темноте.

20

аб
Рис. У6.1. Фоторезистор (а) и пьезоизлучатель (б)

Необходимые компоненты • Пьезоизлучатель
• Резистор 10 кОм
• Контроллер Arduino Uno
• Плата для прототипирования
• Фоторезистор

Схема подключения

Рис. У6.2. Схема подключения фоторезистора и пьезоизлучателя

Программный код

Листинг У6.1

int przPin = 12; // Указываем пин, к которому подключен фоторезистор

int przReading; // Переменная для хранения данных с фоторезистора

int buzzerPin = 13; // Указываем пин, к которому подключен
// пьезоизлучатель

long buzzerFreq; // Переменная для хранения значения частоты звука,

// излучаемого пьезоизлучателем

21

long BUZZ_FREQ_MAX = 2500; // Задаем максимальную частоту излучения
long PR_MAX = 1023; // Задаем максимальное значение фоторезистора
void setup() {

pinMode(buzzerPin, OUTPUT); // Объявляем пин, к которому подключен
// пьезоизлучатель как выход

}
void loop() {

przReading = analogRead(przPin); // Считываем данные с фоторезистора
buzzerFreq = (przReading * BUZZ_FREQ_MAX) / PR_MAX;

// Задаем частоту излучения пьезоизлучателя
buzz(buzzerPin, buzzerFreq, 10);// Выполняем подпрограмму buzz
}

void buzz(int targetPin, long frequency, long length)
{

long delayValue = 1000000/frequency/2;
long numCycles = frequency * length/ 1000;
for (long i=0; i < numCycles; i++){

digitalWrite(targetPin,HIGH);
delayMicroseconds(delayValue);
digitalWrite(targetPin,LOW);
delayMicroseconds(delayValue);
}
}

Порядок подключения

1. Подключите одну ножку фоторезистора к выводу 5V контроллера Arduino, вто-
рую — к пин 12 и, через сопротивление 10 кОм, к GND (рис. У6.2).

2. Ножку «плюс» пьезоизлучателя подключите к выводу 5V контроллера Arduino,
ножку «минус» — к GND, а ножку «I/O» — к пин 13.

Все — терменвокс готов! Теперь попробуйте, изменяя освещенность фоторезисто-
ра, создать звуковую композицию.

22

Урок 7

Подключение к Arduino датчика звука

В этом уроке мы подключим к Arduino датчик звука (рис. У7.1) — он поможет нам
определять посторонние шумы.

Рис. У7.1. Датчик звука

Необходимые компоненты

• Контроллер Arduino Uno
• Датчик звука
• Провода

Схема подключения

Рис. У7.2. Схема подключения датчика звука

23

Программный код

int val;
void setup()
{
Serial.begin(9600); // Открываем монитор порта,

// задаем скорость обмена данными
}
void loop()
{
val=analogRead(0); // Присваиваем переменной аналоговый пин А0
Serial.println(val,DEC);// Выводим полученное с датчика значение

// в монитор порта
delay(100); // Задаем паузу
}

Порядок подключения

Подключите ножки датчика звука VCC, GND и Signal к пинам 5V, GND и A0 контрол-
лера Arduino соответственно (рис. У7.2).
Теперь мы можем поэкспериментировать со звуками — показанное на рис. У7.3
значение соответствует хлопку в ладоши.

Рис. У7.3. Фиксация хлопка в ладоши на мониторе последовательного порта

24

Урок 8

Подключение датчика движения

В этом уроке мы подключим к Arduino датчик движения (рис. У8.1). С его помощью
можно распознать наличие движения в помещении.

Рис. У8.1. Датчик движения

Необходимые компоненты

• Контроллер Arduino Uno
• Плата для прототипирования
• Датчик движения
• Провода

Схема подключения

Рис. У8.2. Схема подключения датчика движения

25

Программный код

Листинг У8.1

#define pirPin 2
#define LedPin 13
void setup()
{

Serial.begin(9600);
pinMode(pirPin, INPUT); // Объявляем пин, к которому подключен

// датчик движения, входом
pinMode(ledPin,OUTPUT); // Объявляем пин, к которому подключен

// светодиод, выходом
}
void loop()
{

int pirVal = digitalRead(pirPin); // Считываем значения с датчика
// движения. Если обнаружили движение, то транслируем сигнал
// тревоги в монитор порта и включаем светодиод

if(pirVal == HIGH)
{

digitalWrite(LedPin, HIGH);
Serial.print(“ALARM”);
delay(2000);
}
else
{
Serial.print(“Scaning”);
digitalWrite(LedPin,LOW);
}
}

Порядок подключения

Подключите ножки датчика GND, OUT и VCC к пинам GND, 2 и 5V контроллера Ar-
duino соответственно (рис. У8.2).
После загрузки программного кода замрите на некоторое время — светодиод го-
реть не будет, но стоит вам незначительно пошевелиться, датчик это сразу опреде-
лит (рис. У8.3)!

Рис. У8.3. Датчик обнаружил движение — сигнал тревоги (ALARM) выводится в монитор порта

26

Урок 9

Подключение датчика газа

В этом уроке мы подключим к Arduino датчик газа (рис. У9.1). С его помощью мы
сможем следить за количеством углекислого газа в помещении.

Рис. У9.1. Датчик газа Схема подключения

Необходимые компоненты

• Контроллер Arduino Uno
• Датчик газа
• Провода

Рис. У9.2. Схема подключения датчика газа

Программный код

Листинг У9.1
const int analogInPin = A0; // Указываем пин, к которому подключен датчик
const int ledPin = 13;
int sensorValue = 0; // Объявляем переменную для хранения значений

// с датчика и задаем ее начальное значение 0
void setup() {

Serial.begin(9600);
27

pinMode(ledPin, OUTPUT);

Serial.println(“CG312 MQ135 Test” ); // Посылаем текст
// в монитор порта, чтобы следить за выполнением программы

}

void loop() {

sensorValue = analogRead(analogInPin); // Считываем значения с датчика

if (sensorValue >= 600), // и если превышен заданный порог,

{ // то включаем светодиод,
digitalWrite(ledPin, HIGH);

}
else // а если нет…

{ // то выключаем
digitalWrite(ledPin, LOW);

}

Serial.print(“CG312 MQ2 value= “ );
// Для отслеживания данных с датчиков транслируем их в монитор порта

Serial.println(sensorValue);

delay(1000);

}

Порядок подключения

Подключите ножки датчика +5V, GND и AOUT (аналоговый выход) к пинам 5V, GND
и A0 контроллера Arduino соответственно (рис. У9.2).

После загрузки программного кода подышите на датчик — в окне монитора после-
довательного порта вы увидите соответствующие значения, получаемые с датчика
(рис. У9.3).

Рис. У9.3. Значения, получаемые с датчика газа

28

Урок 10

Подключение реле

В этом уроке мы подключим к Arduino релейный модуль (рис. У10.1). С его помощью
можно включать/выключать освещение, моторы и замыкать другие контакты.

Предупреждение

Этот модуль рассчитан на коммутирование
небольших нагрузок. Вы можете подклю-
чать бытовые приборы с рабочим напряже-
нием 220 В, но нагрузка не должна превы-
шать 3-х ампер (мощность до 660 Вт)!

Рис. У10.1. Релейный модуль Необходимые компоненты
на четыре реле
• Контроллер Arduino Uno
Схема подключения • Модуль на четыре реле (реле 4х)
• Провода

Рис. У10.2. Схема подключения реле

29

Программный код

Листинг У10.1

int Relay1 = 2;
int Relay2 = 3;
int Relay3 = 4;
int Relay4 = 5;
void setup() {

pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
pinMode(Relay3, OUTPUT);
pinMode(Relay4, OUTPUT);
}
void loop() {

digitalWrite(Relay1, HIGH);
delay(1000);
digitalWrite(Relay2, HIGH);
delay(1000);
digitalWrite(Relay3, HIGH);
delay(1000);
digitalWrite(Relay4, HIGH);
delay(1000);
digitalWrite(Relay1, LOW);
delay(1000);
digitalWrite(Relay2, LOW);
delay(1000);
digitalWrite(Relay3, LOW);
delay(1000);
digitalWrite(Relay4, LOW);
delay(1000);
}

Порядок подключения

Подключите ножки реле VCC, IN1, IN2, IN3, IN4 и GND к выводам 5V, 2, 3, 4, 5 и GND
контроллера Arduino соответственно (рис. У10.2).
После загрузки программного кода реле будет последовательно включаться и вы-
ключаться с паузой в 1 секунду (рис. У10.3).

30

Рис. У10.3. Схема с реле в сборе

Урок 11

Подключение фоторезистора

В этом уроке мы подключим к Arduino фоторезистор, который будет управлять
встроенным светодиодом.

Необходимые компоненты

• Контроллер Arduino Uno • Провода
• Плата для прототипирования • Резистор 10 кОм
• Фоторезистор

Схема подключения

Рис. У11.1. Схема подключения фоторезистора

31

Программный код

Листинг У11.1

int PhotosensorPin = A0; // Указываем пин, к которому

// подключен фоторезистор

unsigned int sensorValue = 0; // Объявляем переменную для хранения
// значений с фоторезистора, задаем начальное значение 0

void setup()

{

pinMode(13, OUTPUT);

Serial.begin(9600);

}

void loop()

{

sensorValue = analogRead(PhotosensorPin);

// Считываем значение с фоторезистора

if(sensorValue<500) digitalWrite(13, HIGH); // Включаем

else digitalWrite(13, LOW); // Выключаем

Serial.print(sensorValue, DEC); // вывод данных

// с фоторезистора (0-1024)

Serial.println(“”); // Возврат каретки

delay(500);

}

Порядок подключения

1. Одну ножку фоторезистора подключите через резистор 10 кОм к GND и
к аналоговому входу А0 контроллера Arduino, а другую — к его выводу 5V
(рис. У11.1).

2. Загрузите скетч, описанный в листинге У11.1.

3. Для просмотра значения с фоторезистора откройте монитор порта (рис. У11.2).

Теперь, если свет падает на фоторезистор, и встроенный светодиод выключен, за-
слоните фоторезистор рукой, и вы увидите, что в определенный момент светодиод
включится! Так же можно посмотреть изменение значения с фоторезистора в мо-
ниторе порта.

32

Рис. У11.2. Просмотр значений с фоторезистора в мониторе порта

ПРОЕКТЫ

Проект 1

Универсальная сигнализация

Проект «Универсальная сигнализация» призван помочь вам защитить свой дом от
разных напастей: несанкционированного проникновения в квартиру и высокой кон-
центрации углекислого газа.

Необходимые компоненты

• Контроллер Arduino Uno • Датчик движения
• Плата для прототипирования • Пьезоизлучатель
• Датчик звука • Модуль реле 4х
• Датчик газа
33

Схема подключения ~220В

вентилятор звонок освещение
~220В

Модуль реле 4х

Пьезоизлучатель Датчик звука Датчик газа Датчик движения

Рис. П1.1. Схема подключения универсальной сигнализации

34

Программный код

Листинг П1.1

#define pirPin 9 // Объявляем переменную для датчика движения,
// указываем пин

int SoundPin = A4;

int Count=0;

int val; // Объявляем переменную для датчика звука

int relay1 = 3; // Объявляем переменную для реле 1, указываем пин

int relay2 = 4; // Объявляем переменную для реле 2, указываем пин

int relay3 = 5; // Объявляем переменную для реле 3, указываем пин

int relay4 = 6; // Объявляем переменную для реле 4, указываем пин

const int gassensorpin = A5; // Объявляем переменную

// для сенсора газа, указываем пин

int gassensorvalue = 0; // Объявляем переменную для хранения

// значения с датчика газа, приравниваем ее к 0

int buzzer = 8; // Объявляем переменную для пьезоизлучателя,
// указываем пин

void setup()

{

pinMode(SoundPin, INPUT); // Назначаем пин датчика звука как вход
pinMode(buzzer, OUTPUT); // Назначаем пин пьезоизлучателя как выход
pinMode(pirPin, INPUT); // Назначаем пин датчика движения как вход
pinMode(relay1, OUTPUT); // Назначаем пин реле как выход
pinMode(relay2, OUTPUT); // Назначаем пин реле как выход
pinMode(relay3, OUTPUT); // Назначаем пин реле как выход
pinMode(relay4, OUTPUT); // Назначаем пин реле как выход

}

void loop()

{

gassensorvalue = analogRead(gassensorpin); // Считываем значение
// с датчика газа

if (gassensorvalue >= 600) // Задаем порог уровня загазованности

{ // Включаем реле, к которому
digitalWrite(relay1, LOW); // подключен вентилятор
// Подаем сигнал пьезоизлучателем
digitalWrite(buzzer, HIGH);

delay(50000);

}

else

35

{ // Выключаем реле с вентилятором
digitalWrite(relay1, HIGH); // Выключаем сигнал
digitalWrite(buzzer, LOW);

}

int pirVal = digitalRead(pirPin);

if(pirVal == HIGH)

{

digitalWrite(relay2, LOW); // Включаем реле, к которому
// подключено освещение

digitalWrite(relay3, LOW); // Включаем реле, к которому
// подключено освещение

digitalWrite(buzzer, HIGH); // Подаем сигнал пьезоизлучателем

delay(10000);

}

else

{

digitalWrite(relay2,HIGH);

digitalWrite(relay3,HIGH);

}

val=analogRead(0);

if(val > 400)

{

digitalWrite(relay2, LOW); // Включаем реле, к которому
// подключено освещение

digitalWrite(relay3, LOW); // Включаем реле, к которому
// подключено освещение

digitalWrite(buzzer, HIGH); // Подаем сигнал пьезоизлучателем

delay(1000);

}

else

{ // Выключаем реле
digitalWrite(relay2,HIGH); // Выключаем реле
digitalWrite(relay3,HIGH); // Выключаем сигнал
digitalWrite(buzzer, LOW);

}

Count=analogRead(A4);

If (cont>400);

{ // Включаем реле, к которому
digitalWrite(relay2, LOW); // подключено освещение

digitalWrite(relay3, LOW); // Включаем реле, к которому
// подключено освещение

36

digitalWrite(buzzer, HIGH); // Подаем сигнал пьезоизлучателем
delay(1000);
} // Выключаем реле
else // Выключаем реле
{ // Выключаем сигнал
digitalWrite(relay2,HIGH);
digitalWrite(relay3,HIGH);
digitalWrite(buzzer, LOW);

}
}

Порядок подключения

1. Подключите выводы GND и 5V контроллера Arduino к контактным дорожкам
платы прототипирования (рис. П1.1).

2. Подключите ножки датчика звука VCC и GND к соответствующим контактным
дорожкам платы прототипирования, ножку Out подключите к А4.

3. Подключите ножки датчика газа 5V и GND к соответствующим контактным до-
рожкам платы прототипирования, ножку AOUT подключите к А5.

4. Подключите ножки пьезоизлучателя VCC и GND к соответствующим контакт-
ным дорожкам платы прототипирования, ножку S подключите к пин 8.

5. Подключите ножки датчика движения VCC и GND к соответствующим контакт-
ным дорожкам платы прототипирования, ножку Signal подключите к пин 9.

6. Подключите ножки модуля реле VCC и GND к соответствующим контактным
дорожкам платы прототипирования, ножки INT1, INT2, INT3, INT4 подключите
к пин 3, пин 4, пин 5, пин 6 контроллера Arduino соответственно.

После загрузки кода из листинга П1.1 на вашем устройстве будет реализована сле-
дующая логика: если пороговое значение шума или загазованности будет превыше-
но, а также если сработает датчик движения, то включатся пьезоизлучатель — для
подачи сигнала — и реле — для включения вентиляции в случае загазованности
и света для отпугивания нежелательных гостей.

37

Проект 2

Освещение домашнего сада

В этом проекте мы автоматизируем освещение вашего домашнего сада. Чтобы
всегда быть уверенным в том, что ваши любимые растения получили необходимое
количество света, мы подключим осветительные приборы вашего сада к реле, ко-
торое будет срабатывать при недостаточной освещенности естественным светом
с улицы.

Необходимые компоненты

• Контроллер Arduino Uno • Фоторезистор
• Плата для прототипирования • Резистор 10 кОм
• Модуль реле 4х • Провода

Схема подключения

освещение

~220B ~220B

Модуль реле 4х

Рис. П2.1. Схема подключения освещения домашнего сада

38

Программный код

Листинг П2.1

int PhotosensorPin = A5;
unsigned int sensorValue = 0;
int Relay1=3;
int Relay2=4;
int Relay3=5;
int Relay4=6;

void setup()
{

pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
pinMode(Relay3, OUTPUT);
pinMode(Relay4, OUTPUT);
}
void loop()
{

sensorValue = analogRead(PhotosensorPin);
// Считываем значение с фоторезистора

if(sensorValue<500) // Задаем пороговое значение включения/выключения
{
digitalWrite(Relay1, HIGH); // Включаем реле 1
digitalWrite(Relay2, HIGH); // Включаем реле 2
digitalWrite(Relay3, HIGH); // Включаем реле 3
digitalWrite(Relay4, HIGH); // Включаем реле 4
}

else
{
digitalWrite(Relay1, LOW); // Выключаем реле 1
digitalWrite(Relay2, LOW); // Выключаем реле 2
digitalWrite(Relay3, LOW); // Выключаем реле 3
digitalWrite(Relay4, LOW); // Выключаем реле 4
}

delay(500);
}

Порядок подключения

1. Подключите выводы GND и 5V контроллера Arduino к контактным дорожкам
платы прототипирования (рис. П2.1).

2. Подключите одну ножку фоторезистора к 5V на плате прототипирования, а дру-
гую — к пин А5 контроллера Arduino и, через подтягивающий резистор 10 кОм, —
к GND на плате прототипирования.

39

3. Подключите ножки модуля реле VCC и GND к соответствующим контактным
дорожкам платы прототипирования, а ножки INT1, INT2, INT3, INT4 — к пин 3,
пин 4, пин 5, пин 6 контроллера Arduino соответственно.

Необходимо также подключить осветительные приборы вашего домашнего сада
к реле, разместить фоторезистор среди растений и задать пороговое значение сра-
батывания реле.

И отныне вам не придется беспокоиться о своих растениях — о них позаботится
ваше устройство.

Проект 3

Умный свет

В проекте «Умный свет» мы реализуем последовательное включение осветитель-
ных приборов в соответствии с вашим ежедневным маршрутом по квартире.

Необходимые компоненты

• Контроллер Arduino Uno • Модуль реле 4х
• Плата прототипирования • Провода
• Датчик движения

Схема подключения

освещение

Модуль реле 4х

Датчик
движения

Рис. П3.1. Схема подключения умного света

40

Программный код

Листинг П3.1

#define SensorPin 8

int Relay1=3;

int Relay2=4;

int Relay3=5;

int Relay4=6;

void setup()

{

pinMode(SensorPin, INPUT);

pinMode(Relay1, OUTPUT);

pinMode(Relay2, OUTPUT);

pinMode(Relay3, OUTPUT);

pinMode(Relay4, OUTPUT);

}

void loop()

{

int SensorVal = digitalRead(SensorPin);
// Если обнаружили движение, включаем последовательно реле

if(pirVal == HIGH)

{
digitalWrite(Relay1, HIGH); // Включаем реле 1
delay(4000); // Задаем паузу 4 секунды

// между включением первого реле и второго
digitalWrite(Relay2, HIGH); // Включаем реле 2
delay(4000); // Задаем паузу 4 секунды

// между включением второго реле и третьего
digitalWrite(Relay3, HIGH); // Включаем реле 3
delay(4000); // Задаем паузу 4 секунды

// между включением третьего реле и четвертого
digitalWrite(Relay4, HIGH); // Включаем реле 4
delay(4000); // Задаем паузу 4 секунды

// после включения всех реле
digitalWrite(Relay1, LOW); // Выключаем реле 1
delay(4000); // Задаем паузу 4 секунды

// между выключением первого реле и второго
digitalWrite(Relay2, LOW); // Выключаем реле 2
delay(4000); // Задаем паузу 4 секунды

// между выключением второго реле и третьего
digitalWrite(Relay3, LOW); // Выключаем реле 3
delay(4000); // Задаем паузу 4 секунды

// между выключением третьего реле и четвертого
digitalWrite(Relay4, LOW); // Выключаем реле 4

}

}

41

Порядок подключения

1. Подключите выводы GND и 5V контроллера Arduino к контактным дорожкам
платы прототипирования (рис. П3.1).

2. Подключите ножки модуля реле VCC и GND к соответствующим контактным
дорожкам платы прототипирования, а ножки INT1, INT2, INT3, INT4 — к пин 3,
пин 4, пин 5, пин 6 контроллера Arduino соответственно.

3. Подключите ножки датчика движения GND и VCC к соответствующим контакт-
ным дорожкам платы прототипирования, а контакт OUT — к пин 8 контроллера
Arduino.

Подключите также осветительные приборы к реле и установите датчик движения
таким образом, чтобы он сканировал наличие движения — например, возле вход-
ной двери. В результате, когда вы придете домой, лампы станут загораться в задан-
ной последовательности с заданными интервалами.

Проект 4

Секретный код

В этом проекте мы реализуем включение реле по двум хлопкам в ладоши.

Необходимые компоненты

• Контроллер Arduino Uno • Датчик звука
• Плата для прототипирования • Провода
• Модуль реле 4х

Программный код

Листинг П4.1

int Count=0; // Переменная для хранения значений с датчика звука
int Relay=0; // Переменная для хранения состояния реле
void setup()
{
pinMode (3,OUTPUT);
}
void loop() {
Count=analogRead(4); // Читаем значение
if(Count > 200 && Count< 600)
{
delay(250); // Ожидаем 250 миллисекунд для повторного хлопка
for(int t=0;t<=500;t++)
{
delay(1);

42

Схема подключения

~220B
Модуль реле 4х

Датчик звука
Рис. П4.1. Схема подключения проекта «Секретный код»

Count=analogRead(4); // Считываем значение
if(Count > 200 && Count< 600)

{ // Меняем состояние реле
Relay=!Relay; // Выходим из цикла после второго хлопка
break; // Пауза
delay(200);

}

}

}

digitalWrite(3,Relay);

}

43

Порядок подключения

1. Подключите выводы GND и 5V контроллера Arduino к контактным дорожкам
платы прототипирования (рис. П4.1).

2. Подключите ножки GND и VCC датчика звука к GND и 5V на плате прототипи-
рования, а ножку OUT — к пин A4 контроллера Arduino.

3. Подключите ножки модуля реле VCC и GND к соответствующим контактным
дорожкам платы прототипирования, а ножку INT1 — к пин 3 контроллера Ar-
duino.

Теперь вы можете по двойному хлопку включать и выключать устройство, подклю-
ченное к реле.

Проект 5

Умный дом

В проекте «Умный дом» мы сделаем устройство, которое будет охранять ваш дом,
позаботится об освещении и напомнит вам проветрить комнату, если в ней станет
душно.

Необходимые компоненты

• Контроллер Arduino Uno
• Плата для прототипирования
• Модуль реле 4х
• Датчик звука
• Датчик газа
• Датчик движения
• Фоторезистор
• Пьезоизлучатель
• Резистор 10 кОм
• Провода

44

Схема подключения ~220B

вентилятор звонок освещение
~220B

Модуль реле 4х

VCC S GND

Пьезоизлучатель Датчик звука Датчик газа Датчик движения
Рис. П5.1. Схема подключения проекта «Умный дом»

45

Программный код

int Count=0; // Переменная для хранения значений с датчика звука
int Relay=0; // Переменная для хранения состояния реле
int photosensorpin = A3;
unsigned int photosensorValue = 0;
int pirpin = 9;
int SoundPin = 8;
const int analogGasPin = A5;
int GasSensorValue = 0;
void setup()
{
pinMode(3,OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);

pinMode(pirpin, INPUT);
Serial.begin(9600);
}
void loop()
{

GasSensorValue = analogRead(analogGasPin);
if (GasSensorValue >= 600) // Необходимо откалибровать датчик
// под ваши ощущения
{
digitalWrite(6, LOW); // Включаем вентилятор
}
else
{
digitalWrite(6, HIGH); // Выключаем вентилятор
}

int pirVal = digitalRead(pirpin);
if(pirVal == HIGH)
{
digitalWrite(5,LOW);
tone(SoundPin, 1700);
delay(100);
tone(SoundPin, 600);

46

}
else
{

digitalWrite(5,HIGH);
noTone(10);
}

photosensorValue = analogRead(photosensorpin);

Serial.println(photosensorValue, DEC); // Вывод данных

// с фоторезистора (0-1024)

if(photosensorValue<300) digitalWrite(4, LOW); // Включаем

else digitalWrite(4, HIGH); // Выключаем

Count=analogRead(A4); // Считываем значение с датчика звука

if(Count > 200 && Count< 600)

{

delay(250); // Ожидаем 250 миллисекунд

for(int t=0;t<=500;t++)

{

delay(1);
Count=analogRead(A4); // Считываем значение
if(Count > 200 && Count< 600)

{ // Меняем состояние реле
Relay=!Relay; // Выходим из цикла после второго хлопка
break; // Пауза
delay(200);
}

}

}

digitalWrite(3,Relay);

}

Порядок подключения

1. Подключите выводы GND и 5V контроллера Arduino к контактным дорожкам
платы прототипирования (рис. П5.1).

2. Подключите ножки GND и VCC датчика звука к GND и 5V на плате прототипи-
рования, а ножку OUT — к пин A4 контроллера Arduino.

3. Подключите ножки модуля реле VCC и GND к GND и 5V на плате прототипиро-
вания, а ножки INT1, INT2, INT3, INT4 — к пин 3, пин 4, пин 5, пин 6 контроллера
Arduino соответственно.

47

4. Подключите ножки VCC и GND датчика движения к 5V и GND на плате прототи-
пирования, а ножку OUT — к пин 9 контроллера Arduino.

5. Установите фоторезистор на плате прототипирования, одну его ножку подклю-
чите к 5V, а другую — к GND и, через резистор 10 кОм, к пин А3 контроллера
Arduino.

6. Подключите ножки 5V и G датчика газа к 5V и GND на плате прототипирования,
а ножку А — к пин А5 контроллера Arduino.

7. Подключите ножки G и V пьезоизлучателя к GND и 5V на плате прототипирова-
ния, а ножку S — к пин 8 контроллера Arduino.

После загрузки программного кода ваше устройство при срабатывании датчика
движения подаст звуковой сигнал и зажжет лампочку, подключенную к реле, — для
отпугивания нежелательных гостей. Если фоторезистор устройства будет плохо
освещен, то сработает другое реле, к которому можно подключить освещение ва-
шей комнаты. А датчик звука включит третье реле, которое по двойному хлопку
зажжет в вашей комнате альтернативное освещение.

Поздравляем Вас с прохождением всех уроков и проектов набора
«Умный дом»! Мы надеемся, что собранное устройство сделает
ваш дом удобней и комфортней. Помните, что возможности Arduino
велики — вы можете реализовывать практически любые задуманные
проекты, а также расширять функционал «Умного дома» с помощью
других модулей.

48


Click to View FlipBook Version