Главная страница

Руководство по освоению Arduino - 2012. Руководство по освоению Arduino


Скачать 1.4 Mb.
НазваниеРуководство по освоению Arduino
АнкорРуководство по освоению Arduino - 2012.pdf
Дата28.05.2017
Размер1.4 Mb.
Формат файлаpdf
Имя файлаРуководство по освоению Arduino - 2012.pdf
ТипРуководство
#8187
страница1 из 4
  1   2   3   4

ARDX
набор для экспериментов arduino
Руководство с открытым исходным кодом для Arduino
A R D X
Document Revision: May 15 2012
Руководство
по освоению
Arduino

Все проекты .:oomlout:. являются открытыми. Что это значит? Это значит, что все данные, необходимые для производства этого набора, доступны для бесплатного скачивания. И даже больше – вы тоже можете воспроизводить или менять любые материалы по своему усмотрению и затем распространять их. В чем смысл? Все просто, эти материалы выпущены под лицензией Creative Commons. Это значит, что, используя .:oomlout:., вы обязуетесь упоминать его в своих разработках и распространять их таким же образом. Почему? Мы выросли играя и учась с открытым программным обеспечением и это был хороший опыт, мы думаем этот подход оправдает себя и с реальными компонентами проектов (”железом”).
Более подробно о лицензии Creative Commons вы можете узнать по адресу http://ardx.org/CCLI
Об открытом аппаратном обеспечении
Введение
Об этом наборе
Основная цель этого набора – интересно и с пользой провести время. А помимо этого - освоить разнообразные электронные компоненты путем сборки небольших простых и интересных устройств. Вы получаете работающее устройство и инструмент, позволяющий понять принцип действия. Если у Вас что-то не получается, есть вопросы, либо Вам необходима дополнительная помощь – пишите нам на help@oomlout.com.
Об .:
OOMLOUT
:.
Мы отважная маленькая компания разработчиков, специализирующаяся на производстве «восхитительно прекрасной открытой продукции»
Наши свежие проекты можно увидеть по адресу:
http://www.oomlout.com
О проблемах
Мы стараемся поставлять товары высочайшего качества. Если Вы обнаружите неясную инструкцию, недостачу детали или просто захотите задать вопрос, мы сделаем все возможное, чтобы помочь Вам.
help@oomlout.com / help@solarbotics.com
(Мы предпочитаем знать о проблемах – это помогает нам улучшать последующие версии.)
Спасибо за то, что выбрали .:oomlout:.
(и Solarbotics)
О S
OLARBOTICS
Мы начали производить робототехнические наборы BEAM больше 15 лет назад
(правда-правда!), сейчас мы также поставляем классные электронные наборы
http://www.solarbotics.com/

01
TBCN
.: С
ОДЕРЖАНИЕ
:.
Введение/подготовка к проекту
{ASEM}
Сборка устройства
02
{INST}
Установка программного обеспечения
03
{PROG}
Небольшая справка по программированию
04
{ELEC}
Небольшая справка по электронике
06
Устройства
{CIRC01}
Начнем работу (мигающий светодиод)
08
{CIRC02}
Схема с 8 светодиодами
10
{CIRC03}
Крутись мотор, крутись (транзистор и мотор)
12
{CIRC04}
Одиночный сервопривод (сервоприводы)
14
{CIRC05}
Еще 8 светодиодов (сдвиговый регистр 74HC595) 16
{CIRC06}
Музыка (пьезоэлемент)
18
{CIRC07}
Нажатие на кнопку (кнопки)
20
{CIRC08}
Кручение (потенциометры)
22
{CIRC09}
Свет (фоторезисторы)
24
{CIRC10}
Температура (температурный датчик ТМР36)
26
{CIRC11}
Большие нагрузки (реле)
28
{CIRC12}
Многоцветное свечение (светодиоды RGB)
30

02
01 ASEM
собираем компоненты
Макетная
плата
x1
Arduino
x1
4-40 x 3/8” винт
x3
4-40 гайка
x3
Основание
для Arduino
x1
.: Сборка устройства :.
.: Для изучения основ Arduino посетите :.
.: http://ardx.org/INTR :.
#4 x 1/16”
шайба
x3
Вам понадобится как минимум два винта с гайками и шайбами для закрепления Arduino

