НАШ МАГАЗИН - SHOP.MUSBENCH.COM
Карта Сайта

Урок 5. Первые эксперименты. Макетная плата. Схема мигалки

Учебный курс Ардуино


       
   
   
  
Давайте приступим! В этом уроке мы соберем некоторые базовые макеты, чтобы познакомить вас с основными концепциями Arduino и рабочим процессом. 
   
   
Для начала закрепим плату Arduino Uno и макетную плату к пластиковой монтажной пластине. Поверьте, это очень удобно, когда плата Ардуино и макетная плата физически соединены вместе.  На беспаечной макетной плате есть наклейка, которую вы можете отклеить. (отделите также бумажную подложку монтажной платы).  Arduino Uno крепится винтами снизу. Здесь пригодится небольшая отвертка. Для надежной посадки требуются только две диагонально расположенные крепежные пары винт / гайка. Резиновые ножки (в комплекте) помогают устойчивости всей конструкции, и теперь ваша схема также более защищена от любых кусков провода или металлических винтиков, которые могут быть разбросаны на вашем рабочем столе.

Для уроков вам потребуется:

1. Компьютер с установленной программой Arduino

2. Плата Arduino Uno

3. USB A - B кабель

4. Макетная плата - breadboard половинного размера

5. Гибкие провода-перемычки для breadboard


6. Пять обычных 5-миллиметровых светодиодов

7. Яркий RGB светодиод или три отдельных светодиода красного синего и зеленого цвета

8. Пять постоянных резисторов сопротивлением от 220 Ом до 1 К. Все пять одного номинала, подойдет любой номинал из указанного диапазона

9. Пластиковое основание для удобного крепления платы Ардуино и макетной платы

10. Небольшая отвертка


   
Макетная плата (BreadBoard)

Макетная плата позволяет быстро и легко создать прототип устройства. Вы можете думать об этом как о "белой доске", отлично подходящей для быстрого мозгового штурма и экспериментов. Макеты позволяют подключать компоненты с помощью многопортовых металлических разъемов. Проводящие части макета позволяют электронам течь между выводами компонентов, которые вы вставляете в гнезда.
  
   
на фото, справа, вы можете видеть "внутренности" макетной платы, вы видите внутренние перемычки, которыми соединены группы гнезд. С каждой стороны есть две длинные соседние рельсы, которые с лицевой стороны помечены красными и синими линиями. Эти длинные соединители обычно используются для подключения питания и заземления, которые используются крайне часто. Маленькие горизонтальные ряды, заполняющие центральную часть платы, предназначены для подключения проводов и компонентов. Обратите внимание на разделитель посередине доски - это сделано для того, чтобы предоставить место для размещения микросхем, обеспечивая независимый доступ к каждому из их выводов.
    
Для успешного использования такой макетной платы требуется некоторая практика, главным образом потому, что немного трудно вспомнить, какие гнезда связаны с другими гнездами. Вы можете периодически подсматривать на фотографию внутренней части макета, это совершенно нормально!
   
   
Первая наша схема - "Мигалка"

   
Первая схема, которую мы построим на макетной плате, соединяет красный светодиод с платой Arduino Uno. Делаем монтаж неспеша, производя одно соединение за раз. Соблюдайте цвет проводов, чтобы облегчить задачу нам обоим. Дважды проверьте, что ваш USB-кабель отсоединен, прежде чем выполнять какие-либо подключения к вашей плате. Возьмите красный провод и вставьте один конец в гнездо, обозначенное 5V на плате Arduino. Подключите другой конец красного провода к шине, обозначенноой красной линией, - это будет ваша шина питания.
   
   
   
