среда, 14 августа 2019 г.

Урок 2. Подключим светодиод. Да будет свет!

Я поздравляю Вас с успешной установкой программы для работы с Arduino!

Теперь задача, проще некуда - зажечь светодиод. Обычно мы можем включить его сразу от батарейки через резистор по простейшей схеме:
 ÐŸÐ¾Ñ…ожее изображение
Но нам не нужно, чтобы светодиод всё время горел, мы же хотим управлять его включением программно! Для этого мы подключим его по этой же схеме, но не к батарейке, а к выходам контроллера. И всего делов! 


Для начала возьмём светодиод (любого цвета). Обратим внимание, что ножки у него разной длины.

Кто догадался какую ножку нужно выводить на плюс, а какую на минус? Молодцы, единогласно ответим - длинную на плюс!

Что нам еще нужно - это резистор. Он необходим, чтобы ограничить ток, идущий через светодиод. Сопротивление диода в прямом направлении очень мало, и если не подключить резистор, то ток в цепи будет большим (по закону Ома) и светодиод сразу сгорит. Нам же нужно, чтобы он работал долго. "Какой резистор взять?"- вот в чем вопрос. Напряжение выхода контроллера примерно 5В, а значит не вдаваясь в подробности расчетов (можно просто подобрать по яркости горения) и взять 220 Ом.

Как же выбрать из кучи резисторов именно на 220 Ом? Можно выучить специальную таблицу маркировок. Но я рекомендую способ проще и надежнее - взять тестер и измерить! Так, заодно, мы еще и сможем проверить его работоспособность.


Ну вот и выбрали: 217 - это почти 220! Годится. Теперь мы готовы собрать нашу первую схему.

Берем наш контроллер и макетную плату. Ставим светодиод в макетную плату и сразу запоминаем, где у него плюс.


Подключаем к плюсовой ножке резистор (можно и к минусовой - без разницы).


А теперь двумя проводками (папа - папа) подключаем минусовую ножку светодиода к разъему GND (что означает "корпус" или "ноль") контроллера, а вторую ножку резистора подключаем к "плюсовому" программируемому (назовем его так) выходу контроллера, (например, к 10-му). Можно использовать любой выход, номер выхода мы запоминаем для описания в программе.


Теперь наша схема собрана. Если бы вместо контроллера была батарейка 5В, то светодиод бы уже горел во всю. Но мы хотим пойти гораздо дальше и заставить лампочку творить чудеса. А, для этого, подключим контроллер к компьютеру (или ноутбуку) как в первом уроке и запустим установленную программу. 

Как мы увидим загрузится среда программирования, куда мы и запишем свой первый код. Напишем программу на языке программирования C++.  Любая программа Arduino состоит из 2 основных частей (функций):
1. setup()  - установки. Тут мы описываем наши порты контролера.
2. loop() - наша основная программа, где мы пишем действия, которые должен выполнить контроллер Arduino.

Чтобы светодиод зажегся нужно, чтобы эта программа приобрела следующий вид (дописываем всего три строки):

Не пугайтесь непонятного кода. Тут все просто - всего-то 3 строчки полезной программы! 

Const int LED=10; означает, что мы объявляем постоянную (const) целого типа (int) с названием LED, значение которой устанавливаем равным 10. Теперь скажу проще - у нас есть светодиод, подключенный к десятому порту платы Arduino, и нам нужно как-то объяснить это контроллеру, но при этом читая программу мы сами должны будем в последующем понимать все обозначения. Поэтому порт с "лампочкой" мы назвали LED! Эту строку можно и не писать, а в дальнейшем просто вместо LED писать сразу "10" - номер порта и все будет работать, но будет сложнее разбираться в программе. Когда же мы даем имена портам, нам потом легче работать и мы никогда не запутаемся!

Далее рассмотрим очень важные команды.

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

digitalWrite - ("Цифровая запись") команда, которая "Записывает" в порт (выдает на соответствующие зажимы платы контроллера) определенное состояние "HIGH"(есть напряжение) или "LOW"(нет напряжения). Если еще упростить, то нашу виртуальную батарейку на 10 порте с именем LED можно подключить или отключить программно. в нашей первой программе мы сделали, что лампочка все время горит, потому, что на порт 10 мы подаем постоянное напряжение ("HIGH"). Этой командой следует пользоваться для портов, определенных как выходы.  

Делаем загрузку этой программы в память контроллера (нажимаем стрелочку "Загрузка" или в меню выбираем "Скетч -> загрузка". При этом будут автоматически проверены ошибки.
Ву-а-ля, светодиод горит!


Вы молодцы! Все получилось. Наш контроллер с нашей первой программой теперь выполняет роль батарейки и зажигает светодиод! А если программу чуть-чуть изменить не меняя схему, то можно заставить нашу "лампочку"...

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


Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.

Ностальгия по детству с ПМК или воспитание востребованных детей с Arduino и Raspberry-Pi.

Когда-то, когда мне было 12 лет меня заинтересовал программируемый микрокалькулятор БЗ-21, который был у отца. В журналах "Техника мо...