03
02 INST
installing
(software and hardware)
.: Проблемы при установке? :.
.: Нужны подробности? Используете Linux? :.
.: http://ardx.org/LINU :.
Шаг 1: Загрузка программного обеспечения
Откройте страницу
http://arduino.cc/en/Main/Software и загрузите версию для вашей операционной системы
Windows XP
Mac OSX
Шаг 2: Распаковка архива
Программа
arduino-00
-win.zip
Лучше всего в папку
c:\Program Files\
r r
(r r
- номер версии)
Шаг 3: Создание ярлыка
Откройте
c:\program files\arduino-00
Клик правой кнопкой мыши
Arduino.exe (send to>Desktop (создать ярлык))
r r
\ r r
- номер версии
)
(
Шаг 4: Подключение
Подключите Ваш Arduino
при помощи
USB-кабеля к свободному порту USB.
На экране должно появиться
диалоговое окно
Шаг 5: Добавление нового оборудования
.: Установка программного
обеспечения
(интерфейса пользователя IDE) :.
Интерфейс пользователя предназначен для программирования Arduino. Все это кажется поначалу немного сложным, но когда вы все установите и немного поиграете с программой
– все ее секреты раскроются вам сами собой.
Шаг 5: Включите Arduino
Подключите Ваш Arduino при помощи USB-кабеля к свободному порту USB
Шаг 2: Откройте.dmg
Откройте (загрузите)
arduino-00
-mac.dmg r
r
(r r
- номер версии)
Шаг 4: Установите драйверы
.:Только для плат Duemilanove:.
Найдите
"Arduino" device
FTDI Drivers for Intel Macs (
_
_
).pkg
(FTDI Drivers for PPC Macs (
_
_
).pkg
Перезагрузитесь
Двойной щелчок мышью, установите:
r r
r r
r r
r r
Шаг 3: Скопируйте приложение
Найдите
"Arduino"
(в секции браузера “devices”)
Переместите
Приложение "Arduino" в папку "Applications" (приложения)
02 INST
инсталляция
(программное и аппаратное обеспечение)
Vista, Seven
Шаг 5: Добавление нового оборудования
Пропустите опцию “поиск драйверов в
интернете”
(просто щелкните “next” )
Далее
щелкните “Install from a list or specific location
(Advanced)")
Установочные директории
Duemilanove Board
c:\program files\arduino-00
c:\program files\arduino-00
r r
\drivers\FTDI USB Drivers\
Uno Board
r r
\drivers\
Запустите Device Manager
Start > Run > devmgmt.msc
Выберите Arduino
Other Devices > Arduino Uno (Uno)
Обновите драйвер
щелкните “Update Driver”
Выберите
щелкните “Browse My Computer for Driver Software”
c:\program files\arduino-00
драйвер
r r
\drivers\

04
03 PROG
программи- рование
.: Небольшая справка
по программированию:.
С
ТРУКТУРА
Синтаксис
Основы программирования Arduino
Переменные
//
(однострочный комментарий)
Часто используется для размещения в тексте программы комментариев. Можно пояснять, что значит каждая строка программы. Все что размещается после двойной черты и до конца строки будет игнорироваться компилятором.
{ }
(фигурные скобки)
Используются для определения начала и конца блока команд
(используются в функциях и циклах).
void setup(){ }
Все команды, заключенные между фигурными скобками, выполняются только один раз, при первом запуске программы.
Каждая программа Arduino
(часто называемая «скетч») имеет две обязательные функции (также называемые подпрограммами).
void loop(){ }
Эта подпрограмма выполняется циклически вплоть до отключения питания, после завершения подпрограммы setup().
;
(точка с запятой)
Каждая команда должна заканчиваться этим символом
(потерянная точка с запятой — наиболее распространенная ошибка, приводящая к невозможности компиляции).
Требования к форматированию в языке
С вызывают некоторые затруднения у начинающих (с другой стороны, благодаря своей структуре, язык С обладает большими возможностями). Если Вы запомните следующие правила, этого будет вполне достаточно.
/* */
(многострочный комментарий). Вы можете использовать эту структуру, если
Вам надо создать подробный комментарий на нескольких строках. Все находящееся между этими символами будет игнорироваться компилятором.
Любая программа всего лишь определенным образом манипулирует числами.
Переменные помогают жонглировать цифрами.
long (длинная)
Используется в том случае, когда не хватает емкости int.
Занимает в памяти 4 байта (32 бита) и имеет диапазон -2 147 483 648 … 2 147 483 647.
int (целочисленная)
Основная рабочая лошадка, хранится в памяти с использованием двух байт (16 бит). Может содержать целое число в диапазоне -32 768 …
32 767.
boolean (двоичная)
Простой тип переменной типа True/False.
Занимает только один бит в памяти.
char (символ)Хранит один символ, используюя кодировку ASCII (например
«A» =65). Использует один байт памяти (8 бит). Arduino оперирует со строками как с массивами символов.
float (с плавающей запятой)
Используется для вычислений с плавающей запятой. Занимает в памяти 4 байта (32 бита) и имеет диапазон -3.4028235Е+38.
Arduino программируется на языке С. Данный раздел ориентирован на тех, кто имеет небольшой опыт программирования, и нуждается только в пояснении особенностей языка
С и интерфейса Arduino. Если все это кажется Вам немного сложным, не беспокойтесь, начинайте работать с примерами устройств и понимание придет в процессе. Для более подробного изучения основ используйте сайт arduino.cc.

05
03 PROG
рование программи-
Математические операторы
Операторы сравнения
Управляющие структуры
Цифровые сигналы
Аналоговые сигналы
.:Для более подробной справки по программированию посетите:.
http://ardx.org/PROG
=
(присвоение) делает что-то равным чему-то(например х=10*2 записывает в переменную х число 20).
% остаток от деления). Например 12%10 дает результат 2.
+ (сложение)
-
(вычитание)
*
(умножение)
/
(деление)
Операторы используются для преобразования чисел.
== (равно)
(Например 12==10 не верно (FALSE), 5==5 верно(TRUE).)
!= (не равно)
(Например 12!=10 верно (TRUE), 5!=5 не верно (FALSE).)
<
(меньше)
(Например 12<10 не верно (FALSE), 12<12 не верно (FALSE),
12<14 верно (TRUE).)
>
(больше)
(Например 12>10 верно (TRUE), 12>12 не верно (FALSE),
12>14 не верно (FALSE).)
Операторы, используемые для логического сравнения.
if (условие 1) {}
else if (условие 2) {}
else {}
Если условие 1 верно (TRUE) выполняются команды в первых фигурных скобках. Если условие 1 не верно (FALSE) то проверяется условие 2. Если условие 2 верно, то выполняются команды во вторых фигурных скобках, в противном случае выполняются команды в третьих фигурных скобках.
Для определения порядка выполнения команд (блоков команд) служат управляющие структуры. Здесь приведены только основные структуры.
Более подробно можете ознакомиться на сайте
Arduino.
for (int i=0; i<число повторов; i++) {}
Эта структура используется для определения цикла. Цикл повторяется заданное число раз. Переменная i может увеличиваться или уменьшаться.
analogWrite(pin,value);
Некоторые порты Arduino (3,5,6,9,10,11) поддерживают режим ШИМ (широтно- импульсной модуляции). В этом режиме в порт посылаются логические единицы и нули с очень большой скоростью.
Таким образом среднее напряжение зависит от баланса между количеством единиц и нулей и может изменяться в пределах от 0 (0В) до 255 (+5В).
Arduino - цифровое устройство, но может работать и с аналоговыми сигналами при помощи следующих двух команд:
analogRead(pin);
Если аналоговый порт настроен в режим INPUT, то можно измерить напряжение на нем.
Может принимать значения от 0
(0В) до 1024
(+5В).
digitalRead(pin);
Если порт установлен в режим INPUT эта команда возвращает значение сигнала на входе HIGH или LOW.
pinMode(pin, mode);
Используется, чтобы определить режим работы соответствующего порта. Вы можете использовать адреса портов
0...19 (номера с 14 по 19 используются для описания аналоговых портов 0...5).
Режим может быть или INPUT (вход) или
OUTPUT (выход).
digitalWrite(pin, value);
Если порт установлен в режим
OUTPUT, в него можно записать HIGH (логическую единицу, +5В) или LOW
(логический ноль, GND).

Коллекторный
двигатель
Сервопривод
06
04 ELEC
электроника
.:
по электронике:.
Небольшая справка
Основы электроники
Описание компонентов
LED
(светодиод)
Резистор
Транзистор
Диод
Что делает:
Число выводов:
Вращается, когда через него
2
протекает электрический ток.
Важно:
Вид:
Используйте транзистор или реле
Это просто, он выглядит как мотор. соответствующей мощности для
Обычно цилиндрической формы с подключения двигателя.
осью посередине.
Дополнительная информация:
http://ardx.org/MOTO
Что делает:
Число выводов:
Преобразует электрические импульсы 3
в угол поворота оси.
Важно:
Вид:
Убедитесь в правильном
Пластиковая коробочка с тремя подключении
(разъем без ключа).
проводками и металлической осью с
Дополнительная информация:
кронштейном.
http://ardx.org/SERV
Вам не потребуется опыт работы с электроникой для работы с этим набором. Ниже приведены некоторые сведения об электронных компонентах, которые позволят Вам легче их идентифицировать и возможно, понять принцип действия. Если Вам что-либо не понятно или компонент работает не так как должен — обращайтесь в нашу службу поддержки по адресу help@oomlout.com
Что делает:
Число выводов: 2
(более длинный вывод (анод) подключается к
Излучает свет если пропустить через положительному потенциалу)
него небольшой ток.
Ток может проходить
Важно:
через светодиод только в одном направлении.
Работает только при правильном
Вид:
включении. Требуется резистор для
Похож на небольшую лампочку.
ограничения силы тока.
Дополнительная информация:
http://ardx.org/LED
Что делает:
Число выводов: 2
Ограничивает силу тока, протекающего
Важно:
в цепи.
Легко перепутать номинал.
Тщательно
Вид: Обычно цилиндрической формы с проверяйте значение. выводами на противоположных
Дополнительная информация:
сторонах.
Значение номинала указывается при http://ardx.org/RESI
помощи цветных полосок (информацию о цветовой кодировке смотри далее).
Что делает:
Число выводов:
Используется для коммутации или
3 (База, Коллектор, Эмиттер)
усиления сигналов.
Важно:
Вид:
Не путать выводы.
Для ограничения тока часто используются резисторы.
Выпускается в разнообразных
Дополнительная информация:
корпусах. Название обычно наносится http://ardx.org/TRAN
на корпус
(в данном наборе используются
P2N2222AG)
Что делает:
Число выводов: 2
Электронный эквивалент
Важно:
однонаправленного клапана. Ток через
Пропускает ток только в одном диод может течь только в одну сторону.
направлении.
Ток будет течь, если сторона с
Вид:
полоской подключена к низкому потенциалу, а другая сторона к более высокому.
Обычно цилиндрической формы с
Дополнительная информация:
выводами на противоположных http://ardx.org/DIOD
сторонах
(на одной из сторон нанесена линия, определяющая полярность).

07
04 ELEC
электроника
Пьезоэлемент
Потенциометр
IC (интегральная микросхема)
Фоторезистор
Кнопка
0 - черный
5 - зеленый
20% - нет полоски
1 - коричневый
6 - синий
10% - серебряный
2 - красный
7 - фиолетовый
5% - золотой
3 - оранжевый
8 - серый
4 - желтый
9 - белый первая цифра вторая цифра число нулей точность номинала
Примеры:
зеленый-голубой-коричневый = 560 Ом красный-красный-красный = 2 200 Ом =
2.2 кОм
Коричневый-черный-оранжевый = 10 000
Ом = 10 кОм
Цветовая кодировка резисторов
Обрезка выводов
Описание компонентов
(продолжение)
Что делает:
Число выводов: 2
Импульс тока преобразуется в щелчок.
Важно:
Последовательность импульсов
Трудно подключить неправильно.
преобразуется в музыкальный тон.
Дополнительная информация:
Вид: В этом наборе он выглядит как http://ardx.org/PIEZ
черный бочонок. Иногда может выглядеть как золотой диск.
Что делает:
Число выводов:
Резистор с номиналом, величина
3
которого зависит от угла поворота оси.
Важно:
Вид:
Может иметь линейную или
Выпускается в разнообразных логарифмическую шкалу.
корпусах.
Дополнительная информация:
http://ardx.org/POTE
Что делает:
Число выводов:
Содержит в себе электронику любой от двух до нескольких сотен.
В этом наборе
TMP36 имеет 3 вывода и 74HC595 имеет 16 сложности. выводов.
Вид:
Важно:
Название компонента обычно нанесено на
Не перепутать ориентацию микросхемы.
корпус
(часто для того чтобы прочитать требуется
Дополнительная информация:
увеличительное стекло или хорошее освещение).
http://ardx.org/ICIC
Что делает:
Число выводов:
Резистор с номиналом, величина
2
которого зависит от интенсивности
Важно: Чтобы получить полезный падающего на него света.
сигнал, необходимо использовать
Вид:
фоторезистор как часть делителя
Обычно выглядит как небольшой диск с напряжения.
прозрачным покрытием и
Дополнительная информация:
зигзагообразным проводником под ним.
http://ardx.org/PHOT
Что делает:
Число выводов:
Замыкает контакты при нажатии.
4
Вид:
Важно:
Маленький квадратик с выводами
Практически квадратная, можно внизу и кнопкой наверху.
вставить с поворотом на 90 градусов.
Дополнительная информация:
http://ardx.org/BUTT
Некоторые компоненты в этом наборе поставляются с очень длинными выводами. Для более удобного использования можно сделать следующие изменения:
Светодиоды:
Укоротите длинный вывод до 10 мм, короткий — до 7.
Резисторы:
Согните выводы вниз под углом 90° и укоротите до 6 мм.
Остальные компоненты:
У остальных компонентов можете укоротить выводы по своему усмотрению.

08
CIRC-01
Описание задания:
.:Начнем работу:.
.:(мигающий светодиод):.
Провод
Светодиод
10мм
x1
Резистор
зеленый-синий-коричневый
x1
560 Oм
х
2 контактный
разъем
x4
Карточка задания
CIRC-01
x1
Arduino разъем 13
LED
(светодиод)
резистор
(560ом)
(зеленый-синий- коричневый
)
общий вывод
(ground) (-)
Компоненты:
.:скачать:.
карточку задания
http://ardx.org/BBLS01
.:посмотреть:.
видео сборки
http://ardx.org/VIDE01
в Интернете:
длинный вывод
+
У
СТРОЙСТВО
:
Схема
Светодиоды очень широко используются в различных устройствах, поэтому мы и добавили их в этот набор. Начнем с чего-то очень простого, например будем включать и выключать светодиод в бесконечном цикле. Отберите детали по списку, прикрепите карточку задания к макетной плате, установите все детали. После сборки устройства, необходимо загрузить программу. Для этого подключите Arduino к свободному порту USB. Затем установите порт в программе
Tools>Serial Port>(порт, назначенный для Arduino). Загрузка программы осуществляется из меню File>Upload to I/O Board (ctrl+U). Наконец, наслаждайтесь способностью контролировать светодиод!
Если Вы столкнулись с проблемами при загрузке — обратитесь к руководству: http://ardx.org/TRBL

09
CIRC-01
File > Examples > 1.Basic > Blink
(это пример с сайта arduino.cc, также там можно найти много отличных идей)
Подробности, где купить детали к проекту, где задать вопросы:
http://ardx.org/CIRC01
Все еще не работает?
Неисправное оборудование это неприятно, пошлите нам e-mail с описанием проблемы и мы свяжемся с
Вами как можно скорее.
help@oomlout.com
Программа не загружается?
Это случается иногда. Чаще всего причиной является неправильно указанный последовательный порт.
Изменить порт можно в меню
tools>serial port>
Не работает?
(3 проблемы и их решения)
Усовершенствуем устройство
Е
СТЬ
ЕЩЕ
ВОПРОСЫ
?
Светодиод не зажигается?
Светодиод работает только при соблюдении правильной полярности. Попробуйте вытащить его и вставить наоборот. Не беспокойтесь — неправильное включение не должно его повредить.
Убедитесь, что подключили его к порту номер 13.
Поменяем управляющий порт:
Управление яркостью свечения:
Кроме простого включения и выключения можно
Светодиод подключен к порту 13, однако мы можем контролировать яркость свечения светодиода (более использовать любой из портов Arduino. Переключите подробно это будет объясняться в последующих провод на любой порт по Вашему выбору (от 0 до 13,
заданиях). Подключите светодиод к порту номер 9:
или аналоговые порты — от 14 до 19). Затем int ledpin = 13; замените на int ledpin = 9;
замените команду:
int ledpin = 13; на int ledpin = ваш номер;
Замените код в фигурных скобках процедуры loop()
Загрузите программу в Arduino (ctrl-u).
следующим:
Изменим частоту мигания:
analogWrite(ledPin, new number);
Для изменения времени включения и выключения —
newnumber – любое число из диапазона 0...255. 0 будет редактируйте аргументы функции delay(x). Задержка соответствовать отключенному светодиоду, 255 —
определяется как х = число секунд * 1000.
максимальная яркость.
Например: для задания более низкой частоты
Плавное изменение яркости:
мигания программа должна выглядеть следующим
Откройте пример: образом:
File > Examples > 3.Analog > Fading
digitalWrite(ledpin,HIGH);
Загрузите эту программу в Arduino и посмотрите delay(2000);
получившийся эффект.
digitalWrite(ledpin,LOW);
delay(2000);
К
ОД
не надо набирать вручную, он находится по адресу:
/* Мигание
* включает светодиод на 1 секунду, выключает на 1 секунду,
* функция вызывается по кругу
* Created 1 June 2005 By David Cuartielles
* http://arduino.cc/en/Tutorial/Blink
* based on an orginal by H. Barragan for the Wiring i/o board
*/
int ledPin = 13; // светодиод подключен к выходу 13
// Функция начальных установок setup() вызывается 1 раз в начале скетча void setup() { // устанавливаем 13 контакт в режим вывода:
pinMode(ledPin, OUTPUT); }
// функция loop() вызывается по кругу
// пока Arduino подключен к питанию void loop() {
digitalWrite(ledPin, HIGH); // включение светодиода delay(1000); // задержка 1 сек digitalWrite(ledPin, LOW); // выключение светодиода delay(1000); // задержка 1 сек
}