Аналогичным образом возьмите синий провод и подключите его к одному из контактов, обозначенных GND, рядом с красным проводом. На Arduino Uno есть три гнезда для заземления, и все они подключены к той же земле, что и чип и остальная часть платы, поэтому не имеет значения, какой из них вы выберете. Подключите другой конец синего провода к голубой шине заземления на макете. Это обычная конфигурация, которую вы будете использовать снова и снова. Она должна стать вашей отправной точкой для новых макетов, даже если вы не используете обе шины сразу. Схемы этого урока подключатся к земляной шине, а в следующем уроке вы будете использовать некоторые компоненты, которые будут подключаться к шине питания 5 В
.
 
  
  
    
Затем подключите желтый провод к контакту 13 платы Arduino . Вставьте другой конец в любой горизонтальный ряд на макете (строка 10, показанная на фото). Для этой первой схемы все ваши соединения должны быть реализованы на ближайшей к плате Arduino половине макета.
  
  
  
   
Подключите другой синий провод от любого штыря на вашей земляной шине к другому горизонтальному ряду на вашем макете (строка 18, показанная на фото).
  
  
  

Теперь возьмите резистор 1K (полосы:  коричнево-черно-красное-золотое) и подключите один из его выводов (не имеет значения, какой) в тот же ряд, что и синий провод. Резисторы выглядят одинаково, за исключением полос, используемых для указания их номиналов.
  
  

Подключите другой конец резистора к ряду рядом с желтым проводом.
  
  
  
    
   
   
Теперь возьмите красный светодиод (светоизлучающий диод). Посмотрите, видите, один из его проводов длиннее другого? Это положительный электрод  (анод), а более короткий вывод - отрицательный (катод). В схеме, которую мы строим, положительный заряд поступает с пина Arduino и проходить через светодиод и резистор на землю, поэтому вы должны подключить положительный (более длинный) вывод светодиода к желтому проводу, а отрицательный (более короткий) вывод светодиода - к резистору. Резистор помогает ограничить ток, проходящий через светодиод, это необходимо чтобы предотвратить выход светодиода из строя из-за превышения допустимого тока.
 
  
   
Еще один способ убедиться в полярности светодиода - проверить его мультиметром, включённым в режим проверки PN переходов (прозвонки диодов). Светодиод неярко засветится, когда плюсовой (красный) щуп мультиметра будет соединен с его анодом, а минусовой щуп - с катодом. Однако следует иметь в виду, что не все мультиметры в режиме проверки диодов имеют на щупах достаточное для зажигания светодиода напряжение. гарантированно это могут мультиметры от Richmeters, например RM109, RM102 или RM409b.
 
  
    
Подключите USB-кабель, и светодиод должен немедленно начать мигать!
  
Если ваш светодиод не мигает, отключите кабель USB, а затем перверните светодиод и снова подключите USB. Возможно, светодиод был просто вставлен в неправильно, что ему не повредит, но он и не загорится. Или, возможно, один из ваших других проводов или резистор подключены неправильно. Дважды проверьте соединения согласно схемы:
Нажмите «Начать симуляцию», чтобы запустить эмулятор Arduino, в котором загружена программа скетча «blink». Мы будем использовать модули Tinkercad Circuits, подобные этому во всем курсе, чтобы  было более наглядно. Они содержат схемы соединений для ваших макетов, а также код, который вам понадобится для каждого проекта. Нажмите кнопку «Код», чтобы увидеть программу, называемую скетчем Arduino. Это выглядит так:
  
     
В дальнейшем, для управления такими программами, как эта и отправки их в контроллер платы Arduino, вы будете использовать оболочку Arduino IDE. Вы уже загрузили этот скетч в свою плату Arduino в настройках программного обеспечения из предыдущего урока, но повторение уже пройденного не повредит.  Вы можете найти этот скетч и многие другие примеры, используемые в этих занятиях  через программное меню Arduino (File -> Examples -> Basics -> Blink).
   

Примеры программ дают отличные отправные точки для экспериментов и ваших собственных проектов. Эти примеры неоценимы с точки зрения получения вами опыта работы с Arduino. Используйте их!

При написании первого кода часто возникает много опечаток, что может вызвать запутывающие ошибки. Примеры пригодятся, если вы хотите исправить собственный нерабочий код (такой процесс называется отладкой). Сравнение вашей работы с законченными примерами рабочего кода может стать одной из полезных стратегий, помогающих отлаживать ваш собственный код.
 
