Подключение светодиода к Arduino. Мигаем светодиодом.

В прошлой статье мы рассмотрели, как подключить платформу Arduino Uno к компьютеру и теперь можем смело начать с ней работать. Давайте попробуем запрограммировать простенький скетч. Скетчами называют программы, созданные в среде Arduino. Наш скетч будет включать и выключать светодиод с интервалом в 1 секунду.

Итак, для такого эксперимента искать светодиод не нужно, поскольку на самой платформе уже присутствует встроенный светодиод. Он подключен к контакту «13». Если же Вы нашли светодиод и желаете его подключить, то подключите его параллельно встроенному светодиоду через резистор номиналом в 150 Ом. Я заметил, что на некоторых форумах советуют использовать резистор на 220 Ом, но учитывая характеристики светодиодов и выходное напряжение на разъемах Arduino можно сделать вывод, что 220 Ом будет перебором. Возможно, такой номинал использовали с целью "запас на всякий случай", но если мы вспомним закон Ома из учебников 7-го класса и пересчитаем, то получим такой результат:


Uпитания - напряжение питания цепи [V]
Uсветодиода - прямое напряжение светодиода (среднее значение) [V]
Iсветодиода - рабочий ток светодиода [mA]

Подобный расчет можно осуществить с помощью калькулятора «Расчет резистора для светодиода», который находится в правой колонке.
Поэтому если возникло желание подключить светодиод дискретно, то подключите его согласно представленной ниже схеме: анод светодиода (длинная ножка) подключаем в разъем «13», катод (короткая ножка) присоединяем к одному из выводов резистора, второй вывод резистора подключаем в разъем «GND».


Копируем код скетча или же вызываем его через меню «File» - «Examples» - «Basics» - «Blink».

int led = 13; // Определим, что наш светодиод подключен к контакту "13"
void setup()  // Обязательная функция. Действия в ней происходят один раз
{
pinMode(led, OUTPUT); // Настраиваем режим работы контакта "13" на выход
}
void loop()   // Обязательная функция. Действия в ней происходят бесконечное число раз
{
digitalWrite(led, HIGH); // Подаем высокий уровень. Светодиод загорается
delay(1000); // Временная задержка в 1 секунду
digitalWrite(led, LOW);  // Подаем низкий уровень. Светодиод затухает
delay(1000); // Временная задержка в 1 секунду
}

Разберемся теперь с кодом. Любой скетч должен содержать в себе две функции: void setup() и void loop(). Код, находящийся в теле функции void setup() выполняется один раз, после чего начинает беспрерывно выполняться код в теле функции void loop(). Именно поэтому для конфигурации используется функция void setup(), а основной код находится в теле функции void loop().
В данном скетче мы указали, что наш светодиод подключен к контакту «13», но если быть более точным, то формулировка является несколько неправильной. На самом деле Arduino не знает что к нему подключено. Поэтому мы ему сообщаем, что есть некоторая переменная «led» и она взаимодействует с Arduino через контакт «13». После этого мы переходим к конфигурации — к функции void setup(). В отличие от аналоговых контактов, цифровые могут быть сконфигурированы «на вход» или «на выход». Например, если мы подключим к Arduino датчик и хотим снять с него значение, то настраивать необходимо на вход (мы получаем входящий сигнал), а если мы подключим светодиод и хотим, чтоб он светился, то настраивать необходимо на выход (мы отдаем сигнал — подаем питание). Для указания режима работы используется функция pinMode() которая содержит два аргумента. Первый аргумент в нашем примере — переменная led. Вспомним, что на самом деле переменная led — это контакт «13».
Второй аргумент в нашем примере — режим OUTPUT. Как было упомянуто выше, существует два режима работы: INPUT («на вход») и OUTPUT («на выход»).
Теперь глядя на строчку pinMode(led, OUTPUT); можно смело сказать, что мы настроили контакт «13» на выход.
Переходим к функции void loop(). Мы знаем, что действия в теле данной функции происходят циклически бесконечное число раз (все происходит по кругу). Для реализации нашей задачи (мигание светодиода) необходимо просто включить и выключить светодиод. После этого цикл подойдет к концу. Светодиод снова включится и снова выключится. Но если просто добавить эти две строчки, то светодиод будет мигать так быстро, что человеческий глаз не сможет этого заметить. Для этого после «включения» и «выключения» мы поставим временную задержку в одну секунду. Временная задержка реализуется через функцию delay(). Внутри скобок функции указывается время в миллисекундах. 1000 миллисекунд = 1 секунда. Поэтому добавив в код строчки delay(1000); мы добьемся должного результата.

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

3 коммент.:

VoltNerd комментирует...
Этот комментарий был удален автором.
VoltNerd комментирует...

Сначала запутался, теперь стало понятно. Только вот есть разница, если резистор к катоду или аноду подключаешь или нет? Так как в тексте написано одно, а на картинке другое. И какую функцию выполняет резистор?

Unknown комментирует...

просмотри це відео

https://www.youtube.com/watch?v=_pf9pkfkpH8&index=35&list=UURKRGoo367_uweBlZ8PF4Nw

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

 
Copyright © 2013 | Arduinokit
Arduino проекты. Уроки, программирование, управление и подключение ардуино.