Провод
10
CIRC-02
.:Схема
с 8 светодиодами:.
Светодиод
зеленый
x8
5мм,
Резистор 560 Oм
Зеленый-синий-коричневый
x8
х
2 контактный
разъем
x4
Карточка задания
CIRC-02
x1
.:скачать:.
карточку задания
http://ardx.org/BBLS02
.:посмотреть:.
видео сборки
http://ardx.org/VIDE02
светодиод резистор
560oм gnd кон- такт3
кон- такт2
кон- такт4
кон- такт5
gnd кон- такт7
кон- такт6
кон- такт8
кон- такт9
Компоненты:
в Интернете:
У
СТРОЙСТВО
:
Схема
Описание задания:
Мы заставили светодиод мигать, время поднимать ставки! Давайте подключим сразу восемь светодиодов. У нас также будет возможность создать несколько различных световых эффектов. Это устройство — хорошая основа для дальнейших экспериментов и освоения Arduino.
Одновременно с управлением светодиодами рассмотрим методы оптимизации программы.
for() loops - используется, если Вам необходимо выполнить часть программы несколько раз.
arrays[] - используется для упрощения работы с переменными (фактически это группа переменных).
светодиод резистор
560oм

11
CIRC-02
его можно загрузить с
(скопируйте текст и вставьте его в новое окно Arduino Sketch)
http://ardx.org/CODE02
Подробности, где купить детали к проекту, где задать вопросы:
http://ardx.org/CIRC02
//переменные светодиодов светодиод, задержка на int ledPins[] = {2,3,4,5,6,7,8,9};
delayTime, включение
//множество, задающее какой следующего светодиодиода,
//светодиод присоединен к какому выключение
//порту, например светодиод №0 - к
//порту2 void oneAfterAnotherNoLoop(){
int delayTime = 100; void setup()
//время задержки между включениями
{
//светодиодов в миллисекундах for(int i = 0; i < 8; i++){ digitalWrite(ledPins[0], HIGH);
//цикл повторяющийся 8 раз
//включение светодиода №0
pinMode(ledPins[i],OUTPUT);
//на выходе 2
//устанавливает порты, к которым подключены
//светодиоды, в режим вывода delay(delayTime); //задержка на delayTime
}
//(в миллисекундах)
}
void loop() // бесконечный цикл digitalWrite(ledPins[7], HIGH);
{
//включение светодиода №7 на выходе 9
oneAfterAnotherNoLoop();
//включает каждый светодиод по одному и delay(delayTime);
//затем так же выключает
//задержка на delayTime (в миллисекундах)
//oneAfterAnotherLoop();
//выключение каждого светодиода
//делает то же самое что oneAfterAnotherNoLoop
//но команда короче digitalWrite(ledPins[7], LOW); //выключение
//oneOnAtATime(); ветодиода №7
//inAndOut(); delay(delayTime); //задержка на delayTime
}
//(в миллисекундах)
/*
* oneAfterAnotherNoLoop() - зажигает один
-----полная программа в электронной версии------
Не работает?
(3 проблемы и их решения)
Усовершенствуем устройство
Е
СТЬ
ЕЩЕ
ВОПРОСЫ
?
Светодиоды загораются
в неправильном порядке
При подключении восьми проводов легко можно перепутать пару. Убедитесь, что первый светодиод подключен к порту 2 и каждый последующий к следующему порту по порядку.
Некоторые светодиоды
не загораются
Легко ошибиться и вставить светодиод наоборот. Проверьте полярность всех неработающих светодиодов.
Использование циклов:
использует структуру for).
В функции loop() записаны четыре команды.
Дополнительные эффекты:
Последние три начинаются с символа «//».
Устали от этого эффекта? Попробуйте два других
Это значит, что компилятор игнорирует эти образца. Убирайте поочередно значки строки (рассматривает их как комментарий). комментария («//») с двух последних строк,
Для использования циклов измените текст загружайте программу в Arduino и любуйтесь программы следующим образом:
новыми эффектами.
//oneAfterAnotherNoLoop();
Создайте свой собственный эффект:
oneAfterAnotherLoop();
//oneOnAtATime();
Попробуйте изменить что-нибудь в программе.
//inAndOut();
Основная идея во включении светодиодов
Загрузите программу в Arduino и обратите командой digitalWrite(pinNumber,HIGH); и внимание, что программа исполняется так же. выключении при помощи команды digitalWrite(pinNumber,LOW); Не бойтесь
Обратите внимание на эти две функции, они экспериментировать, вне зависимости от того, что выполняют одно и то же, но с использованием
Вы измените, ничего не должно сломаться!
различных принципов (вторая функция
Начните сначала
Часто проще все разобрать и собрать заново, чем искать неисправность.
К
ОД
не надо набирать вручную,

12
CIRC-03
.:Крутись мотор,
крутись:.
.:Транзистор и мотор:.
Провод
Транзистор
P2N2222AG (TO92)
x1
Резистор 2.2k Oм
Красный-красный-красный
x1
х
2 контактный
разъем
x4
Карточка задания
CIRC-03
x1
Коллекторный
двигатель
x1
Arduino разъем 9
резистор
(2.2кОм)
общий вывод
(ground) (-)
коллектор эмиттер база мотор
+5 Вольт транзистор
P2N2222AG транзистор маркирован
“P2N2222AG”
(у некоторых разновидностей выходы расположены в обратном порядке)
Диод
(1N4001)
x1
диод
.:скачать:.
карточку задания
.:
:.
видео сборки
http://ardx.org/BBLS03
посмотреть
http://ardx.org/VIDE03
Компоненты:
в Интернете:
У
СТРОЙСТВО
:
Схема
Описание задания:
Порты Arduino идеально подходят для управления чем-то маленьким с небольшим потреблением (например светодиод).
Таким образом, для управления большими нагрузками (например моторами) требуется использовать дополнительный элемент — транзистор. Транзистор очень полезный элемент, он позволяет управлять большими нагрузками и при этом потребляет совсем небольшой ток. Транзистор имеет три вывода. Для транзисторов типа NPN Вы должны подключать нагрузку к коллектору, а эмиттер к «земле» (нулевому потенциалу). Если от базы к эмиттеру будет протекать небольшой ток (если подключить к базе сигнал HIGH от Arduino), то транзистор «откроется», ток потечет через транзистор и мотор начнет вращаться. Существует великое множество транзисторов, позволяющих решать самые разнообразные задачи. В наборе используются транзисторы общего применения P2N2222AG. Максимальное напряжение, с которым может работать этот транзистор, составляет 40В, максимальный ток — 600 мА. Эти параметры позволяют использовать его с нашим мотором. Более подробно можете параметры транзистора приведены по адресу: http://ardx.org/2222).
В качестве защиты от обратного тока используется диод 1N4001. Более подробно про это рассказано по адресу: http://ardx.org/4001)
.:Примечание: если при запуске мотора Аrduino перезагружается или зависает, тогда необходимо установить дополнительный конденсатор:.

13
CIRC-03
Подробности, где купить детали к проекту, где задать вопросы:
http://ardx.org/CIRC03
его можно загрузить с
(скопируйте текст и вставьте его в новое окно Arduino Sketch)
http://ardx.org/CODE03
Не работает?
(3 проблемы и их решения)
Усовершенствуем устройство
Все ещё не работает?
Если Вы используете свой собственный мотор, убедитесь, что он может работать от напряжения 5В и не потребляет слишком много.
Мотор не вращается?
Если Вы используете свой собственный транзистор, убедитесь что расположение выводов совпадает с
P2N222A. Многие транзисторы имеют другое расположение выводов.
Контроль скорости:
Загрузите программу в Arduino. Вы можете изменять
Ранее мы рассматривали возможность управления скорость путем редактирования переменных onSpeed и яркостью светодиодов при помощи Arduino. Этот же offSpeed.
принцип можно использовать для управления
Ускорение и замедление:
скоростью вращения мотора. Arduino формирует
Зачем останавливаться на двух фиксированных сигналы, называемые ШИМ (широтно-импульсная скоростях? С использованием этой технологии можно модуляция). На выход с высокой частотой поступает ускорять и замедлять мотор. Для проверки этого последовательность логических нулей и единиц. измените текст программы в функции loop() следующим
Баланс между количеством единиц и нулей образом:
определяет результирующее напряжение.
// motorOnThenOff();
Например, для формирования напряжения 2,5 В
// motorOnThenOffWithSpeed();
необходимо чтобы за единицу времени количество motorAcceleration();
нулей равнялось количеству единиц.
Загрузите программу и Вы увидите, как мотор плавно
В функции loop() измените текст программы разгоняется до максимальной скорости, а затем плавно следующим образом:
тормозит. Если Вы хотите поменять скорость разгона, то
// motorOnThenOff();
motorOnThenOffWithSpeed();
изменяйте переменную delayTime (большее значение
// motorAcceleration();
соответствует более медленному разгону).
Снова не работает?
Иногда Arduino самопроизвольно отключается от компьютера.
Попробуйте отключить и затем подключить обратно кабель USB Arduino.
int motorPin = 9; //мотор подсоединен к разъему 9
void motorOnThenOffWithSpeed(){
void setup() //запускается единожды int onSpeed = 200;
{
// число между 0 (остановка) и 255 (максимальная скорость) pinMode(motorPin, OUTPUT); int onTime = 2500;
}
int offSpeed = 50;
// число между 0 (остановка) и 255 (максимальная скорость)
void loop() // выполняется бесконечно int offTime = 1000;
{
analogWrite(motorPin, onSpeed); motorOnThenOff();
// включение мотора
//motorOnThenOffWithSpeed();
delay(onTime); // задержка на onTime миллисекунд
//motorAcceleration();
analogWrite(motorPin, offSpeed);
}
// выключение мотора delay(offTime); // задержка на offTime миллисекунд
/* motorOnThenOff() - включает мотор затем
}
выключает его (обратите внимание что код идентичен void motorAcceleration(){
тому что мы использовали для мигающего светодиода) int delayTime = 50; //
*/
for(int i = 0; i < 256; i++){
void motorOnThenOff(){
//изменяет скорость от 0 до 255
int onTime = 2500;
analogWrite(motorPin, i); //sets the new speed
//время во включенном состоянии delay(delayTime);// задержка на delayTime миллисекунд int offTime = 1000;
}
//время в выключенном состоянии for(int i = 255; i >= 0; i--){
digitalWrite(motorPin, HIGH);
//
// включение мотора analogWrite(motorPin, i); //sets the new speed delay(onTime);
delay(delayTime);//задержка на delayTime миллисекунд
// задержка на onTime миллисекунд
}
digitalWrite(motorPin, LOW);
}
// выключение мотора delay(offTime);// offTime
}
задержка на миллисекунд задержка между скоростями изменяет скорость от 255 до 0
К
ОД
не надо набирать вручную,
Е
СТЬ
ЕЩЕ
ВОПРОСЫ
?