Давайте подробнее рассмотрим элементы этого базового скетча Arduino. Прежде всего идет небольшой комментарий:

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:

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

int led = 13;
Следующая строка - объявление переменной. Вы можете представить переменную как "ведро" для некоторой информации. Переменные, также как и вёдра, имеют размеры и формы для хранения различной информации. Переменные также имеют имена, такие как обязательная надпись на ведре.

Эта строка кода определяет переменную типа int, что означает целое число. Вспомните о математическом классе начальной школы, когда вы, возможно, узнали, что целые числа - это целые числа (положительные или отрицательные).

Итак, у нас есть "ведро", которое может содержать целое число. Имя переменной -
Led, но c таким же успехом может быть например MyLEDPin или любое слово (только буквы и цифры, чувствительные к регистру), всё это зависит только от вас. Я настоятельно рекомендую использовать осмысленные имена для ваших переменных, чтобы вы могли отслеживать, что делает ваша программа!
  
После строки вышеприведенного кода в любое время, когда мы видим Led в программе, в реальности это будет заменено на число 13. Это удобно для таких конфигураций, как наша, где мы хотим, чтобы можно было ссылаться на тот контакт, к которому подключен светодиод. Если впоследствии мы захотим изменить номер контакта, то нам нужно будет поменять число только один раз в одном месте.

// the setup routine runs once when you press reset:
void setup() {
}

Как отмечается в комментарии, любой код, помещенный между этой строкой и закрывающей фигурной скобкой } является частью инициализации, то есть это секция кода, которая выполняется один раз за сеанс. Код внутри процедуры инициализации выполняется один раз, когда ваша плата включается, или когда вы нажимаете кнопку сброса Arduino.

// initialize the digital pin as an output.
  pinMode(led, OUTPUT);
}

Пины 0-13 на плате Arduino являются цифровыми портами ввода / вывода, это означает, что они могут быть либо входами, либо выходами. pinMode (); это функция, сокращенный способ ссылаться на подмножество команд так сказать "под капотом".

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

Блоки информации, передаваемые в функции, называются аргументами. Поскольку переменная
led будет обслуживать ее содержимое в любое время, когда вы вводите ее, номер пина платы, который передается pinMode (); равен 13, а состояние - OUTPUT. Это конфигурирует контакт с номером 13 для управления светодиодом, а фигурная скобка закрывает инициализацию.
    

// the loop routine runs over and over again forever:
void loop() {

Это основная часть (главный цикл) программы Arduino, в которой обычно происходят такие действия, как проверка входных контактов и управление выходными контактами. Все, что мы напишем между этой строкой и  закрывающей фигурной скобкой } будет повторяться до тех пор, пока не будет отключено питание платы.

digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)

Первой в цикле идет функция
digitalWrite () ;, которая принимает два блока информации: номер пина и состояние HIGH (включено)или LOW (выключено). Эти блоки информации, переданные в функции, называются аргументами. Поскольку переменная led будет передавать свое содержимое в любой момент, когда вы ее напишете, номер вывода, который будет передан в качестве аргумента в функцию digitalWrite (); будет равен 13, а состояние  вывода будет HIGH (включено). Таким образом, эта строка кода приводит к включению светодиода, подключенного к выводу 13.

delay(1000);               // wait for a second

delay (); является еще одной встроенной функцией Arduino. Она приостанавливает  программу на некоторое время, задаваемое в миллисекундах. Эта строка кода приостанавливает программу на 1000 мс, то есть на одну секунду.

digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW

Как мы уже разобрали ранее, функция
digitalWrite (); может включать или выключать выходной контакт. На этот раз он устанавливает контакт 13 в состояние LOW (выкл.).

delay(1000);               // wait for a second
}

Эта строка приостанавливает программу на время, равное одной секунде, а фигурная скобка означает конец цикла. Итак, чтобы подвести итог, программа включает и выключает светодиод с интервалом в одну секунду. Давайте попробуем изменить этот интервал.  Например, вы можете создать более неравномерное мигание:

void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(2000);               // wait for two seconds
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(500);                // wait for a half second
}


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

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