THE ARDUINO
7 < D 3 < B= @ A 5 C 7 2 3
:3/@< 3:31B@=<71A 0G ;/97<5
10 AWESOME PROJECTS
0G 0@7/< 6C/<5
/<2 23@39 @C<03@5
SAN FRANCISCO
АRDUINO
ДЛЯ ИЗОБРЕТАТЕ ЛЕЙ
ОБУЧЕНИЕ ЭЛЕКТРОНИКЕ
НА 10 ЗАНИМАТЕЛЬНЫХ ПРОЕКТАХ
БРАЙАН ХУАНГ, ДЕРЕК РАНБЕРГ
Санкт-Петербург
«БХВ-Петербург»
2018
УДК 004
ББК 32.973.26
Х98
Хуанг, Б.
Х98 Аrduino для изобретателей. Обучение электронике на 10 занимательных проектах: Пер. с англ. /
Б. Хуанг, Д. Ранберг. — СПб.: БХВ-Петербург, 2018. — 288 с.: ил.
ISBN 978-5-9775-3972-2
В книге подробно рассмотрено 10 занимательных проектов с платой Arduino Uno (светофор, свето-
диодный экран, светочувствительный ночник, мини-теплица, мобильный робот, миниатюрное пианино
и др.). Описаны принципы работы и взаимодействие различных электронных компонентов, чтение прин-
ципиальных и монтажных схем, создание и тестирование прототипов с помощью беспаечной макетной
платы. Показано, как собирать электрические схемы, разрабатывать программный код и создавать гото-
вые конструкции. В каждом проекте приведены советы по его модификации и расширению возможно-
стей. Приведены шаблоны корпусов и деталей, а также пошаговые фотографии их изготовления и сборки.
На сайте издательства находятся исходные коды примеров из книги, шаблоны для конструкций проектов,
а также коды для дальнейшего экспериментирования с проектами.
Для радиолюбителей
УДК 004
ББК 32.973.26
Группа подготовки издания:
Руководитель проекта Игорь Шишигин
Зав. редакцией Екатерина Капалыгина
Компьютерная верстка Людмилы Гауль
Оформление обложки Марины Дамбиевой
© 2017 by SparkFun Electronics. Title of English-language original: The Arduino Inventor's Guide: Learn Electronics by Making 10 Awesome
Projects, ISBN 978-1-59327-652-2, published by No Starch Press. Russian-language edition copyright © 2018 by BHV. All rights reserved.
© 2017 by SparkFun Electronics. Название английского оригинала: The Arduino Inventor's Guide: Learn Electronics by Making 10 Awesome
Projects, ISBN 978-1-59327-652-2, опубликовано No Starch Press. Издание на русском языке © 2018 by BHV. Все права защищены.
«БХВ-Петербург», 191036, Санкт-Петербург, Гончарная ул., 20.
ISBN 978-1-59327-652-2 (англ.) © 2017 by SparkFun Electronics
ISBN 978-5-9775-3972-2 (рус.) © Перевод на русский язык, оформление. ООО «БХВ-Петербург», ООО «БХВ», 2018
ПОСВЯЩАЕТСЯ
ЛИНДСИ ДАЙМОНД — ТЫ НАШ ЗАМЕЧАТЕЛЬНЫЙ РУКОВОДИТЕЛЬ И НАСТАВНИК!
ВСЕЙ КОМАНДЕ ИНТЕРНЕТ-МАГАЗИНА SPARKFUN!
ВСЕМ ЛЮБИТЕЛЯМ САМОДЕЛЬНЫХ КОНСТРУКЦИЙ И ИЗОБРЕТАТЕЛЯМ,
КОТОРЫХ МЫ СМОГЛИ ВДОХНОВИТЬ НА ТВОРЧЕСТВО!
О КОМПАНИИ SPARKFUN ELECTRONICS
Интернет-магазин розничной торговли SparkFun Electronics производит и продает устрой-
ства и компоненты, которые используются во многих любительских проектах, промыш-
ленных образцах и даже на Международной космической станции.
Мысль создать такую компанию пришла в 2003 году студенту Колорадского университета
(г. Боулдер) Натану Зайдлю (Nathan Seidle), когда он сжег печатную плату. В те времена до-
стать печатную плату было весьма трудной задачей. Для этого нужно было передать по
факсу номер своей кредитной карточки в компанию, находящуюся в другой стране, после
чего ожидать получения заказанной платы в течение шести-восьми недель. Натан решил,
что он может сделать этот процесс более удобным, и задался целью создать компанию по
поставке электронных деталей, устройств, компонентов и пр. Так и появилась компания
SparkFun.com, которая в настоящее время предлагает свыше 3 тыс. различных наимено-
ваний деталей всевозможных параметров и функционала для использования в цифро-
вых электронных проектах. От базовых плат Arduino до модулей GPS — все это, вместе со
всей необходимой документацией, доступно для покупки любому желающему в магазине
SparkFun.
Отдел образования компании SparkFun разрабатывает курсы и учебные планы для студен-
тов профильных специальностей, а также предлагает программы повышения профессио-
нального уровня для преподавателей, занятых в сфере электроники и информационных
технологий. Этот отдел является зачинателем многих инициатив в области вычислитель-
ной техники и любительских проектов, которые с успехом применяются в обучении.
Дополнительная информация о компании SparkFun и ее отделе образования доступна
в Интернете на сайтах https://www.sparkfun.com/ и http://www.sparkfuneducation.com/.
ОБ АВТОРАХ
В одно время Брайан Хуанг (Brian Huang) и Дерек Ранберг (Derek Runberg) работали учите-
лями. Брайан преподавал физику в средней школе и одновременно увлекался робототех-
никой, а Дерек работал учителем технического образования в восьмилетней школе — его
любимым коньком было добиться от учеников максимального использования ими своих
возможностей.
Они пришли к своему сегодняшнему статусу разными путями, разнятся и их подходы
к изучению программирования и электроники, их преподавательская философия и их точ-
ки зрения на процесс познания учениками преподаваемых им дисциплин, так что нельзя
сказать, что взгляды их всегда совпадают. Тем не менее они надеются, что совместно на-
писанная ими книга сослужит вам хорошую службу и поможет встать на путь поиска при-
ключений в мире изобретательства.
Комментарий от Брайана
Хотя у меня формальное инженерное образова- обучения. Как говорит Дерек, Arduino — просто
ние (я изучал электротехнику в институте), мое используемое в наших проектах устройство более
образование в основном концентрировалось на высокого уровня, чем раньше. Это было давно из-
теории, эмулировании и моделировании, и меня вестно преподавателям и студентам Программы
никогда не учили, как пользоваться паяльником, комплексной телекоммуникации Нью-йоркского
выполнять токарные работы или создавать реаль- университета. Точно так же помещение электрон-
ные проекты. По окончании института по будням ного устройства в корпус или просто ограничение
я работал инженером, а по выходным волонтер- его видимости каким-либо образом немедленно
ствовал в Музее науки штата Миннесота (Science меняет способ взаимодействия с ним. Например,
Museum of Minnesota). Именно работая в музее, я мячик для настольного тенниса, которым накры-
и обнаружил в себе любовь к преподаванию. Мне вают светодиод проекта, рассеивает его свет, что
была предоставлена возможность вдохновлять немедленно воздействует на способ нашего вос-
детей на любопытство, задавать вопросы и раз- приятия всего проекта. Своеобразное рассеи-
мышлять о мире вокруг нас. Мой опыт работы в вание света через оболочку мячика и одновре-
музее побудил меня изменить карьеру — полу- менное ее подсвечивание воздействуют на наши
чить степень магистра в области обучения и стать эмоции совсем по-другому, чем простой горящий
учителем физики в средней школе. светодиод на макетной плате.
Мы с Дереком дополняем Мы основательно продумали, каким образом сде-
опыт и квалификацию друг лать изучение электроники и программирования
друга. Эта книга является доступными для всех. Мы надеемся, что проекты
квинтэссенцией нашего из этой книги помогут вам открыть в себе талант
опыта преподавания и ис- изобретателя.
пользования Arduino для
VIII Об авторах
Комментарий от Дерека
В отличие от Брайана, у меня нет формального Многие проекты, представленные в этой книге,
образования по части электроники или програм- основаны непосредственно на моем опыте обу-
мирования — все мои знания в этих областях чения Arduino. Мои ученики изучали програм-
получены путем самообразования. Я был учите- мирование и электронику
лем технического образования в восьмилетней в силу необходимости —
школе, перед которым поставили задачу создать чтобы иметь возможность
программу такого образования для XXI столетия. реализовать свои идеи, а
Составной частью моего видения этой програм- не потому, что я, их учи-
мы была электроника, и на протяжении трех лет тель, заставлял их делать
модуль Arduino, а затем язык Processing для его это. Я надеюсь, что мой
программирования заняли центральное место в вклад в эту книгу завоюет
моем классе. Я изучил Arduino с тем, чтобы предо- уважение моих учеников
ставлять своим ученикам доступ к технологии, ко- и предоставит электрони-
торой они могли бы управлять и с помощью кото- ку и программирование в
рой могли бы самостоятельно создавать проекты. таком формате, который
Мне пришлось также самому изучить электронику пробудит также и ваше во-
и программирование, чтобы иметь возможность ображение.
обучать своих учеников этим предметам.
О техническом редакторе английского издания
Даниэль Хайенш (Daniel Hienzsch) является осно-
вателем компании Rheingold Heavy, которая
предоставляет учебные материалы студентам и
любителям-электронщикам. Раньше он в течение
20 лет работал в сфере информационных техно-
логий, включая 10 лет в качестве ИТ-директора
инвестиционного банка.
Дан — страстный приверженец образова-
ния, и он создал компанию Rheingold Heavy,
имея целью обеспечить общество любителей-
электронщиков материалами, которых так не
хватало ему самому, когда начинал заниматься
электроникой и информационными технология-
ми. Он также сертифицированный инструктор по
плаванию с аквалангом.
Об авторах IX
ОГЛАВЛЕНИЕ
Введение ............................................................................................................... XXI
О чем эта книга?.................................................................................................. XXII
Почему Arduino?................................................................................................. XXII
Чем эта книга отличается от других? ................................................................ XXIII
Необходимые компоненты и материалы ........................................................ XXIII
Необходимые инструменты.............................................................................. XXV
Компьютер.......................................................................................................... XXV
Состав книги .......................................................................................................XXVI
Интернет-ресурсы ...........................................................................................XXVII
Распространяем информацию: делимся результатами своей работы.........XXVII
Основы электроники................................................................................................ 1
Электричество: ток, проводимость и основная терминология .......................... 2
Что такое электричество? ..................................................................................... 2
Типы электрического тока......................................................................................3
Что такое цепь?.......................................................................................................3
Закон Ома .............................................................................................................. 4
Модель электрического тока: вода в трубе......................................................... 4
Принципиальные схемы ......................................................................................... 4
Создание прототипов схем.................................................................................... 5
Дискретные компоненты и адаптерные платы .................................................... 7
Аналоговая и цифровая электроника .................................................................... 8
Что такое микроконтроллер? ................................................................................ 8
Оглавление XI
Проект 1. Начало работы с Arduino................................................................. 11
Необходимые компоненты .................................................................................. 12
О плате Arduino ................................................................................................... 12
Доступная аппаратная платформа...................................................................... 12
Плата RedBoard компании SparkFun................................................................... 13
Установка Arduino IDE и драйверов.................................................................... 14
Установка под Windows ...................................................................................... 15
Установка под OS X ............................................................................................. 16
Установка под Linux ............................................................................................. 18
Краткая экскурсия по среде разработки Arduino ............................................. 18
Изменение настроек по умолчанию ...................................................................19
Первое подключение Arduino к компьютеру ....................................................20
Указание подключенной платы в IDE .................................................................. 21
Выбор последовательного порта COM ............................................................. 22
Программа «Здравствуй, мир!» для Arduino ..................................................... 23
Поиск и устранение основных проблем с Arduino........................................... 24
Анатомия скетча Arduino ..................................................................................... 25
Ключевые элементы скетча ................................................................................. 26
Функция setup().................................................................................................... 27
Функция loop() ..................................................................................................... 28
Наш первый аппаратный компонент.................................................................. 29
Идем дальше… ..................................................................................................... 30
Экспериментируем с кодом............................................................................... 30
Модифицируем схему ........................................................................................ 30
Сохранение скетча ............................................................................................... 31
Проект 2. Домашний светофор..........................................................................33
Необходимые компоненты, инструменты и материалы ................................... 34
Электронные компоненты .................................................................................. 34
Прочие инструменты и материалы ....................................................................35
Новый компонент: резистор ............................................................................... 36
Создаем прототип светофора ............................................................................. 38
XII Оглавление
Подключаем красный светодиод ........................................................................38
Подаем питание на макетную плату ................................................................... 39
Добавляем желтый и зеленый светодиоды........................................................ 41
Программируем светофор.................................................................................. 41
Проверьте параметры среды разработки........................................................ 41
Создаем переменные для номеров выводов.................................................... 41
Создаем функцию setup() ................................................................................... 43
Создаем функцию loop()..................................................................................... 43
Загружаем скетч в Arduino ................................................................................. 44
Делаем светофор автономным .......................................................................... 45
Создаем корпус для светофора........................................................................... 46
Делаем картонный корпус.................................................................................. 47
Делаем линзы для светофора ............................................................................. 50
Делаем затенители .............................................................................................. 51
Вставляем светодиоды и подключаем Arduino ................................................. 52
Идем дальше… ..................................................................................................... 53
Экспериментируем с кодом................................................................................53
Модифицируем схему......................................................................................... 54
Проект 3. Девятипиксельный анимационный дисплей ................................. 57
Необходимые компоненты, инструменты и материалы ................................... 58
Электронные компоненты ...................................................................................58
Прочие инструменты и материалы ................................................................... 59
Создаем прототип девятипиксельного дисплея .................................................60
Программируем девятипиксельный дисплей.....................................................62
Пользовательские функции ................................................................................. 62
Разрабатываем графику....................................................................................... 64
Тестовый скетч ..................................................................................................... 65
Создаем функцию для отображения фигуры X.................................................. 66
Создаем функцию для отображения фигуры O................................................. 67
Отображаем фигуры X и O................................................................................. 68
Создаем корпус для девятипиксельного дисплея ..............................................70
Делаем картонный корпус.................................................................................. 70
Подключаем электронику к дисплею................................................................. 72
Оглавление XIII
Создаем пиксельную анимацию .......................................................................... 74
Планируем последовательность анимации....................................................... 74
Создаем пользовательские функции .................................................................. 75
Корректируем функцию loop() .......................................................................... 76
Идем дальше… ..................................................................................................... 77
Экспериментируем с кодом............................................................................... 77
Модифицируем схему......................................................................................... 77
Проект 4. Измеритель скорости реакции.......................................................79
Необходимые компоненты, инструменты и материалы ................................... 80
Электронные компоненты .................................................................................. 80
Прочие инструменты и материалы ................................................................... 81
Новый компонент: кнопка .................................................................................... 82
Принцип работы кнопок ..................................................................................... 82
Использование резисторов с кнопками.............................................................83
Создаем прототип измерителя скорости реакции ............................................ 83
Программируем измеритель скорости реакции............................................... 85
Создаем функцию setup() ....................................................................................85
Создаем функцию loop()..................................................................................... 86
Тестируем скетч измерителя скорости реакции .............................................. 89
Следующий раунд................................................................................................ 90
Добавляем аркадный элемент............................................................................ 90
Полный код скетча для измерителя скорости реакции .................................... 93
Создаем корпус для измерителя скорости реакции ......................................... 94
Вырезаем отверстия в корпусе .......................................................................... 95
Собираем электронную часть ............................................................................ 95
Декорируем корпус............................................................................................ 97
Идем дальше… ..................................................................................................... 98
Экспериментируем с кодом............................................................................... 98
Модифицируем схему......................................................................................... 99
XIV Оглавление
Проект 5. Разноцветный ночник......................................................................101
Необходимые компоненты, инструменты и материалы .................................102
Электронные компоненты ................................................................................102
Прочие инструменты и материалы ................................................................. 103
Два новых компонента .......................................................................................104
Трехцветный (RGB) светодиод..........................................................................104
Фоторезистор.................................................................................................... 105
Создаем прототип ночника................................................................................107
Собираем схему делителя напряжения ........................................................... 108
Подключаем трехцветный светодиод ..............................................................109
Тестируем ночник с простым смешением цветов ...........................................110
Программируем ночник ....................................................................................111
Подготовка к проверке уровня освещенности .............................................. 112
Управляем ночником в зависимости от уровня освещенности..................... 112
Предотвращение ложных срабатываний ........................................................ 113
Рекалибровка ночника ...................................................................................... 113
Создаем другие цвета.........................................................................................114
Создание аналоговых сигналов посредством ШИМ ...................................... 114
Смешение цветов посредством функции analogWrite()................................. 115
Определение значений цветов RGB с помощью цветоподборщика............116
Ночник с задаваемым цветом........................................................................... 117
Создаем абажур для ночника.............................................................................117
Делаем картонный корпус................................................................................ 117
Вставляем в абажур электронные компоненты .............................................. 121
Да будет свет! .................................................................................................... 122
Идем дальше… ...................................................................................................122
Экспериментируем с кодом............................................................................. 122
Модифицируем корпус..................................................................................... 123
Оглавление XV
Проект 6. Балансирная балка...........................................................................125
Необходимые компоненты, инструменты и материалы .................................126
Электронные компоненты ................................................................................ 126
Прочие инструменты и материалы ................................................................. 127
Новые компоненты ............................................................................................. 128
Потенциометр ................................................................................................... 128
Серводвигатель.................................................................................................. 129
Создаем прототип схемы управления балансирной балкой ..........................131
Программа для управления балансирной балкой ........................................... 133
Проверяем работоспособность машинки...................................................... 134
Финальная версия скетча для игры в балансирную балку .............................. 135
Собираем игру в балансирную балку...............................................................137
Вырезаем детали................................................................................................ 137
Собираем собственно балансирную балку .................................................... 138
Собираем основание и прикрепляем сервомашинку ...................................140
Финальная сборка ............................................................................................. 142
Идем дальше… ...................................................................................................146
Экспериментируем со схемой и кодом .......................................................... 146
Модифицируем проект ..................................................................................... 146
Проект 7. Миниатюрная настольная теплица ...............................................149
Необходимые компоненты, инструменты и материалы .................................151
Электронные компоненты ................................................................................ 151
Прочие инструменты и материалы ................................................................. 153
Новые компоненты ............................................................................................. 153
Датчик температуры TMP36.............................................................................. 153
Электромотор .................................................................................................... 153
NPN-транзистор ................................................................................................ 154
Применяем системный подход ......................................................................... 154
Собираем систему управления температурой ................................................ 155
Измерение температуры с помощью термодатчика TMP36.......................... 156
Подключаем датчик температуры .................................................................... 156
Программируем снятие показаний датчика температуры............................. 157
XVI Оглавление
Собираем схему сервомашинки для управления окном.................................162
Разрабатываем код для управления сервомашинкой ......................................163
Собираем схему для управления электродвигателем вентилятора................165
Разрабатываем код для управления электродвигателем вентилятора........... 168
Изолируем влияние электродвигателя............................................................. 168
Собираем корпус теплички ...............................................................................169
Крепим сервомашинку для управления окном ............................................... 171
Изготавливаем тягу ............................................................................................ 172
Устанавливаем крышу........................................................................................ 172
Собираем контейнер для электродвигателя ................................................... 174
Подключаем электронику ................................................................................. 175
Идем дальше… ...................................................................................................176
Экспериментируем с размерами теплицы...................................................... 176
Модифицируем код ........................................................................................... 176
Проект 8. Робот-рисовальщик ......................................................................... 179
Необходимые компоненты, инструменты и материалы .................................180
Электронные компоненты ................................................................................ 180
Прочие инструменты и материалы ................................................................. 181
Два новых компонента ....................................................................................... 182
Интегральная схема Н-мостового драйвера электродвигателя.................... 182
Электрический двигатель с редуктором.......................................................... 184
Создаем прототип схемы управления Рисоботом........................................... 185
Разрабатываем код для управления Рисоботом ...............................................186
Создаем пользовательскую функцию............................................................... 188
Расчищаем код................................................................................................... 188
Подключаем второй электродвигатель.............................................................189
Проверяем работу обоих электродвигателей.................................................190
Создаем платформу для Рисобота.....................................................................191
Тестирование и отладка .................................................................................... 194
Танец робота — делаем повороты и рисуем узоры ...................................... 195
Оглавление XVII
Идем дальше… ...................................................................................................199
Экспериментируем с кодом.............................................................................199
Модифицируем код ...........................................................................................200
Бонус ..................................................................................................................200
Проект 9. Хронометрист автогонок .............................................................. 203
Необходимые компоненты, инструменты и материалы .................................204
Электронные компоненты ................................................................................204
Прочие инструменты и материалы .................................................................206
Новый компонент: жидкокристаллический дисплей........................................207
Принцип работы хронометриста автогонок ...................................................208
Собираем схему с ЖКД .....................................................................................208
Подключаем питание ЖКД................................................................................209
Настройка контраста ЖКД................................................................................209
Подключаем линии данных и управления........................................................210
Проверяем работу ЖКД ................................................................................... 211
Добавляем остальные компоненты ................................................................... 213
Программа для хронометриста автогонок ...................................................... 215
Быстрая проверка............................................................................................... 218
Собираем гоночный комплекс .......................................................................... 218
Собираем стартовую башню ........................................................................... 219
Собираем и вставляем стартовые ворота....................................................... 221
Изготавливаем гоночную трассу...................................................................... 222
Монтируем фоторезистор................................................................................ 223
Тестирование и отладка .................................................................................... 224
Идем дальше… ................................................................................................... 225
Экспериментируем с проектом ....................................................................... 225
Подключение ЖКД через модуль IIC/I2C......................................................... 227
Модифицируем предыдущие проекты ............................................................ 229
Проект 10. Электронное мини-пианино ..........................................................231
Необходимые компоненты, инструменты и материалы ................................. 232
Электронные компоненты ................................................................................ 232
Прочие инструменты и материалы ................................................................. 233
XVIII Оглавление
Новые компоненты ............................................................................................. 234
Мембранный потенциометр............................................................................. 234
Пьезоэлектрический зуммер............................................................................ 234
Собираем схему ................................................................................................. 235
Программируем электронное пианино ........................................................... 237
Тестируем работу зуммера .............................................................................. 237
Создаем конкретные ноты ................................................................................ 239
Создаем звуки посредством мембранного потенциометра ......................... 239
Играем по нотам................................................................................................ 241
Собираем мини-пианино ................................................................................... 243
Идем дальше… ................................................................................................... 245
Экспериментируем с кодом............................................................................. 245
Модифицируем схему и код ............................................................................. 245
Бонусный проект: цифровая труба .................................................................. 246
ПРИЛОЖЕНИЕ. Дополнительные практические сведения
по электронике..................................................................................................... 249
Электрические измерения с помощью мультиметра.......................................250
Функциональные части мультиметра ............................................................... 250
Определение неразрывности электроцепи ................................................... 250
Измерение сопротивления .............................................................................. 251
Измерение напряжения .................................................................................... 252
Измерение тока ................................................................................................. 252
Работа с паяльником ........................................................................................... 253
Разогревание паяльника .................................................................................... 254
Советы по улучшению навыков пайки .............................................................. 254
Очистка паяльника ............................................................................................. 256
Советы по работе с паяльником....................................................................... 256
Дополнительные инструменты для паяльных работ .........................................256
«Третья рука» ..................................................................................................... 256
Флюс-аппликатор .............................................................................................. 257
Косичка для удаления припоя ........................................................................... 257
Вакуумный отсос................................................................................................ 258
Полосатые резисторы........................................................................................ 258
Оглавление XIX
ВВЕДЕНИЕ
Приветствуем вас, уважаемые чита-
тели. Эта книга научит вас работать
с электронными компонентами, про-
граммировать электронные устрой-
ства и создавать на этой основе все-
возможные интересные и полезные
проекты. Любой человек может быть
изобретателем, и наша книга пошаго-
во проведет вас по последовательно-
сти проектов, в которых обычные де-
тали сочетаются с мощностью модуля
Arduino, помогая вам вдохновиться на
собственные изобретения.
О чем эта книга?
О чем эта книга?
Эта книга основана на платформе Arduino (www. например, Instructables, hackster.io или YouTube,
arduino.cc), включающей микроконтроллерную содержат тысячи проектов и идей их создания.
плату, которую можно запрограммировать для Все это демонстрирует, насколько много есть ма-
управления источниками света, измерения тем- стеров на все руки, использующих Arduino.
пературы, реагирования на освещение, связи со
спутниками глобальной системы позициониро- Совместно с компанией SparkFun Electronics
вания1 и, вообще, для того чтобы с ее помощью мы всячески стараемся побудить людей экспе-
создать много разных полезных и заниматель- риментировать, играть и возиться с обычными
ных устройств. Язык программирования и среда бытовыми устройствами, добавляя в них новые
разработки для платы, которые используются в электронные компоненты или модифицируя
книге, также являются компонентами платформы уже имеющиеся. Такая деятельность называет-
Arduino. ся хакерством. Чтобы вы могли успешно ею за-
ниматься, наша книга предоставит вам основ-
Эта платформа представляет собой мощный ин- ные знания по электронике и программиро-
струмент, с помощью которого любители элек- ванию. Мы также надеемся, что она вдохновит
тронного творчества могут оснащать свои про- вас на создание чего-то нового и уникального
екты средствами управления. Поиск в Интернете из обычных материалов, которые можно найти
по ключевым словам проекты Arduino возвраща- у каждого в доме.
ет миллионы результатов. Веб-сайты, такие как,
1 GPS, от англ. Global Positioning System.
Почему Arduino?
Вы можете задаться вопросом, почему из суще- Платформа Arduino проявила себя настолько хо-
ствующих десятков разных микроконтроллеров рошо, что сообщество любителей-электронщиков
и инструментальных платформ мы создаем еще также решило взять ее на вооружение. Этому спо-
один набор проектов для Arduino? собствовало несколько факторов: низкая цена,
качественная документация, открытое аппарат-
Ответ на этот вопрос заключается в том, что ное и программное обеспечение и т. п. Но мы счи-
целью создания платформы Arduino было ис- таем, что основной причиной такой популярности
пользование ее не любителями самодельного Arduino стала легкость обучения работе на этой
электронного творчества или инженерами про- платформе. Платформа Arduino — это открытый
мышленных предприятий, а студентами-проек- для любого желающего портал в мир созидания
тировщиками из итальянского города Ивреа, — и изобретательства. Проекты из этой книги пред-
в качестве обучающей платформы, чтобы они назначены для энтузиастов, влекомых желанием
могли создавать функционирующие проекты без познания и мотивируемых исходной сущностью
необходимости изучать в течение нескольких лет платформы Arduino — быстрым и легким вопло-
теоретическую и практическую электротехнику, щением идеи в работающий проект людьми, не
электронику и математику. Эта платформа была обладающими глубокими познаниями в электро-
создана таким образом, чтобы свести к минимуму нике.
время от «ничего» к «круто!» — то есть от замысла
к работающему проекту, — для людей без техни-
ческого образования и опыта.
XXII Введение
Чем эта книга отличается от других?
Чем эта книга отличается от других?
Многие книги по программированию похожи на материала, чтобы реализовывать простые про-
справочные пособия — они сразу же начинаются екты, и постепенно переходит к материалу для
с написания кода или рассмотрения понятий из реализации более сложных и требовательных
области электроники без предоставления каких проектов.
бы то ни было начальных сведений. В результате
большую часть времени они пылятся на полке, Мы также знаем, что есть много людей, имеющих
пока вам не понадобится информация об опреде- некий опыт работы с электроникой, которые хо-
ленной команде или забытом понятии. тят испытать что-то неизведанное, — возможно,
новый подход к старому проекту. Например, най-
Эта книга иная. Ее целью является обучение новым ти не использованный ими ранее способ мигания
знаниям посредством создания занимательных, светодиодом. Многие из наших проектов можно
интересных и практических проектов. Сложность принять в качестве начальных для дальнейшего
и трудность проектов повышается от предыду- экспериментирования и модифицирования или
щего проекта к последующему. Они дадут вам от- как прототипы, на основе которых затем можно
веты на старые как мир вопросы: зачем я изучаю собрать проекты из лучших компонентов или с
это? Почему это важно? Почему это должно меня более привлекательным оформлением. В общем,
беспокоить? эта книга направлена на активных эксперимен-
таторов, которые без колебаний принимаются за
Мы предполагаем, что вы читаете эту книгу, по- решение задачи, уделяя этому максимальное вни-
тому что горите желанием познания нового или мание.
же ищете материалы, которыми хотите поделить-
ся с другими. Будь вы интересующийся новичок- Мы рекомендуем реализовывать проекты при чте-
любитель, учитель, библиотекарь или родитель, нии книги, последовательно обучаясь путем при-
эта книга станет для любого, кто хочет познавать, обретения практического опыта. Наши проекты
практическим руководством, а не справочным хорошо продуманы с тем, чтобы дать вам необхо-
пособием, которое будет в основном стоять на димые знания как по использованию инструмен-
полке. тов, так и по программированию и сборке схем,
а также по созданию вспомогательных конструк-
Чтобы начать работать с Arduino, вам не нужен ни- ций из картона, проволоки и прочих обыденных
какой опыт программирования или работы с элек- материалов, которые без труда можно найти в лю-
троникой. Мы заранее предполагаем, что вначале бом доме. Удовольствие от обучения заключается
вы не знаете ничего в этих областях, и опасаетесь в том, чтобы весь процесс был игрой, во что эта
броситься в них сломя голову. Не беспокойтесь! книга и старается его превратить.
Эта книга предоставляет достаточно вводного
Необходимые компоненты и материалы
В проектах этой книги в основном использу- магазинах. Кроме того, в проектах задействова-
ются электронные компоненты из нашего ба- ны также несколько компонентов, не входящих
зового продукта — «Набора изобретателя в этот набор, которые также можно приобрести
SparkFun» (SparkFun Inventor’s Kit, KIT-13969), в виде отдельного набора (www.sparkfun.com/
но все эти компоненты можно свободно при- NoStarchArduino).
обрести и по отдельности во многих интернет-
Введение XXIII
Необходимые компоненты и материалы
Списки необходимых компонентов приведены материалы: упаковочный картон, открыточный
в табл. В.1 и В.2. В начале каждого проекта также картон, соломинки для питья, бумажные тарелки
приводится список необходимых для него компо- и т. п. По мере реализации электронных проектов
нентов и материалов. с использованием таких материалов, вы станете
смотреть на все эти бытовые предметы и материа-
Кроме того, для создания корпусов проектируе- лы по-новому.
мых устройств используются многие обычные
Таблица В.1. Компоненты «Набора изобретателя Таблица В.2. Дополнительные компоненты,
SparkFun», используемые в проектах книги используемые в проектах книги (не входящие
в «Набор изобретателя SparkFun»)
К-во № компонента Описание К-во № компонента Описание
Плата SparkFun RedBoard 1 PRT-12043 Макетная мини-плата
1 DEV-13975 (или другая плата, совместимая
30 PRT-13870 Короткие (10 см) проволочные
с Arduino) перемычки со штекерами
на обоих концах
1 CAB-11301 Кабель Mini-B USB
1 PRT-12002 Беспаечная макетная плата Проволочные перемычки
со штекером на одном конце
30 PRT-11026 Проволочные перемычки 10 PRT-09140 и гнездом на другом
20 COM-12062 Разные светодиоды Разные светодиоды
(дополнительные)
1 C0M-09264 Светодиод RGB (общий катод) 20 C0M-12062
20 C0M-11508 Резисторы, 10 кОм Фоторезистор
(дополнительный)
20 COM-11507 Резисторы, 330 Ом 1 SEN-09088
2 COM-10302 Кнопочные переключатели 1 PRT-09835 Держатель
для 4-х элементов АА
1 COM-08588 Диод
1 COM-09806 Потенциометр, 10 кОм 4 PRT-09100 Элементы АА
1 COM-13689 Транзистор NPN 2N222 1 ROB-13845 Драйвер электродвигателя —
Н-мост TB6612FNG
1 SEN-09088 Фоторезистор Электродвигатели
для любительских проектов
1 SEN-10988 Датчик температуры TMP36 2 R0B-13302 с редуктором
1 SEN-08680 Потенциометр SoftPot, 50 мм
1 COM-07950 Пьезоэлектрический зуммер Резиновое колесико для
использования с редукторным
1 LCD-00709 ЖК-дисплей, 16×2 символа 2 ROB-13259 электродвигателем
1 R0B-09065 Миниатюрный серводвигатель Миниатюрный ползунковый
переключатель
1 ROB-11696 Электродвигатель 1 C0M-00102
Набор совместимых компонентов
Для выполнения проектов, описанных в книге, в оригинальном издании рекомендова-
но использовать набор компонентов SparkFun Inventor's Kit (https://www.sparkfun.com/
products/14265). Если у вас его нет, предлагаем обратить внимание на наборы издательства
«БХВ-Петербург» (http://www.bhv.ru/books/kits), специально подготовленные для книг по
электронике, выпускаемых издательством. С их помощью вы можете выполнить эксперименты
и проекты в том числе и из этой книги.
XXIV Введение
Необходимые инструменты
Необходимые инструменты
Все, что из инструментов вам потребуется для очень ограниченным бюджетом, и мы всегда со-
реализации проектов книги — это ножницы, средотачиваемся на использовании наиболее
макетный нож и клеевой пистолет. Но это не экономных материалов — таких как картон, бума-
означает, что можно использовать только эти ин- га, дерево и отходы пластмассы и металлов.
струменты. Если у вас есть доступ к лазерному ре-
заку, используйте его. Само собой, если у вас че- Большинство проектов этой книги предназначе-
шутся руки распечатать проект на 3D-принтере, ны для реализации в виде прототипов, которые
полный вперед! Проекты в книге предназначены можно легко разобрать и использовать их ком-
для реализации с использованием упаковочно- поненты в других проектах. Но если вам сильно
го и открыточного картона, но вместо этих мате- понравится какой-либо проект, и вы захотите
риалов можно использовать любой подходящий сделать его постоянно действующим, его соеди-
материал и способ для его обработки. нения можно выполнить пайкой (соответствую-
щие инструкции приведены в разд. «Работа
Вы не должны ничего для реализации проек- с паяльником» приложения). Инструменты и рас-
тов покупать, если вы не желаете делать это. ходные материалы для пайки при создании про-
Собственно говоря, в качестве материала для не- тотипов электронных устройств сравнительно
скольких проектов из этой книги можно исполь- недороги — их можно приобрести как в магази-
зовать и саму книгу. Будет просто замечательно, не SparkFun (www.sparkfun.com), так и в любом
если вы так и сделаете. Как бывшим учителям, нам ближайшем магазине хозяйственных товаров или
знакома ситуация, когда приходится работать с инструментов.
Компьютер
Наконец, для программирования Arduino вам по- На момент подготовки этой книги поддерж-
требуется компьютер и набор специальных про- ка устройств на iOs и Android обеспечивается
граммных инструментов. Работа с программным только посредством бета-версии программ-
обеспечением для Arduino под силу любому ком- ного обеспечения Arduino, которое еще нахо-
пьютеру средних возможностей. Для компьюте- дится в процессе разработки и тестирования.
ров на ОС Windows подойдут операционные си- Вы можете попробовать использовать это про-
стемы Windows XP, Vista, Windows 7, 8/8.1, 10 или граммное обеспечение, но оно может оказать-
более новая. Для компьютеров Mac самая послед- ся неработоспособным, а если и будет работать,
няя версия программного обеспечения Arduino то ненадежно.
требует операционную систему OS X 10.7 Lion или
более новую. Если у вас компьютер с более или Процесс установки и конфигурирования про-
менее стандартной версией Linux, есть хорошие граммного обеспечения для компьютеров
шансы, что для них также найдется подходящая Windows, Mac и Linux рассматривается пошагово
версия программного обеспечения Arduino. в первом проекте.
Введение XXV
Состав книги
Состав книги ● Проект 5. Разноцветный ночник. Здесь
делитель напряжения и датчик освещенности
Книга содержит 10 практических проектов, а также используются для определения уровня осве-
краткое изложение основ электроники и приложе- щенности и активирования в зависимости от
ние, в котором рассматриваются основы работы с этого уровня многоцветного светодиода.
паяльником, а также даются другие полезные со-
веты. Проекты начинаются с простого мигающе- ● Проект 6. Балансирная балка. В проек-
го светодиода и с каждым следующим проектом те используется серводвигатель под управ-
постепенно обрастают разными электронными лением внешнего устройства для создания
компонентами, концепциями программирования настольной игры с балансирной балкой.
и слоями сложности конструирования. Каждый
проект содержит отдельные разделы по монтажу ● Проект 7. Миниатюрная настольная теп-
электрических соединений, программированию и лица. В проекте создается модель теплицы,
сборке, что позволяет досконально разобраться с которая определяет температуру, включает
каждым из этих аспектов проекта. Проекты завер- вентилятор и открывает вентиляционное
шаются разделом Идем дальше, в котором излага- отверстие, если температура в ней станет
ются идеи по экспериментированию с проектом слишком высокой. Отрабатывается здесь
и его модификации. Не забывайте, что эти проекты также управление электродвигателем с по-
следует использовать в качестве отправной точки мощью транзистора.
для своих разработок, а не как конечную цель.
● Проект8.Робот-рисовальщик.Проектпред-
● Основы электроники. Прежде чем при- ставляет собой введение в робототехнику
ступить к работе с проектами, вам рекомен- с использованием Н-моста для регулиро-
дуется познакомиться с основами электри- вания частоты оборотов электродвигателя.
чества и электроники и понятиями, которые Здесь осуществляется сборка простого ро-
используются в этой книге. бота, которого можно запрограммировать на
рисование различных фигур.
● Проект 1. Начало работы с Arduino. В про-
екте описывается установка программного ● Проект 9. Хронометрист автогонок. В про-
обеспечения и даются основы приемов сбор- екте рассматривается создание гоночной
ки и программирования схем на основе по- трассы для игрушечных машин, которая за-
шаговых инструкций при реализации про- писывает их скорость. В конструкции исполь-
екта мигающего светодиода. зуются сервопривод, светочувствительный
датчик и жидкокристаллический дисплей.
● Проект 2. Домашний светофор. Здесь иссле- Проект настолько занимательный, что его
дуется работа с макетной платой и рассмат- можно подарить на Рождество!
ривается управление несколькими компо-
нентами одновременно на примере модели ● Проект 10. Миниатюрное пианино. Проект
светофора из трех светодиодов. помогает создавать с помощью Arduino му-
зыку, используя мембранный потенциометр в
● Проект 3. Девятипиксельный анимаци- качестве клавиатуры. Здесь также исследуется
онный дисплей. Здесь производится рас- пьезоэлектрический зуммер и рассматрива-
ширение проекта светофора из проекта 2 ется использование функции tone(). Хорошая
до девяти светодиодов в матрице размером возможность открыть в себе пианиста!
3×3, а также изучается создание пользова-
тельских функций Arduino. ● Приложение. Дополнительные практи-
ческие сведения по электронике. Здесь
● Проект 4. Измеритель скорости реак- приводятся полезные советы по использо-
ции. В проекте описывается использование ванию мультиметра, паяльника и определе-
кнопки и светодиода при создании игры для нию номинального значения резисторов по
измерения скорости реакции. цветным полосам.
XXVI Введение
Интернет-ресурсы
Интернет-ресурсы
Все ресурсы, необходимые для проектов этой Ресурсы организованы в виде ZIP-файла, который
книги, доступны для загрузки, использования и можно загрузить по адресу: www.nostarch.com/
модифицирования. Они содержат коды всех при- arduinoinventor.
меров, которые приводятся и обсуждаются в кни-
ге, шаблоны для конструкций проектов, а также Если вы застопоритесь на каком-либо аспекте того
коды для дальнейшего экспериментирования с или иного проекта или у вас возникнут проблемы
проектами и их модифицирования. с его работой, можно всегда обратиться к этим
файлам за справкой для решения проблемы.
Электронный архив
Все необходимые для работы с проектами книги ресурсы вы также найдете в сопровождаю-
щем книгу электронном архиве, который можно загрузить с FTP-сервера издательства «БХВ-
Петербург» по ссылке: ftp://ftp.bhv.ru/9785977539722.zip или со страницы книги на сайте
www.bhv.ru.
Распространяем информацию:
делимся результатами своей работы
Компания SparkFun, будучи поставщиком аппарат- @sparkfunedu и @nostarch. Мы также предлагаем для
ных и электронных компонентов, прилагает также общего доступа через Интернет галерею проек-
большие усилия, чтобы быть открытым источни- тов InventorSpace, доступную по адресу: https://
ком информации, — это один из основных прин- invent.sparkfun.com. Если у вас есть идея или
ципов, на котором она основана. Разрабатывая проект, которыми вы хотите поделиться, вы може-
проекты, мы любим делиться своими идеями те опубликовать его в этой галерее. Мы надеемся,
и файлами проектов с нашим сообществом, что- что эта книга вдохновит вас начать делать что-то
бы все желающие могли воспользоваться нашей поразительное.
базой знаний в своем следующем проекте. Мы бы
хотели, что бы вы также исповедовали такой под- Наконец, вы можете также отправить нам свои
ход и делились с другими информацией о своих проекты, их фотографии или общие замеча-
проектах. Покажите их своим друзьям или опу- ния и вопросы электронной почтой по адресу:
бликуйте в Интернете. В последнем случае это [email protected]. Время от
можно сделать во многих местах. времени мы выбираем некоторые замечательные
проекты и фотографии для главной публикации
Например, поделиться своей работой можно в нашем блоге. Кто знает, возможно мы попросим
в социальных сетях Twitter, Instagram или Face- у вас разрешения использовать один из ваших
book. Пометьте опубликованные проекты тегами проектов в нашей следующей книге.
Введение XXVII
ОСНОВЫ ЭЛЕКТРОНИКИ
Эта глава дает общие сведения об элек-
тричестве, электронике и схемотехни-
ке для тех, у кого нет никакого опыта
работы в этих сферах знания или этот
опыт очень небольшой. Если вы почув-
ствуете, что некоторые представлен-
ные в этом проекте темы вам более или
менее знакомы, можете пропускать их
и переходить к тем темам, о которых
вы хотите знать более подробно, или
вообще перейти сразу к проекту 1.
Электричество: ток, проводимость и основная терминология
Тем не менее, даже если вы и не абсолют- пособием, предназначенным дать вам
ный новичок в электронике, мы рекомен- представление об основных ее понятиях и
дуем вам прочитать эту главу, просто что- терминологии. Для тех же, кто хочет полу-
бы освежить свои знания. И пусть она и не чить более глубокие знания по электриче-
представляет собой полное руководство ству, электронике и схемотехнике, в конце
по электронике (этой области посвящены этой главы приведен список рекомендуе-
целые тома монографий и учебные курсы), мой литературы.
можете считать ее удобным справочным
Электричество:
ток, проводимость и основная терминология
Электричество — это очень странный зверь. Во Перемещение зарядов в веществе называется
многих отношениях оно предсказуемо, но време- током. Величина тока измеряется в единицах, на-
нами может быть весьма коварным. Если просто зываемых амперами (А). Для удобства на практике
посмотреть определение электричества в учеб- могут использоваться и более мелкие единицы —
нике, то, скорее всего, оно не много скажет вам например, миллиамперы (мА).
о том, что такое электричество, как оно работает
и, самое главное, как его можно использовать. Примечание
В данной главе предоставляются основы всего
этого. Условно электрическим током называет-
ся перемещение положительных зарядов.
Что такое электричество? И хотя в действительности ток создается
перемещением электронов, которые несут
Чтобы ответить на этот вопрос, прежде всего нуж- отрицательный заряд, принято считать, что
но разобраться в строении атома. Атомы являются ток протекает от положительного источника
основными составляющими единицами всего, что к отрицательному.
находится вокруг нас, и нас самих. Состоят они из
протонов, нейтронов и электронов. Протоны и За исключением нескольких явлений, таких как
нейтроны образуют ядро атома, а электроны вра- молния, сварочная дуга или разряд статического
щаются вокруг ядра по более или менее круговым электричества, электрический ток обычно нель-
орбитам. Протоны и, соответственно, ядро атома зя наблюдать непосредственно. Даже яркий свет
обладают положительным зарядом, а электро- молнии является лишь следствием изменения со-
ны — отрицательным. Нейтроны заряда не несут. стояния молекул воздуха, вызываемого прохож-
Количество электронов типичного атома равно дением электричества через них.
количеству его протонов, поэтому атом имеет
нейтральный заряд. Заряды перемещаются в веществе под воздей-
ствием внешней электрической силы и при нали-
Под воздействием тех или иных сил несущие за- чии пути, по которому они могут перемещаться.
ряды электроны могут срываться со своих орбит Сила электрического воздействия создается раз-
и перемещаться внутри вещества. Такое переме- ностью потенциалов, которая обычно называет-
щение зарядов и представляет собой вид энергии, ся напряжением. Напряжение и является силой,
называемый электричеством. Молния, которую которая, в конечном счете, заставляет заряды
наверняка когда-либо видел каждый из нас, явля-
ется наглядной демонстрацией перемещения за-
рядов между облаками или облаками и землей.
2 Основы электроники
Электричество: ток, проводимость и основная терминология
двигаться. Величина напряжения измеряется
в вольтах (В). Для общей информации: типичные
электрические батареи имеют напряжение в диа-
пазоне от около 1,5 до 12 В. Батарея с напряже-
нием в 12 В заставляет перемещаться большее
количество зарядов, чем батарея с напряжением
в 1,5 В.
Типы электрического тока +
Существуют два основных типа электрического Рис. 1. Простая цепь постоянного тока
тока: постоянный и переменный. Самый распро-
страненный пример переменного тока — элек- лампочку или электродвигатель) к отрицательно-
тричество в линиях электропередачи, которое му его выводу. На рис. 1 показана простая элект-
заходит к нам в дом, в частности, через розетки. рическая цепь, состоящая из батарейки, свето-
Переменный ток отлично подходит для выработ- диода и резистора.
ки электричества (например, электростанциями),
передачи его на дальние расстояния (например, Но чтобы заряды (электроны) могли перемещать-
от электростанции к нам в дом) и для приведения ся по цепи, она должна быть из материала, про-
в действие мощных электрических устройств (на- водящего электричество, или, иными словами,
пример, электродвигателей и обогревателей). Но обладать электрической проводимостью. Про-
для работы большинства электронных приборов водимость того или иного материала зависит от
(телевизоры, компьютеры и т. п.) переменный ток вещества, из которого он состоит. Притом, что не-
не нужен — им требуется постоянный ток, который которые материалы обычно считаются абсолют-
они получают с помощью специального устрой- ными проводниками или непроводниками (изо-
ства (обычно встроенного в вилку, вставляющую- ляторами), проводимость большинства материа-
ся в розетку), преобразовывающего переменный лов варьируется в широком диапазоне. Иными
ток в постоянный. Более глубокое рассмотрение словами, заряды перемещаются через некоторые
переменного и постоянного тока выходит за рам- материалы более свободно, чем через другие.
ки этой книги. В завершении скажем только, что
для питания проектов в этой книге используется Это можно сравнить с ездой на машине по доро-
электричество постоянного тока. гам с разным покрытием. На гладкой асфальти-
рованной дороге можно ехать намного быстрее,
Что такое цепь? чем по проселочной или вообще по пересечен-
ной местности. Таким образом, как дороги могут
Даже когда на заряды воздействует электриче- иметь разное покрытие, позволяющее развивать
ская сила, понуждающая их перемещаться от бо- разную скорость перемещения по ним (разную
лее высокого потенциала к более низкому, между автомобильную проводимость, так сказать), так же
этими потенциалами необходим путь какого-либо и разные материалы имеют различную электри-
рода. Путь, по которому заряды перемещаются от ческую проводимость, позволяющую более или
более высокого (положительного: «+») потенциа- менее свободное перемещение электрических
ла батареи к более низкому (отрицательному: «–») зарядов через них. Величина, обратная проводи-
ее потенциалу, называется электрической цепью. мости, называется сопротивлением и выражает
Таким образом, электрическая цепь представляет степень затруднения материалом перемещения
собой замкнутый путь, проходящий от положи- по нему электрических зарядов.
тельного вывода источника питания через по-
требитель тока (например: светодиод, резистор,
Основы электроники 3
Принципиальные схемы
Закон Ома Молекулы воды, перемещающиеся по трубе,
представляют в нашей модели поток зарядов
Как вы уже, наверное, догадались, ток, напряже- (ток). Закрывая или открывая кран, мы можем ме-
ние и сопротивление взаимосвязаны. Эта взаи- нять давление воды в трубе, — повышение давле-
мосвязь называется законом Ома и выражается ния воды ускоряет ее течение по трубе. Давление
следующей математической формулой: воды в трубе подобно напряжению в электриче-
ской цепи — повышение напряжения увеличи-
U=I×R вает ток. Труба представляет собой последнюю
часть аналогии — пережав ее (уменьшив ее диа-
В этом уравнении буква U обозначает напряже- метр), мы создадим сопротивление протеканию
ние, I — ток, а R — сопротивление. (Не стоит пу- воды. Такое повышение сопротивления замедлит
гаться, что мы сейчас начнем углубляться в мате- протекание воды в трубе — возвращаясь к нашей
матические дебри — это всего лишь одно из трех модели, понизит величину тока в электрической
уравнений, которые вы увидите в этой книге.) цепи.
Модель электрического тока: Эта модель хорошо описывает электрический ток,
вода в трубе но мы не хотим собрать всю эту систему резервуа-
ров, труб и кранов, чтобы вода только пролива-
Чтобы лучше понять прохождение тока по элек- лась на землю (разве что собираемся поливать
трической цепи, представим себе трубу, по кото- газон). Нам нужно, чтобы она делала какую-то
рой протекает вода. Открывая кран, мы позволя- полезную работу. В случае электрических цепей
ем воде из резервуара протекать по трубе и вы- мы используем устройства, которые преобразуют
текать из другого ее конца (рис. 2). электричество в полезную работу, — например,
в свечение лампочки, вращение электродвига-
Рис. 2. Модель электрического тока: вода в трубе теля или звучание зуммера. Устройство, которое
преобразовывает электрическую
энергию в другой вид энергии, на-
зывается нагрузкой. То, что элек-
трическую энергию можно преоб-
разовывать в световую энергию
с помощью лампочки, открыл
Томас Эдисон. В этой книге мы бу-
дем занимать такими и многими
другими преобразованиями.
Принципиальные схемы
Представление электрической цепи рисунка- Принципиальная схема показывает, какие компо-
ми ее компонентов выглядит красиво, но это не ненты содержит электрическая цепь и каким обра-
очень эффективно, особенно когда цепь состо- зом они соединяются между собой1. Приведенная
ит из большого количества элементов. Поэтому на рис. 3 принципиальная схема в действитель-
на практике цепь представляют упрощенными
символами ее компонентов (рис. 3), а само та- 1 Принципиальные схемы в этой книге отображаются со-
кое представление называют принципиальной гласно американскому стандарту IEEE (Institute of Electrical
схемой. and Electronics Engineers, Институт инженеров электро-
техники и радиоэлектроники).
4 Основы электроники
Создание прототипов схем
Рис. 3. Принципиальная схема электрической цепи, состоя- Рис. 4. Некоторые схемные символы стандарта IEEE
щей из батарейки, светодиода и резистора
ности представляет ту же самую электрическую Формат схемных символов стандарта IEEE пред-
цепь, что и на рис. 1. Прямые линии здесь — это назначен для быстрого представления компонен-
провода, а компоненты обозначены соответству- тов схем с использованием очень простых линий
ющими символами. На рис. 4 показано несколько и символов. Он признается и применяется для
распространенных схемных символов, которые представления и распространения принципиаль-
используются в этой книге. ных схем во всем мире.
Создание прототипов схем
По мере изучения проектов этой книги, вы буде- некоторые из них или добавить новые. Этот про-
те создавать и проверять множество вариантов цесс называется разработкой прототипа. Для
их разработки. При сборке схемы может пона- разработки прототипов электронных устройств
добиться перегруппировать компоненты, убрать обычно используется беспаечная макетная пла-
та (рис. 5).
Беспаечная макетная плата представляет собой
пластмассовый прямоугольник с множеством от-
верстий. Эти отверстия расположены решеткой
с расстоянием между ними в 0,1 дюйма (2,54 мм).
Диаметр отверстий таков, чтобы выводы боль-
шинства электронных компонентов плотно вхо-
дили в них.
Рис. 5. Прозрачная беспаечная макетная плата с горизон- Ориентация макетной платы
тальными контактными рядами и вертикальными шинами
питания Расположите макетную плату вертикально
(книжная ориентация), чтобы буквы на ее
концах были размещены правильным обра-
зом. При такой ориентации макетной платы
горизонтальные группы из пяти гнезд назы-
ваются рядами, а вертикальные секции по
сторонам платы — столбцами.
Основы электроники 5
Создание прототипов схем
Под отверстиями расположены небольшие за- Форм и размеров беспаечных макетных плат
жимы, сделанные из мягкого металла (рис. 6). Эти доступно несколько, но большинство их будут
зажимы электрически соединяют компоненты, иметь вертикальные столбцы гнезд на внешних
вставленные в отверстия в том же самом ряду. сторонах. Эти столбцы гнезд называются шина-
Таким образом, отпадает необходимость соеди- ми питания, и каждые пять гнезд в них соедине-
нять компоненты, скручивая вместе их выводы. ны зажимом, так же, как и гнезда рядов (рис. 7).
Обратите внимание на то, что зажимы перекры- Столбцы шин питания часто обозначаются сим-
вают только пять соседних отверстий в ряду. волами «+» и «–», указывающими полярность
Макетная плата разделяется на две половины подключаемого питания, а также маркируются
вертикальной выемкой, и зажимы рядов правой красным и синим цветом соответственно.
стороны не соединены с зажимами рядов левой.
Проекты этой книги собираются на беспаечных ма-
кетных платах, чтобы в случае ошибки можно было
бы быстро исправить ее, а также чтобы можно
было усовершенствовать готовый проект, добавив
к нему дополнительные необходимые компоненты
(на рис. 8 показан вариант использования макет-
ной платы для создания прототипа схемы, содер-
жащей восемь светодиодов).
Рис. 6. Внутреннее устройство беспаечной макетной платы Для сборки крупных и сложных проектов реко-
(справа) и крупный план металлического зажима (слева) мендуется иметь в наличии несколько беспаеч-
ных макетных плат, чтобы схему можно было со-
брать по частям, соединив их затем вместе. Это
позволяет собрать и протестировать каждую
часть проекта по отдельности, что намного легче,
чем тестирование всего проекта.
Рис. 7. На тыльной стороне беспаечной макетной платы вид- Рис. 8. Сборка схемы на макетной плате
ны горизонтальные контактные ряды и вертикальные шины
питания
6 Основы электроники
Дискретные компоненты и адаптерные платы
Дискретные компоненты и адаптерные платы
Существуют буквально сотни, если не тысячи Рис. 9. Примеры дискретных компонентов: резисторы (сле-
разнообразных электронных компонентов. Под ва), конденсатор (посередине) и светодиод (справа)
компонентами в нашем случае мы подразуме-
ваем дискретные электронные детали, т. е. самые
элементарные составляющие электронных схем.
В качестве примеров дискретных компонентов
можно привести резистор, конденсатор и свето-
диод (рис. 9).
С другой стороны, адаптерная плата представ-
ляет собой электронную схему из нескольких
компонентов, собранную на отдельной плате, —
это облегчает установку ее на макетной плате
проекта. Таким образом, адаптерные платы по-
могают значительно ускорить процесс создания
прототипов.
На рис. 10 приведен пример сложного дискретного Рис. 10. Дискретный миниатюрный акселерометр (слева)
компонента — интегральной схемы датчика аксе- и адаптерная плата, на которой он установлен (справа). Обра-
лерометра (P/N ADXL345 компании Analog Devices) тите внимание на пролуженные насквозь отверстия с левой
и его адаптерной платы, предлагаемой компани- стороны адаптерной платы
ей SparkFun. Размеры самой интегральной схемы
всего лишь 5×3 мм! Она оснащена миниатюрными Рис. 11. Адаптерная плата ADXL345 с контактными штырьками
металлическими выводами, выполняющими ту же
функцию, что и длинные металлические выводы Обратите внимание, что каждое контактное от-
более традиционных дискретных компонентов, — верстие адаптерной платы обозначено названи-
таких как, например, резисторы. Но выводы этой ем подключенного к нему вывода интегральной
интегральной схемы настолько малого размера, схемы акселерометра. Таким образом, адаптерная
что подсоединить монтажные провода к ним прак- плата позволяет сразу же использовать ее в бес-
тически невозможно. Поэтому она поставляется паечной макетной плате, без необходимости тра-
в составе адаптерной платы, где эти выводы сое- тить время на решение проблемы, каким образом
динены дорожками с пролуженными насквозь от- подключить дискретный компонент.
верстиями на краю платы. Расстояние между этими
отверстиями составляет точно 0,1 дюйма (2,54 мм),
в результате чего они точно совмещаются с гнезда-
ми на беспаечной макетной плате. Поскольку от-
верстия пролужены, в них можно впаять монтаж-
ные провода. Кстати, вместо проводов можно впа-
ять в эти отверстия контактные штырьки (рис. 11),
и тогда эту плату будет удобно вставлять в беспаеч-
ную макетную плату. (Не озабочивайтесь, если вы
никогда раньше не работали с паяльником. В разд.
«Работа с паяльником» приложения вы найдете
всю информацию, необходимую для выполнения
монтажа пайкой.)
Основы электроники 7
Аналоговая и цифровая электроника
Аналоговая и цифровая электроника
Рассмотрев понятия тока, напряжения, сопротив- Устройства цифровой электроники, такие как
ления, электронных компонентов и схем, можно микроконтроллер и микропроцессор, включают
перейти к обсуждению двух типов электроники: и выключают другие устройства в зависимости от
аналоговой и цифровой. Эти два типа электрони- запрограммированных в них условий. Устройства
ки взаимосвязаны, и для понимания работы элек- аналоговой электроники обычно плавно изменя-
тронных схем в целом необходимо разобраться ют ток, напряжение или сопротивление, чтобы до-
с основными принципами работы каждого из этих биться того же результата.
двух типов.
Оба типа устройств имеют свои преимущества и
Аналоговая электроника работает со значениями недостатки, но в современной электронике нель-
токов и напряжений, которые варьируются плавно зя обойтись только одним из них. Например, для
в пределах определенного диапазона. Например, работы цифрового термометра на микроконтрол-
контроллер плавного изменения яркости освеще- лере необходим целый ряд аналоговых компо-
ния является аналоговым устройством. Аналого- нентов.
вое значение может быть нулевым, максимальным
или каким угодно между этим двумя крайностя-
ми. С другой стороны, цифровые величины имеют
только два значения: нулевое и максимальное или
включенное и выключенное.
Что такое микроконтроллер?
Микроконтроллер — это небольшой компью-
тер, который можно программировать, загру-
жая в него набор инструкций, называемый про-
граммой. Микроконтроллеры применяются для
автоматизации простых операций — например,
управления температурой воздуха в помещениях
или поливкой газона.
В проектах этой книги используется микрокон-
троллерная плата RedBoard компании SparkFun,
которая на 100% совместима с платой Arduino
Uno. Обе эти платы показаны на рис. 12.
Рис. 12. Микроконтроллерная плата RedBoard компании В любой день вы в среднем можете использовать
SparkFun (вверху слева) и плата Arduino Uno (внизу справа) 15–20 микроконтроллеров, даже не подозревая
об этом. Микроконтроллеры управляют вашей
кофеваркой, будильником, микроволновкой и
другими бытовыми устройствами (более-менее
современными, конечно, а не доставшимися вам
по наследству от бабушки). Ваш автомобиль мо-
жет использовать от 5 до 10 микроконтроллеров
для управления системой зажигания, тормозами,
8 Основы электроники
Что такое микроконтроллер?
Примечание
Вы узнаете больше о плате Arduino, включая ее возможности и как ее программировать, в про-
цессе реализации проектов. А сейчас вам будет достаточно знать, что микроконтроллер — это
программируемый кремниевый «мозг», который значительно облегчает превращение идеи об
автоматизировании какого-либо аспекта нашей жизненной деятельности в прототип электрон-
ного устройства, реализующего эту автоматизацию.
аудиосистемой и т. п. Современный мир практи- Мы надеемся, что представленное вам здесь крат-
чески стоит на микроконтроллерах. Эта книга кое введение в основы электроники дало вам до-
поможет вам научиться использовать это обстоя- статочно знаний для работы с дальнейшим мате-
тельство для своей выгоды. риалом книги. Мы также надеемся, что вы найдете
этот материал интересным, увлекательным и по-
лезным. Итак, вперед, к первому проекту!
ДОПОЛНИТЕЛЬНЫЕ ИСТОЧНИКИ
ПО ОСНОВАМ ЭЛЕКТРИЧЕСТВА И ЭЛЕКТРОНИКИ
Если вы желаете узнать больше об электриче- Читателям в России могут быть полезны и такие
стве и электронике, мы рекомендуем вам озна- издания на русском языке:
комиться со следующими книгами:
● Платт Ч. Электроника для начинающих,
● Basic Electricity by the Bureau of Naval Person- 2-е изд. — СПб.: БХВ-Петербург, 2017. —
nel (Основы электричества. Учебник Бюро 416 с.
флотского персонала), Dover Publications,
1970. ● Блум Дж. Изучаем Arduino: инструменты
и методы технического мастерства. — СПб.:
● Arduino Workshop by John Boxall (Джон БХВ-Петербург, 2015. — 336 с.
Баксол. Мастерская для Arduino), No Starch
Press, 2013. ● Ревич Ю. В. Занимательная электроника,
5-е изд. — СПб.: БХВ-Петербург, 2018.
● Getting Started in Electronics by Forrest M.
Mims III (Форрест М. Мимс III. Первые шаги ● Монк С., Шерц П. Электроника. Теория и
в электронике), Master Publishing, 2003. практика. — СПб.: БХВ-Петербург, 2018. —
1168 с.
● Practical Electronics for Inventors, 4th edition
by Paul Scherz and Simon Monk (Поль Шерц,
Саймон Монк. Практическая электроника
для изобретателей), McGraw-Hill Education,
2016.
Основы электроники 9
О плате Arduino
2
32 Проект 1
ДОМАШНИЙ СВЕТОФОР
Первым вашим большим шагом в сто-
рону управления миром посредством
встроенных электронных устройств
была настройка среды разработки
Arduino и создание в ней скетча для
мигания светодиодом. Что ж, это был
большой шаг для Вас лично, но на длин-
ной дороге к овладению Arduino про-
ект с одним светодиодом — всего лишь
маленький шажок. Следующим шагом
в этом направлении будет расшире-
ние нашего первого проекта и созда-
ние скетча и аппаратной инфраструк-
туры для работы с тремя мигающими
светодиодами.
Необходимые компоненты, инструменты и материалы
Если вы готовы к этому, тогда приступим к разработке светофора для регулировки оживленного
движения в коридоре вашего дома (рис. 2.1).
Рис. 2.1. Проект «Светофор» (Stoplight) в сборе Рис. 2.2. Электронные компоненты для проекта «Светофор»
Необходимые компоненты, инструменты и материалы
Для этого проекта не требуется ничего сложно- ● светодиоды (COM-12062): красный (1 шт.),
го. Все электронные компоненты для него вхо- желтый (1 шт.), зеленый (1 шт.);
дят в стандартный состав набора изобретателя
Inventor’s Kit компании SparkFun, за исключением ● резисторы 330 Ом (COM-08377 или COM-
позиций, отмеченных звездочкой «*». Если вы ис- 11507 для пакета, содержащего 20 шт.), 3 шт.;
пользуете свой набор компонентов или собирае-
те их по отдельности, приведенный далее список ● проволочные перемычки со штекерами на
необходимых электронных компонентов поможет обоих концах (PRT-11026);
вам определиться.
● проволочные перемычки со штекером на
Электронные компоненты одном конце и гнездом на другом (PRT-
09140)*;
Для реализации этого проекта вам потребуются
следующие компоненты (рис. 2.2): ● может пригодиться: держатель для четырех
батареек типа АА (PRT-09835)* (на рис. 2.2 не
● плата RedBoard компании SparkFun (DEV- показан).
13975), или плата Arduino Uno (DEV-11021),
или любая другая совместимая с Arduino Примечание
плата, 1 шт.;
Компоненты, обозначенные звездочкой «*»,
● кабель Mini-B USB (CAB-1101) или кабель USB, не входят в состав стандартного комплек-
идущий в комплекте с вашей платой, 1 шт. та изобретателя SparkFun Inventor’s Kit, но
(на рис. 2.2 не показан); предлагаются в отдельном дополнительном
комплекте или могут быть приобретены
● беспаечная макетная плата (PRT-12002), 1 шт.; вами по отдельности.
34 Проект 2
Необходимые компоненты, инструменты и материалы
Прочие инструменты и материалы
Чтобы соорудить для электронной схемы корпус,
чтобы он выглядел похожим на реальный свето-
фор (см. рис. 2.1), вам потребуются дополнитель-
ные инструменты (рис. 2.3) и материалы (рис. 2.4).
Далее приводится краткий перечень этих инстру-
ментов и материалов:
● карандаш; Рис. 2.3. Инструменты, рекомендуемые для проекта «Светофор»
● макетный нож;
● металлическая линейка;
● плоскогубцы (бокорезы);
● инструмент для снятия изоляции;
● клей (клеевой пистолет или клей для модели-
рования);
● могут пригодиться: дрель и сверло диаметром
4,75 мм;
● может пригодиться: паяльник;
● может пригодиться: припой;
● может пригодиться: держатель «Третья рука»1
(на рис. 2.3 не показана);
● гофрированный картон (приблизительно
30×30 см) или картонная коробка;
● мячик для настольного тенниса (2 шт.);
● шаблон корпуса (см. рис. 2.15 далее в этом
проекте).
1 См. https://ru.wikipedia.org/wiki/Третья_рука.
Примечание
Для работы с проектами этой книги будет
весьма полезно иметь хороший чистый кар-
тон. Рекомендуется приобрести несколь-
ко листов картона в магазине товаров для
рукоделия.
Рис. 2.4. Материалы, рекомендуемые для проекта «Светофор»
Домашний светофор 35
Новый компонент: резистор
Новый компонент: резистор
В предыдущем проекте (см. проект 1) мы под- полосами и одной коричневой (см. рис. 2.5), а ре-
ключили внешний резистор к плате Arduino на- зистор сопротивлением 10 кОм — коричневой,
прямую, но в большинстве случаев светодиод черной и оранжевой полосами. Четвертая по-
лучше подключать через резистор, чтобы огра- лоса на резисторе обозначает погрешность его
ничить протекающий через него ток. Резисторы действительного значения по отношению к но-
(рис. 2.5) используются практически во всех минальному. При этом серебряная четвертая
электронных устройствах и также потребуются полоска означает, что действительное значение
для этого проекта. сопротивления резистора будет в пределах 5%,
а золотистая — в пределах 10% погрешности от
Если вернуться к аналогии, представляющей указанного номинального. Для проектов этой
электрический ток как воду, протекающую по тру- книги не требуется большая точность, поэтому
бе, то резистор можно представить в виде суже- для резисторов далее будет указываться только
ния в трубе, которое замедляет протекание воды их номинальное значение, что будет достаточно
(см. разд. «Модель электрического тока: вода при любой погрешности.
в трубе» на с. 4). То есть резисторы ограничивают
силу электрического тока. Некоторые электронные компоненты, включая
светодиоды, можно повредить, пропуская по ним
Сопротивление измеряется в омах (и на схемах слишком большой ток. Чтобы защитить такие ком-
иногда представляется греческой буквой «оме- поненты от повреждения, протекающий через
га»: Ω), разноцветные полосы на резисторах (см. них ток ограничивают с помощью резисторов.
рис. 2.5) обозначают номинальное значение со- Поэтому, в целях повышения уровня безопасно-
противления резистора. Описание системы раз- сти наших проектов, мы всегда будем подключать
ноцветных полос для обозначения номинального токоограничивающие резисторы последователь-
сопротивления резисторов и таблица значений но светодиодам, чтобы ограничить протекающий
полос приведены в разд. «Полосатые резисто- по ним ток до безопасного уровня и избежать их
ры» приложения. Но для целей этой книги нам перегорания или даже, в худшем случае, взрыва.
нужно определить только два разных значения (Да, слишком большой ток может действительно
резисторов: 330 Ом и 10 кОм. Резистор сопротив- заставить компоненты буквально взрываться.)
лением 330 Ом обозначается двумя оранжевыми
Рис. 2.5. Резисторы Проект 2
36
Новый компонент: резистор
ПОЧЕМУ В ПРОЕКТЕ «СВЕТОФОР» ИСПОЛЬЗУЮТСЯ РЕЗИСТОРЫ
ЗНАЧЕНИЕМ 330 ОМ?
Средний светодиод красного цвета может вы- резистора для рассеивания 10 мА при напря-
держать нагрузку по току величиной около жении 3 В можно рассчитать с помощью зако-
20 мА. Обычно эти данные указываются в со- на Ома (помните, что 10 мА = 0,01 А):
провождающей компонент документации.
Чтобы защитить светодиод от токов больших, U = I × R, откуда:
чем допустимые, последовательно с ним под-
ключается резистор. Но откуда мы знаем, что Но значение 300 Ом не является стандарт-
нужно использовать резистор сопротивлени- ным значением резистора. Самым близким
ем 330 Ом? стандартным значением будет 330 Ом, и это
вполне приемлемо. Использование резисто-
Включенные выводы Arduino выдают напря- ра, подключенного последовательно в цепи
жение величиной 5 В. Для включения све- светодиода, обеспечит долгое время беспро-
тодиодов разного цвета требуются немного блемной работы светодиода. Поскольку этот
разные напряжения обычно в диапазоне резистор ограничивает ток, проходящий че-
от 2,0 до 3,5 В. Так, для включения красного рез светодиод, он и называется токоограни-
светодиода требуется 2 В, что делает 3 В (при чивающим резистором.
напряжении питания 5 В) лишними. Эти 3 В Если у вас есть под рукой резисторы разных
рассеиваются в виде тепла на резисторе или значений, попробуйте использовать их со
на любом другом компоненте, подключен- светодиодом и наблюдайте, что происходит.
ном последовательно в цепи. Рекомендуемой Резисторы с более высоким сопротивлением
практикой является ограничение тока свето- будут ограничивать ток в большей степени,
диода до примерно половины максимально а с меньшим — в меньшей. Что вы думаете бу-
допустимого, что для красного светодиода с дет, если вместо резистора сопротивлением
максимальным током 20 мА будет составлять 330 Ом использовать резистор 10 кОм?
10 мА. Значение величины сопротивления
Домашний светофор 37
Создаем прототип светофора
Создаем прототип светофора
Теперь давайте приступим к созданию схемы Подключаем красный светодиод
светофора. Сначала рассмотрите его принципи-
альную схему, приведенную на рис. 2.6. Ее нужно Теперь взглянем на монтажную схему проекта
смонтировать на беспаечной макетной плате, как (см. рис. 2.7) и начнем преобразовывать принци-
показано на рис. 2.7. пиальную схему проекта в монтажную. В первом
проекте мы заставляли мигать светодиод, встро-
енный в плату Arduino. Как мы помним, он под-
ключен к выводу 13 на плате Arduino. Поскольку
в этом проекте мы используем три светодиода,
нам нужно самим выполнить их подключение
к необходимым выводам платы. Следуя информа-
ции в принципиальной схеме (см. рис. 2.6) и в мон-
тажной (см. рис. 2.7), подключите вывод 13 платы
к положительному (длинному выводу) красного
светодиода.
Рис. 2.6. Принципиальная схема проекта «Светофор»
Принципиальная схема (см. рис. 2.6) показывает
электрическое подключение каждого компонен-
та. Как можно видеть, выводы 13, 12 и 11 платы
Arduino используются для управления отдельны-
ми светодиодами нашего проекта, при этом каж-
дый светодиод подключен к отдельному резисто-
ру, который, в свою очередь, подключен к общему
проводнику («земле»).
Примечание Рис. 2.7. Монтажная схема проекта «Светофор»: показано
подключение красного светодиода, расположенного на мон-
Если вам необходимо освежить свои знания тажной плате, к выводу Arduino через токоограничивающий
устройства и работы беспаечной макетной резистор
платы, вернитесь в разд. «Создание прото-
типов схем» на с. 5.
38 Проект 2
Создаем прототип светофора
Чтобы выполнить это подключение, будет лучше
сначала расположить плату Arduino рядом с бес-
паечной макетной платой именно так, как показа-
но на рис. 2.7. (Такое размещение плат будет стан-
дартным для всех проектов этой книги.)
Затем возьмите красный светодиод и резистор Рис. 2.8. Сгибание выводов резистора
сопротивлением 330 Ом. Согните выводы рези-
стора, как показано на рис. 2.8, чтобы его было
легче вставить в гнезда беспаечной макетной пла-
ты. Рекомендуется при этом бокорезами обрезать
выводы резистора наполовину, чтобы с ним было
легче работать. В отличие от светодиодов, выво-
ды резисторов не имеют полярности, поэтому не
играет роли, какой вывод куда вставлять.
Горизонтальные и вертикальные ряды большин-
ства макетных плат для удобства обозначаются
соответственно цифрами и буквами (рис. 2.9).
Ориентируясь на эту маркировку, вставьте свето-
диод в беспаечную макетную плату, как показано
на рис. 2.7. Длинный (положительный, или анод)
вывод вставляется в гнездо столбца e ряда 1 (то
есть, в сокращенной записи, в гнездо e1) макет-
ной платы, а короткий (отрицательный, или катод)
вывод — в гнездо столбца e ряда 2 (e2).
Теперь очередь за резистором сопротивлением Рис. 2.9. Горизонтальные ряды гнезд беспаечной макетной
330 Ом (с двумя оранжевыми и одной коричне- платы обозначены цифрами, а вертикальные — буквами
вой полосками). Вставляем один вывод резисто-
ра в любое гнездо в ряде 2 макетной платы, что
подключает его к короткому (отрицательному)
выводу светодиода (на рис. 2.7 этот вывод ре-
зистора вставлен в гнездо a2 макетной платы).
Помним при этом, что на всех стандартных бес-
паечных макетных платах гнезда столбцов a по e
и f по j соединены между собой. Теперь вставьте
другой вывод резистора в шину отрицательного
питания макетной платы. Это будет столбец, обо-
значенный синей или черной линией и знаком
минус (–).
Подаем питание на макетную плату отрицательного напряжения, а другая, для по-
ложительного напряжения, красного цвета. Этот
Возьмите две проволочные перемычки со ште- подход будет применяться во всех проектах этой
керами на обоих концах. Рекомендуется, чтоб книги.
одна перемычка была черного цвета — для
Домашний светофор 39
Создаем прототип светофора
Вставьте один штекер черной перемычки в гнездо Если светодиод на макетной плате не мигает, тог-
GND («земля») платы Arduino (на плате Arduino есть да как встроенный светодиод мигает, проверьте
три гнезда, обозначенные GND, — можно исполь- надежность и правильность монтажной провод-
зовать любое из них), а второй — в гнездо шины от- ки, а также полярность подключения светодиода.
рицательного питания на макетной плате. Питание Убедитесь при этом, что короткий вывод свето-
на каждый светодиод будет подаваться с цифровых диода вставлен в гнездо во втором ряду макетной
выводов платы. Поскольку вывод 13 будет пода- платы, и что резистор вставлен одним выводом в
вать питание на красный светодиод, вставьте один гнездо в этом же ряду, а вторым — в гнездо шины
конец перемычки в гнездо 13 на плате Arduino, а отрицательного питания.
второй — в гнездо a1 на макетной плате.
Когда схема заработает должным образом, то есть
Подключите плату Arduino к порту USB компью- светодиод на макетной плате будет мигать, отклю-
тера — должен начать исполняться загруженный чите плату Arduino от компьютера, чтобы мож-
в нее ранее скетч Blink из первого проекта, в ре- но было смонтировать остальную часть схемы.
зультате чего красный светодиод начнет мигать Рекомендуем вам обзавестить хорошей привыч-
раз в секунду. В принципе, мигать должны оба кой всегда обесточивать плату при выполнении
светодиода: и тот, что на макетной плате, и тот, ко- монтажа компонентов на ней.
торый встроен в плату Arduino, поскольку они оба
подключены к одному и тому же выводу 13.
Рис. 2.10. Конечная монтажная схема прототипа проекта Рис. 2.11. Завершенный монтаж проекта «Светофор»:
«Светофор»: светодиоды подключены к выводам 11, 12 и 13 мы видим плату Arduino, светодиоды и резисторы
платы Arduino
40 Проект 2
Программируем светофор
Добавляем желтый и зеленый обязательно следовать ему. Можно использовать
светодиоды любую часть макетной платы, при условии, что
соединяемые компоненты вставляются в гнез-
Теперь подключите желтый светодиод к выво- да одного и того же ряда. Готовая схема проек-
ду 12 платы Arduino, а зеленый — к выводу 11. та должна выглядеть наподобие показанной на
Следуйте тем же инструкциям, что и для подклю- рис. 2.11.
чения красного светодиода, но вставляйте каж-
дый светодиод в отдельный ряд. К отрицательной Впрочем, кроме внешнего подобия настоящему
шине питания макетной платы каждый светодиод, светофору, нам нужно реализовать и функцио-
согласно принципиальной схеме, приведенной нальное ему подобие, для чего следует вклю-
на рис. 2.6, подключайте через отдельный рези- чать каждый светодиод на определенное время,
стор. Конечный монтаж светодиодов показан на а затем выключать его и включать следующий,
рис. 2.10. Обратите внимание, что возле каждого и так далее. Плата Arduino, разумеется, способ-
светодиода на макетной плате предусмотрено на использовать в программах инструкции раз-
немного свободного пространства, чтобы компо- ных типов, включая команды синхронизации
ненты не мешали выполнять монтаж. для управления схемами, поэтому она спра-
вится с этой задачей без каких бы то ни было
Хотя здесь был изложен конкретный способ под- проблем.
ключения компонентов на макетной плате, не
Программируем светофор
Снова подключите плату Arduino к компьютеру, фрагмент <xxxx> является строкой произвольных
чтобы начать программировать скетч светофо- символов, уникальной для вашего Arduino.
ра. Откройте среду разработки Arduino, чтобы
создать новый скетч. Создаем переменные
для номеров выводов
Проверьте параметры
среды разработки Удостоверившись в правильности параметров
среды разработки, можно приступать к созда-
Прежде чем начинать создавать новый скетч, же- нию скетча. Как пояснялось в разд. «Анатомия
лательно всегда сначала выполнить определен- скетча Arduino» проекта 1, базовый скетч Arduino
ные организационно-подготовительные работы. состоит из двух частей: функции setup() и функ-
Итак, первым делом проверьте, что установлены ции loop(). Большинство простых скетчей обычно
правильные тип платы (Board type) и порт (Port). будут иметь такую базовую структуру, но более
Для этого выполните последовательность команд сложные скетчи содержат много разных состав-
меню Tools | Board. Если вы используете плату ляющих. Вот и в скетче Stoplight («Светофор»)
SparkFun RedBoard или стандартную плату Arduino присутствует новый раздел, называющийся гло-
Uno, выберите опцию Arduino/Genuino Uno. бальным пространством имен. Этот раздел рас-
Затем выполните последовательность команд положен перед функцией setup() и не относится ни
меню Tools | Port. В компьютере под Windows пла- к одной функции. В этом разделе, среди прочего,
те Arduino должен быть присвоен порт COM с са- определяются переменные, которые служат кон-
мым большим значением. Для компьютеров Mac тейнерами для значений, предоставляя эти зна-
или Linux последовательный порт будет отобра- чения в любом месте скетча, где они требуются.
жаться в формате /dev/cu.usbserial-A<xxxx>, где В скетчах Arduino можно использовать значения
(данные) нескольких типов.
Домашний светофор 41
Программируем светофор
Типы данных значение сразу при ее объявлении. Этот процесс
выглядит следующим образом:
В языке Arduino используются несколько разных
типов данных, некоторые из них вам придет- int val = 10;
ся применять в своих скетчах довольно часто.
Далее приводится список основных типов дан- Объявление переменной состоит из трех частей:
ных, их употребляемые в коде названия и крат- типа данных переменной , ее имени и ее зна-
кое описание. чения . Строка кода объявления переменной
завершается точкой с запятой, которая указывает
● Целое число (int) — целые числа в диапазоне среде разработки конец команды языка Arduino.
от –32 768 до 32 767. Использование точки с запятой в конце команды
является обязательным. Упущение этой детали ча-
● С плавающей запятой (float) — числа сто является причиной многих ошибок компиля-
с десятичной дробью в диапазоне от тора, или, как они tot называются, багов2. Поэтому
–3,4028235E+38 до 3,4028235E+38. всегда будьте внимательны, чтобы не допускать
эту ошибку.
● Байт (byte) — целые числа в диапазоне от 0
до 255. В имени переменной можно использовать лю-
бую последовательность символов без пробелов,
● Символ (char) — символ, обозначаемый за- включая буквы и цифры. При этом, для первого
ключением в одинарные кавычки, например, символа имени переменной использовать цифры
'a'. или специальные символы нельзя. Рекомендуется
делать имена переменных как можно более опи-
● Строка (string) — последовательность сим- сательными и в то же время как можно более
волов, обозначаемая заключением в двойные короткими. При решении этой задачи следует,
кавычки, например, «привет». придумывая описания и сокращения, проявлять
максимальную изобретательность. В данном при-
● Булево (Boolean) — значение, которое мере переменная называется val (сокращение от
может быть или истиной или ложью, что английского value — значение), переменная ини-
соответствует значениям 1 или 0 в скетче и циализируется (ей присваивается начальное зна-
ВЫСОКИЙ или НИЗКИЙ в переводе на уровни чение) значением 10. Инициализация переменной
напряжения выводов платы Arduino. при ее объявлении не является обязательной, но
выработать у себя такую привычку полезно.
При определении переменной в Arduino необ-
ходимо указывать ее тип данных. Этот процесс
рассматривается далее, в разд. «Меняющиеся
значения».
Меняющиеся значения В нашем проекте создаются три переменных для
хранения номеров выводов, к которым будут под-
Большинство значений, используемых в скетчах, ключены светодиоды, управляемые посредством
оформлены в виде переменных. Переменную мож- Arduino. Работать с переменной, которая описы-
но представить как многоразовый контейнер для вает цвет светодиода, намного легче и удобней,
единицы данных, которая может быть цифрой, чем пытаться запомнить, какой светодиод под-
буквой или даже целым предложением. ключен к какому выводу.
Но прежде чем использовать переменную, ее Итак, создайте новый скетч и вставьте код из ли-
необходимо объявить. Объявление перемен- стинга 2.1 в его глобальное пространство имен.
ной состоит в присвоении ей имени, указании ее
типа данных и присвоении ей исходного значе- 2 От англ. bug — жучок. По легенде, от моли, застрявшей
ния. Рекомендуем вам присваивать переменной между контактами реле первого компьютера, что вызвало
ошибку в его работе.
42 Проект 2
Программируем светофор
Листинг 2.1. Переменные для номеров выво- Листинг 2.2. Код функции setup() для проекта
дов Arduino Stoplight («Светофор»)
byte redPin = 13; void setup() );
byte ylwPin = 12; {
byte grnPin = 11;
//красный светодиод
Примечание pinMode(redPin , OUTPUT
Для удобства чтения при создании имен //желтый светодиод
переменных используется верблюжий ре- pinMode(ylwPin, OUTPUT);
гистр, вследствие чего буква P в слове pin //зеленый светодиод
(вывод) пишется прописной. Верблюжий pinMode(grnPin, OUTPUT);
регистр позволяет разделять слова имени }
переменной без использования пробелов.
В этих трех объявленных нами переменных хра- Поскольку в этом проекте задействуются три
нятся номера выводов, к которым подключа- разных цифровых вывода, функция pinMode() вы-
ются светодиоды. Поскольку номера выводов зывается в скетче три раза. В каждом отдельном
в Arduino ограничены целыми числами в диапа- вызове функции передаются в качестве пара-
зоне от 0 до 13, мы используем тип данных byte. метров переменная номера вывода (redPin,
Использование этого типа данных возможно по ylwPin и grnPin) и константа функции вывода пла-
той причине, что мы знаем, что номер вывода ты OUTPUT . Константа режима вывода данных
будет всегда меньше, чем 255. Обратите внима- OUTPUT используется потому, что наш скетч управ-
ние, что имя каждой переменной описывает ее ляет светодиодами, которые являются устрой-
содержимое: redPin (красныйВывод) обозначает ствами вывода данных. С устройствами ввода
вывод Arduino для красного светодиода, ylwPin данных мы познакомимся в проекте 4.
(желтыйВывод) — вывод для желтого светодио-
да и grnPin — вывод для зеленого светодиода. Создаем функцию loop()
И, как можно видеть на рис. 2.10, номер вывода
для красного светодиода — 13, для желтого — 12, Далее создадим функцию loop(). Настоящие све-
а для зеленого — 11. Теперь в любое время, когда тофоры в цикле последовательно зажигают крас-
нам потребуется задействовать в нашем скетче ный, зеленый, желтый огни, поэтому в этом про-
номер вывода, мы можем использовать для этого екте мы будем делать то же самое. Скопируйте
описательное имя переменной. код из листинга 2.3 и вставьте его в свой скетч на
место функции loop().
Создаем функцию setup()
Во избежание путаницы и аварий при про-
Продолжаем разработку скетча Stoplight ходе на светофор в коридоре, скетч Stoplight
(«Светофор») добавлением в него функции setup(), («Светофор») одновременно зажигает только
текст которой приводится в листинге 2.2. один цвет светофора. Поэтому, когда включает-
ся очередной светодиод, все другие светодиоды
Подобно скетчу «Здравствуй, мир!» в проекте 1 должны быть выключенными. Например, если
(см. функцию setup() в листинге 1.2), в скетче нужно зажечь красный свет, мы сначала вызы-
Stoplight («Светофор») функция setup() также вы- ваем функцию digitalWrite(redPin, HIGH), а затем
полняет конфигурирование цифровых выводов функции digitalWrite(ylwPin, LOW) и digitalWrite(grnPin,
Arduino посредством функции pinMode(). LOW). Параметр HIGH в первом вызове функции
Домашний светофор 43
Программируем светофор
Листинг 2.3. Код функции loop() для проекта светодиод включенным в течение 2000 мс или
Stoplight («Светофор») 2 секунд, прежде чем исполнится следующая
инструкция.
void loop()
{ Код для желтого и зеленого светодиодов работа-
ет по такому же принципу, устанавливая высокий
//включаем красный свет уровень напряжения на соответствующем выводе
digitalWrite(redPin, HIGH); платы и низкий на остальных и приостанавливая
digitalWrite(ylwPin, LOW); исполнение скетча на разные периоды времени.
digitalWrite(grnPin, LOW); Попробуйте поэкспериментировать со значения-
delay(2000); ми времени задержки в своем скетче Stoplight,
соответствующими интенсивности движения
//включаем зеленый свет в вашем коридоре. Помните, что значения, пере-
digitalWrite(redPin, LOW); даваемые функции delay(), устанавливают период
digitalWrite(ylwPin, LOW); времени в миллисекундах, в течение которого вы
digitalWrite(grnPin, HIGH); хотите удерживать светодиод во включенном со-
delay(1500); стоянии.
//включаем желтый свет Загружаем скетч в Arduino
digitalWrite(redPin, LOW);
digitalWrite(ylwPin, HIGH); Полный текст кода скетча для проекта Stoplight
digitalWrite(grnPin, LOW); («Светофор») приведен в листинге 2.4. Вы до сих
delay(500); пор вводили в редактор код скетча частями (см.
} листинги 2.1–2.3). Теперь внимательно проверьте,
что он соответствует коду в листинге 2.4, сохрани-
переводит вывод redPin (вывод 13) платы в вы- те скетч, а затем загрузите его в Arduino, выпол-
сокое состояние напряжения, включая подклю- нив последовательность команд меню Sketch |
ченный к нему красный светодиод, а параметр Upload (Скетч | Загрузить) или нажав комбина-
LOW в двух последующих вызовах переводит вы- цию клавиш <Ctrl>+<U>. В случае вывода средой
воды ylwPin и grnPin (выводы платы 12 и 11 соот- разработки каких-либо сообщений об ошибках,
ветственно) в низкое состояние напряжения, вы- снова проверьте свой код и убедитесь, что он
ключая желтый и зеленый светодиоды. Поскольку в точности соответствует коду в листинге 2.4. Это
Arduino работает на рабочей тактовой частоте означает, что он точь-в-точь повторяет написание
16 МГц (исполняя приблизительно одну инструк- каждого слова, использование заглавных букв
цию каждые 16 миллионных секунды), задерж- и знаков препинания, не забудьте и о точке с за-
ка между этими командами составляет порядка пятой в конце каждой инструкции.
нескольких микросекунд. То есть эти команды
исполняются настолько быстро, что для всех прак- Когда все сделано правильно, светодиоды долж-
тических целей можно считать, что они исполня- ны включаться и выключаться в цикле, подобном
ются одновременно. Наконец, обратите внимание циклу работы настоящего светофора: сначала
на функцию delay(2000). Эта функция приостанав- красный, за ним зеленый, а затем желтый на ко-
ливает исполнение скетча и удерживает красный роткое время, после чего функция loop() начинает
исполняться повторно, снова включая красный
светодиод и т. д. Скетч должен работать таким
образом бесконечно — до тех пор, пока на плату
Arduino подается питание.
44 Проект 2
Программируем светофор
Листинг 2.4. Полный текст кода скетча для Делаем светофор автономным
проекта Stoplight («Светофор»)
Когда плата Arduino подключена к компьютеру, пи-
byte redPin = 13; тание на нее подается из порта USB компьютера.
byte ylwPin = 12; Но что, если мы хотим поместить наш проект в та-
byte grnPin = 11; ком месте, куда не достает кабель подключения,
или вообще взять его на какое-либо мероприя-
void setup() тие, чтобы продемонстрировать свое творение
{ друзьям? Для этого нам потребуется переносной
источник питания, а именно портативный блок
pinMode(redPin, OUTPUT); батареек. Вспомните, что плата Arduino оснащена
pinMode(ylwPin, OUTPUT); цилиндрическим гнездовым разъемом питания,
pinMode(grnPin, OUTPUT); а также встроенным стабилизатором напряже-
} ния. Это делает возможным подключение платы
к внешнему источнику питания напряжением
void loop() в диапазоне от 6 до 18 В. На рынке предлагаются
{ разнообразные держатели батареек, но авторам
нравится показанный на рис. 2.12 держатель для
//включаем красный свет четырех батареек типоразмера АА, который мы
digitalWrite(redPin, HIGH); используем во многих наших проектах.
digitalWrite(ylwPin, LOW);
digitalWrite(grnPin, LOW);
delay(2000);
//включаем зеленый свет
digitalWrite(redPin, LOW);
digitalWrite(ylwPin, LOW);
digitalWrite(grnPin, HIGH);
delay(1500);
//включаем желтый свет Рис. 2.12. Держатель на 4 батарейки АА с цилиндрическим
digitalWrite(redPin, LOW); разъемом
digitalWrite(ylwPin, HIGH);
digitalWrite(grnPin, LOW); Извлеките кабель USB из разъемов компьютера
delay(500); и платы, вставьте батарейки в держатель батаре-
} ек, а затем вставьте разъем держателя в разъем
внешнего питания платы Arduino, как показано
Домашний светофор на рис. 2.13. Если батарейки заряжены, Arduino
начнет исполнять загруженный в него скетч. При
этом вы можете перемещать платы проекта куда
угодно или же встроить их в модель светофора.
45
Создаем корпус для светофора
Теперь мы готовы перейти к реализации
следующего уровня проекта, и далее, в
разд. «Создаем корпус для светофора», мы
рассмотрим, как преобразовать этот про-
тотип в модель светофора, который мож-
но будет установить в местах с интенсив-
ным движением в вашем доме.
Рис. 2.13. Делаем проект «Светофор» автономным, используя
держатель батареек в качестве источника питания
Создаем корпус для светофора
Когда Arduino более не привязан к компьютеру, линзами, которые сделают их лучше видимыми на
любой электронный проект на его основе можно расстоянии. Конечно, если вы хотите остановить-
встроить в постоянный корпус. Три мигающих све- ся только на прототипе схемы, корпус и линзы де-
тодиода на макетной плате лишь с трудом можно лать не обязательно, но мы все же рекомендуем
представить в виде светофора. Для большей реа- вам приобрести новый опыт изготовления корпу-
листичности надо вставить платы проекта в со- сов для своих проектов.
ответствующий корпус и оснастить светодиоды
Здесь мы покажем вам, как создать реалистично
выглядящую модель светофора из гофрированно-
го или открыточного картона, но можно исполь-
зовать любой имеющийся под рукой материал.
Проявляйте изобретательность! Наш пример, по-
казанный на рис. 2.14, сделан из гофрированного
картона, мячиков для настольного тенниса и не-
которого умения работать руками.
Рис. 2.14. Корпус для модели светофора из картона и мячи- Вы можете сделать корпус светофора сами, ис-
ков для настольного тенниса пользуя предоставленные здесь инструкции
в качестве руководства. Впрочем, если вы хо-
тите в точности воспроизвести этот проект, за-
грузите файл ZIP-архива, содержащий шаблоны
и скетчи, по адресу: https://www.nostarch.com/
arduinoinventor/. Все проекты в этой книге сопро-
вождаются шаблонами, которые можно распеча-
тать, перевести на картон и вырезать с помощью
макетного ножа и металлической линейки.
46 Проект 2
Создаем корпус для светофора
Примечание Распакуйте из сопровождающего книгу архи-
ва файлы проекта 2 (папка P2_Stoplight) и рас-
Если вам повезло, и у вас есть доступ к ре- печатайте файл шаблона P2_StopLightTemplate.
зальной машине наподобие Cricut, Silhouette svg в полный размер, чтобы его можно было ис-
Cameo или лазерному резаку, эти файлы пользовать в качестве образца для вырезания
можно легко приспособить под эти инстру- корпуса. Затем вооружитесь предметами из разд.
менты. «Прочие инструменты и материалы» этого про-
екта и приступайте к работе над корпусом.
Делаем картонный корпус
Сначала вырежьте из распечатки шаблоны дета-
лей корпуса, показанные на рис. 2.15. Корпус све-
тофора вырезается из одного цельного куска кар-
тона, а затем сгибается по слегка прорезанным
в картоне линиям.
Рис. 2.15. Шаблон для корпуса модели светофора (в уменьшенном виде) 47
Домашний светофор
Создаем корпус для светофора
Переведите сначала контуры шаблона на картон,
а также наметьте пунктирные линии, используя
для этого ручку или карандаш другого цвета. По
этим линиям нужно будет сделать в картоне не-
глубокие прорези, чтобы затем по ним можно
было согнуть корпус. Но пока не прорезайте их.
Рис. 2.16. Надрезание линий изгиба корпуса с помощью Обозначив контуры шаблона корпуса на картоне,
макетного ножа и металлической линейки вырежьте корпус по контуру с помощью макет-
ного ножа и металлической линейки (рис. 2.16).
Если вы никогда раньше не работали с макетным
ножом, обязательно сначала прочитайте врезку
«Безопасная работа с макетным ножом» чуть да-
лее в этом проекте. Слегка надрежьте вырезанный
корпус по пунктирным линиям на внешней сторо-
не корпуса. Сделайте пару неглубоких проходов
ножом, чтобы можно было с легкостью согнуть
корпус по этим линиям, но не прорезайте картон
насквозь. Также, пока не вырезайте затенители.
Рис. 2.17. Сверление отверстий под светодиоды Вырезав контур корпуса и надрезав его линии из-
гиба, сделайте в нем отверстия для светодиодов
в местах, обозначенных на шаблоне маленькими
сплошными точками внутри больших пунктирных
кругов. Можно, конечно, просто проколоть от-
верстия остро заточенным карандашом. Но чтобы
получить более аккуратные отверстия, рекомен-
дуется высверлить их с помощью электродрели
и сверла диаметром чуть меньше 5 мм (рис. 2.17).
Дело в том, что диаметр светодиодов практически
равен 5 мм. Но нам нужны отверстия чуть мень-
шего диаметра, в которые диоды можно легко
вставить, причем так, чтобы они не выпадали из
них. С этой задачей отлично справится сверло
диаметром около 4,75 мм.
Будьте осторожны при сверлении отверстий под
светодиоды — в частности, смотрите, чтобы ваши
пальцы с тыльной стороны картона не располага-
лись под сверлом. Дырка в одном из них вам бу-
дет совсем ни к чему. Если у вас нет дрели или вы
не уверены в своих способностях использовать
ее, отверстия можно также просверлить без дре-
ли — одним сверлом, вращая его пальцами.
Рис. 2.18. Светодиоды, вставленные в заготовку корпуса Просверлив отверстия, извлеките светодиоды из
модели светофора макетной платы и вставьте их в просверленные
48 Проект 2