14
CIRC-04
.:Одиночный
сервопривод:.
Провод
х
3 контактный
разъем
x1
Сервопривод
x1
х
2 контактный
разъем
x4
Карточка задания
CIRC-04
x1
Arduino
9
разъем общий вывод
(ground) (-)
gnd
(черный/
коричневый)
сигнал
(оранжевый)
+5v
(крас- ный)
сервопривод
+5 Вольт
(5V)
.:скачать:.
карточку задания
.:
:.
видео сборки
http://ardx.org/BBLS04
посмотреть
http://ardx.org/VIDE04
Описание задания:
Компоненты:
в Интернете:
У
СТРОЙСТВО
:
Схема
Крутить мотор достаточно интересно, но когда мы делаем проект, в котором необходим контроль движения, хочется чего-то большего. Рассмотрим пример управления сервоприводом. Сервоприводы массово производятся, легко доступны, стоимость составляет от пары долларов до сотен. Внутри сервопривода встроен небольшой редуктор (чтобы увеличить мощность) и электроника (для упрощения управления). Стандартный сервопривод позиционируется от 0 до 180 градусов. Позиция задается длительностью управляющего импульса, от 1.25 мс (0 градусов) до 1.75 мс (180 градусов, 1.5 мс для
90 градусов). Временные параметры могут отличаться у различных производителей.
Если посылать импульсы каждые 25...50 мс, то сервопривод может плавно вращаться.
Одним из преимуществ Arduino является готовая к использованию библиотека подпрограмм, позволяющая легко управлять двумя сервоприводами (подключенными к портам 9 и 10).

