arduino-1-80
.pdfКомпоненты |
Обозначение |
|
|
|
Компоненты |
Обозначение |
|
|
|
|
|
j30 |
|
|
|
|
|
|
|
|
j29 |
|
Провод перемычка |
Pin 3 |
f 18 |
|
|
|
|
j28 |
|
|
|||
|
|
|
j27 |
|
|
|
|
|
|
|
|
j26 |
|
|
|
|
|
|
|
|
j25 |
|
|
|
|
|
|
|
|
j24 |
|
Провод перемычка |
Pin 4 |
f 19 |
|
ЖКИ |
|
|
j23 |
|
|
|||
|
|
j22 |
|
|
|
|
|
|
|
|
|
j21 |
|
|
|
|
|
|
|
|
j20 |
|
Провод перемычка |
Pin 5 |
f 20 |
|
|
|
|
j19 |
|
|
|||
|
|
|
j18 |
|
|
|
|
|
|
|
|
j17 |
|
|
|
|
|
|
|
|
j16 |
|
|
|
|
|
|
|
|
j15 |
|
Провод перемычка |
Pin 11 |
f 25 |
|
|
|
|
b8 |
|
|
|||
|
|
|
|
|
|
|
|
|
Потенциометр |
|
|
b7 |
Провод перемычка |
|
f 26 |
- |
|
|
|
|
b6 |
|
||||
|
|
|
|
|
|
|
||
Провод перемычка |
|
+5V |
+ |
|
Провод перемычка |
Pin 12 |
f 27 |
|
Провод перемычка |
|
GND |
- |
|
Провод перемычка |
|
f 29 |
- |
Провод перемычка |
|
|
e6 |
+ |
Провод перемычка |
|
f 30 |
- |
Провод перемычка |
|
|
e7 |
f28 |
|
|
|
|
Провод перемычка |
|
|
e8 |
- |
|
|
|
|
Провод перемычка |
|
|
f15 |
- |
|
|
|
|
Провод перемычка |
|
|
f16 |
+ |
|
|
|
|
Провод перемычка |
|
Pin 2 |
f16 |
|
|
|
|
10 |
|
Код Arduino: |
|
Откройте в Arduino IDE // Файл > Примеры > MaxKit.ru > lesson_10 |
|||
На заметку: |
|
|
|
|
|
Этот кусок кода говорит Arduino IDE о том, что перед |
|
|
|
тем как начать работу с программой, необходимо |
|
|
|
подключить библиотеку LiquidCrystal.h. Она упрощает |
|
#include <LiquidCrystal.h> |
управление различными типами жидкокристаллических |
||
|
|
индикаторов. |
|
|
|
Без нее никакие команды работать не будут! Убедитесь, |
|
|
|
что библиотека подключена. |
|
|
|
В первый раз, после включения, вместо каких либо |
|
|
|
символов, Вы можете увидеть на дисплее яркое свечение |
|
lcd.print("hello, world!"); |
и больше ничего. Не отчаивайтесь, всего-навсего |
||
Вам нужно отрегулировать яркость ЖК индикатора. |
|||
|
|
||
|
|
Для этого покрутите ручку потенциометра и добейтесь |
|
|
|
появления на экране надписи “helo, world!”. |
|
Что вы должны увидеть: |
|
||
Первоначально на дисплее вы дол |
|
||
увидеть слова "hello, world!", неожи |
|
||
появившиеся на вашем дисплее. |
|
||
Помните?, вы можете настроить |
|
||
контрастность с помощью ручки |
|
||
потенциометра, если слова на |
|
||
дисплее не очень разборчивы. |
|
||
Если возникли сложности, |
|
||
убедитесь, что код программы |
|
||
написан правильно, |
|
|
|
и дважды проверьте правильность |
|
||
всех соединений. |
|
|
|
Возможные трудности: |
Применение в жизни: |
||
Экран ярко светится |
|
ЖК дисплеи сегодня есть везде! Часы на |
|
Попытайтесь отрегулировать яркость ручкой |
вашей руке, табло в микроволновке, даже |
||
потенциометра, в противном случае вы не |
современный телевизоресть не что иное, |
||
сможете прочесть текст на экране ЖК. |
как Жидкокристалический Дисплей! |
||
Вообще не работает |
|
|
|
Тщательно проверьте правильность написания |
|||
кода программы, в частности подключение |
|
||
библиотеки LiquidCrystal. |
|
||
Мерцание экрана |
|
|
|
Тщательно проверьте правильность |
|
||
соединения вашей платы и Arduino, а также |
|
||
цепей питания. |
|
|
ОПЫТ 11
|
|
|
|
|
|
|
|
|
ЗУММЕР, ПИЩАЛКА |
|
|
|
|
|
|
|
|
|
|
(англ. Buzzer) |
11 |
|
|
|
Pin 9 |
|
||||||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
В этом опыте, мы снова будем преодолевать |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
разрыв между миром цифровым и аналоговым. |
|
|
|
|
|
|
|
|
|
|
Мы будем использовать зуммер (пищалку), |
|
|
|
|
|
|
|
|
|
Зуммер |
который делает небольшой «щелчок», если |
|
|
|
|
|
|
|
|
|
дотронутся, кратковременно, его контактами |
||
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
до питания +5 вольт и до “земли”, попробуйте! |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Само по себе это не очень интересно, но если |
|
|
|
|
|
|
|
|
|
|
вы подадите на него напряжение и тут же |
|
|
|
|
|
|
|
|
|
|
отключите, со скоростью 100 раз в секунду, |
|
|
|
|
|
|
|
|
|
|
зуммер начнет пищать. И если собрать сотни |
|
|
|
|
|
|
|
|
|
GND |
строк тонов вместе, у вас появится музыка! |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
(земля) (-) |
В этом опыте схема, вместе со скетчем, будет |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
играть классическую музыку. Во всяком |
|
|
|
|
|
|
|
|
|
|
случае мы на это надеемся! |
|
|
|
|
|
|
|
|
|
|
|
|
ДЕТАЛИ:
Пьезо-элемент Провод
X 1 |
X |
Если зуммер не вписывается
в отверстия на плате, попробуйте
его немного повернуть, так
чтобы выводы вошли в отверстия по диагонали.
p.60
Опыт 11: Пищалка
a b c d e |
f g h i |
1 |
1 |
2 |
2 |
3 |
3 |
4 |
4 |
5 |
5 |
6 |
6 |
7 |
7 |
8 |
8 |
9 |
|
10 |
10 |
11 |
11 |
12 |
12 |
13 |
13 |
14 |
14 |
15 |
15 |
16 |
16 |
17 |
17 |
18 |
18 |
19 |
19 |
20 |
20 |
21 |
21 |
22 |
22 |
23 |
23 |
24 |
24 |
25 |
25 |
26 |
26 |
27 |
27 |
28 |
28 |
29 |
29 |
30 |
30 |
a b c d e |
f g h i |
Компоненты |
Обозначение |
|
Пьезо-излучатель |
j9 |
j7 |
|
+ |
- |
Провод перемычка |
i7 |
|
Провод перемычка |
Pin 9 |
j9 |
Провод перемычка |
5V |
+ |
Провод перемычка |
GND |
|
Создание ваших собственных функций:
Arduino содержит множество полезных функций, которые существуют для чего угодно. (См http://arduino.cc/en/Reference). Вы можете создать свои, более удобные лично Вам. Далее идет пример функции “add” (добавить), которая складывает два числа и возвращает результат.
int add(int параметр1, int параметр2)
{
int x;
x = параметр1 + параметр2;
return
}
(x);
Ваши функции могут принимать и возвращать значениях "Параметров",
как это сделано здесь. И конечно вы можете придумать что либо свое.
Если вы будете передавать параметры /к/ вашей функции, опишите и их типы в скобках, после имени функции. Если вы не будете передавать никаких параметров, вставьте скобки пустыми (), после имени функции.
Если вам нужно вернуть (получить) что либо /от/ вашей функции,
поставьте тип возвращаемого значения перед именем функции. Тогда,
когда ваша функция будет готова вернуть значение, вам останется положить его в return(). Если возвращать ничего не нужно, оставьте
"void" перед именем функции (так же, как это делается в setup() и loop()).
Когда вы пишете свои собственные функции, старайтесь сделать код простым и аккуратным, для того чтобы упростить его повторное использование.
11 |
|
|
Код Arduino: |
Откройте в Arduino IDE // Файл > Примеры > MaxKit.ru > lesson_11 |
|||
На заметку: |
|
|
|
|
|
До сих пор мы работали только с числовыми данными, |
|
char notes[] = "cdfda ag cdfdg gf "; |
но Arduino может работать и с буквами и с текстом. |
||
Символ, буква, цифра, и т.д., каждый имеет свой |
|||
char names[] = {'c','d','e','f','g','a','b','C'}; |
собственный тип называемый "char". Строка символов |
||
называется "string". Если у вас есть массив символов, |
|||
|
|
он должен быть заключен в двойные кавычки, или же в |
|
|
|
виде списка в одиночные. |
|
|
|
Одной из многих, полезных команд Arduino является |
|
tone(pin, frequency, duration); |
функция tone(). Эта функция выводит в порт “ноту”, т.е. |
||
определенную частоту, что делает ее идеальной для |
|||
noTone(pin9); |
|
работы с зуммерами и динамиками. Если вы даете |
|
|
паузу, после ноты (в милли сек.), она играет ноту и |
||
|
|
останавливается. Если паузу не сделать, нота будет |
|
|
|
звучать вечно. Хотя остановить ее можно и так noTone(). |
|
Что вы должны увидеть: |
|
|
|
Что же вы должны увидеть? |
|
|
|
Ничего, но вы должны услышат |
|
|
|
Ваша пищалка будет играть |
|
|
|
"Twinkle, Twinkle Little Star", или |
|
|
|
что то подобное. |
|
|
|
Если этого не происходит, |
|
|
|
проверьте правильность всех |
|
|
|
соединений, проверьте загруже |
|
|
|
ли код в плату Arduino. Или |
|
|
|
воспользуйтесь подсказками ни |
|
|
|
Возможные трудности: |
|
Применение в жизни: |
|
Нет звука |
|
|
Многие мегафоны используют подобный |
Учитывая размер и форму пищалки, легко |
|
метод усиления сигнала, хотя качество |
|
промахнуться мимо нужного отверстия в плате. |
звука оставляет желать лучшего. |
||
Попробуйте еще раз проверить его размещение. |
|
||
Все равно не работает, не пойму почему |
|
|
|
Попробуйте вытянуть пищалку из платы и снова |
|
||
воткнуть, и перезагрузите программу в Arduino. |
|
|
|
Устали от Twinkle Twinkle Little Starir |
|
|
|
Код написан так, что вы легко можете добавить |
|
||
свои собственные мелодии. |
|
|
|
ОПЫТ 12 |
|
|
|
12 |
|||
|
|
|
|
Pin 9 |
Крутись Мотор |
|||
|
|
|
|
|
резистор (330 Ом) |
Помните, ранее вы изучили серводвигатель? |
||
|
|
|
|
|
(Оранж.-Оранж.-Коричн.) |
Теперь мы познакомимся с электродвигателем. |
||
|
|
|
|
|
|
|||
|
|
|
|
|
база |
Для это потребуется транзистор, который может |
||
|
|
|
|
|
транзистор |
коммутировать (переключать) больший ток, чем |
||
|
|
|
|
|
2N2222A |
может себе позволить Arduino. Используя |
||
|
|
|
|
коллектор |
эмитер |
|||
|
|
|
|
транзистор, нужно убедиться, что его параметры |
||||
|
|
|
|
|
|
|||
|
|
|
|
|
|
подходят для выбранного оборудования. |
||
|
|
|
|
|
|
Транзистор, который мы используем для этой |
||
|
|
|
|
|
|
рассчитан на максимальное напряжение 40 Вольт |
||
|
|
мотор |
|
|
GND |
и 200 миллиампер, - идеально подходит для |
||
|
|
|
|
для нашего игрушечного двигателя! |
||||
|
диод |
|
|
(земля) (-) |
||||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
Когда вы собираете схему, будьте осторожны |
|
|
|
|
|
|
|
|
и внимательны, не перепутайте транзистор с |
|
|
|
|
|
+5 Вольт |
|
датчиком температуры, они очень похожи. |
||
|
|
|
|
(5V) |
|
|
|
|
: |
Транзисто |
Диод |
Мотор |
Пров |
330 О |
|
||
детали |
|
|||||||
2N2222A |
|
1N414 |
|
|
Резис |
|
||
|
|
|
X 1 |
|
1 |
X 6 |
|
|
|
2N2 |
222A |
A18 |
|
|
|
|
|
|
|
|
|
перед |
|
|
|
|
|
|
|
|
зад |
|
|
|
|
p.64
Опыт 12 : Крутись Мотор
a |
b |
c |
d |
e |
f |
g |
h |
i |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
3 |
4 |
|
|
|
|
|
|
|
4 |
5 |
|
|
|
|
|
|
|
5 |
6 |
|
|
|
|
|
|
|
6 |
7 |
|
|
|
|
|
|
|
7 |
8 |
|
|
|
|
|
|
|
8 |
9 |
|
|
|
|
|
|
|
9 |
10 |
|
|
|
|
|
|
|
10 |
11 |
|
|
|
|
|
|
|
11 |
12 |
|
|
|
|
|
|
|
12 |
13 |
|
|
|
|
|
|
|
13 |
14 |
|
|
|
|
|
|
|
14 |
15 |
|
|
|
|
|
|
|
15 |
16 |
|
|
|
|
|
|
|
16 |
17 |
|
|
|
|
|
|
|
17 |
18 |
|
|
|
|
|
|
|
18 |
19 |
|
|
|
|
|
|
|
19 |
20 |
|
|
|
|
|
|
|
20 |
21 |
|
|
|
|
|
|
|
21 |
22 |
|
|
|
|
|
|
|
22 |
23 |
|
|
|
|
|
|
|
23 |
24 |
|
|
|
|
|
|
|
24 |
25 |
|
|
|
|
|
|
|
25 |
26 |
|
|
|
|
|
|
|
26 |
27 |
|
|
|
|
|
|
|
27 |
28 |
|
|
|
|
|
|
|
28 |
29 |
|
|
|
|
|
|
|
29 |
30 |
|
|
|
|
|
|
|
30 |
a |
b |
c |
d |
e |
f |
g |
h |
i |
Компоненты |
Обозначение |
|
|
|
||
Транзистор 2N222 |
P2N2 |
222A |
A18 |
a1 |
a2 |
a3 |
|
|
|
|
|||
Диод 1N4148 |
|
|
|
b7 |
|
b11 |
Мотор |
|
|
|
e7 |
|
e11 |
Резистор 330 Ом |
|
|
|
e2 |
|
g2 |
Провод перемычка |
|
|
|
e1 |
|
|
Провод перемычка |
|
|
|
Pin 9 |
j2 |
|
Провод перемычка |
|
|
|
a7 |
|
+ |
Провод перемычка |
|
|
|
e3 |
d11 |
|
Провод перемычка |
|
|
|
5V |
+ |
|
Провод перемычка |
|
|
|
GND |
|
|
Промежуточные итоги:
К этому моменту у вас, вероятно, уже начинают появляться собственные идеи и мысли, по поводу новых проектов, которые можно собрать, или вы уже решаете реально сложную задачу.
Несколько советов по дальнейшим действиям. Большинство программ,
которые вы напишите, будут состоять из действий, выполняемых по кругу (loop), плюс еще несколько подобных пунктов ниже:
1.Выполнить какой-то ввод данных
2.Сделать некоторые расчеты, или сравнения
3.Получить, или извлечь полученный результат
4.Повторить действия, или нет!
Мы уже показали вам, как использовать множество различных датчиков и устройств для ввода данных, осталось еще несколько не пройденных опытов. Не стесняйтесь использовать чужие примеры из «Open Source» (для всех) в своих скетчах.
Собирайте кусочки из разных программ вместе, открывайте чужие скетчи в дополнительных окнах, и копируйте кусочки кода из одного окна, в
другое. Так вы научитесь многим приемам программирования.
Используйте константы для номеров портов, создавайте функции в программах, они облегчают повторное использование кусков кода.
Если вам нужна помощь, отправляйтесь в соответствующий интернет форум с данной темой, там вы можете задать свой вопрос не стесняясь.
Попробуйте зайти на форум Arduino по адресу:
arduino.cc/forum, или другой, соответствующий вашим предпочтениям.
Когда вы будете готовы перейти к более сложным темам, загляните на страницы Arduino в учебники по адресу arduino.cc/en/Tutorial.
Много интересных статей можно найти на сайте http://arduinokit.ru
Наконец, если вы думаете что создали что-то действительно классное,
рассмотрите вопрос о том, чтобы познакомить ваш проект с интернет сообществом, чтобы весь мир узнал гения создавшего что-то стоящее.
И не забудьте, дайте знать нам, мы разместим его на нашем сайте! http://arduinokit.ru e-mail: info@arduinokit.ru
12 |
|
Код Arduino: |
|
Откройте в Arduino IDE // Файл > Примеры > MaxKit.ru > lesson_12 |
|||
На заметку: |
|
|
|
|
|
Последовательный порт Arduino может использоваться как для |
|
|
|
получения, так и для передачи данных. Поскольку данные могут |
|
while (Serial.available() > 0) |
прийти в любое момент, сначала они поступают в "хранилище”, |
||
или Буфер обмена Arduino и хранятся там до тех пор, пока вы |
|||
|
|
не будете готовы ими воспользоваться. Команда Serial.available() |
|
|
|
возвращает количество символов, которое порт получил, но вы |
|
|
|
ими еще не воспользовались. Ноль означает, данные отсутствуют. |
|
|
|
Если в порт поступили данные и они находятся в буфере, |
|
|
|
есть несколько способов, чтобы извлечь их оттуда. Один из |
|
speed = Serial.parseInt(); |
таких способов - использовать команду Serial.parseInt(), она |
||
производит поиск очередного целого числа в буфере |
|||
|
|
||
|
|
последовательного порта, и если вы введете "1" "0" "0" в порт, |
|
|
|
эта функция вернет число 100. |
|
Что вы должны увидеть: |
|
||
Двигатель постоянного тока должен |
|
||
вращаться, если все компоненты цепи |
|
||
собраны правильно. |
|
|
|
Если этого не происходит, проверьте |
|
||
загружен ли код в Arduino, а также |
|
||
ознакомьтесь с разделом поиска и |
|
||
устранения неисправностей ниже. |
|
||
Возможные трудности: |
Применение в жизни: |
||
Мотор не вращается |
|
Дистанционно управляемые автомобили |
|
Если вы использовали свой транзистор, |
используют двигатели постоянного тока, для |
||
отличный от 2N2222, но подходящий по |
поворота колес и для движения вперед, назад. |
||
параметрам, проверьте соответствие его ножек |
|||
по документации (возможен обратный порядок). |
|||
Все еще не повезло |
|
|
|
Проверьте работает ли двигатель от 5 Вольт, |
|||
и хватает ли для него мощности источника. |
|||
Все еще не работает |
|
|
|
Иногда Arduino может отключаться от |
|
||
компьютера. Попробуйте отсоединить от нее |
|||
USB разъем и затем снова подсоединить. |