15
CIRC-04
File > Examples > Servo > Sweep
(
)
это пример с сайта arduino.cc, также там можно найти много отличных идей
Подробности, где купить детали к проекту, где задать вопросы:
http://ardx.org/CIRC04
Не работает?
(3 проблемы и их решения)
Усовершенствуем устройство
Все еще не
работает?
Не забывайте про питание!
Красный и коричневый проводники должны быть подключены к +5В и к
«земле» соответственно.
Сервопривод не
вращается?
Даже с цветовой маркировкой проводов их по-прежнему легко можно перепутать. Возможно причина в этом.
int pulseTime = 2100;
Управление потенциометром:
//величина задержки в микросекундах
Мы еще не экспериментировали со входами, но если
//900 для 0 градусов, 1500 для 90 градусов,
//2100 для 180 градусов хотите попробовать, то загрузите пример File > Servo >
digitalWrite(servoPin, HIGH);
delayMicroseconds(pulseTime);
Knob. В этом примере для управления сервоприводом digitalWrite(servoPin, LOW);
delay(25);
используется потенциометр (CIRC08). С пояснениями
}
можно познакомиться по адресу: http://ardx.org/KNOB
Интересные идеи:
Прямое управление:
Сервопривод может использоваться во многих интересных
Управлять сервоприводом очень легко при помощи проектах. Приведем несколько примеров:
библиотеки подпрограмм. Но иногда необходимо
Рождественский счетчик самостоятельно создать программу для управления. http://ardx.org/XMAS
Можно непосредственно управлять сервоприводом, если посылать импульс заданной длительности на любой порт
Манипулятор робота (открытый проект с использованием
Arduino. Образец программы:
сервоприводов и Arduino)
http://ardx.org/RARM
int servoPin = 9;
void setup(){
pinMode(servoPin,OUTPUT);
Шагающий робот с сервоприводами
}
void loop() {
http://ardx.org/SEWA
// Поворот сервопривода (by BARRAGAN
  1   2   3   4


написать администратору сайта