Мигающий светодиод (Arduino)

Содержание

Урок 1. Мигающий светодиод на Arduino

Мигающий светодиод (Arduino)

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

Светодиод — это полупроводниковый прибор, трансформирующий электроток в видимое свечение.

И на основе свечения светодиода мы будем работать и рассматривать основу программирования Arduino. Перейдем непосредственно к практике Для начала нам нужно приготовить необходимый набор предметов для работы!

Для начала работы нам понадобятся такие компоненты

  • плата Arduino
  • Breadboard (макетная плата для удобного подключения приборов к Arduino)
  • Провода
  • светодиод
  • резистор

Также вам потребуется программа Arduino IDE, которую можно скачать с официального сайта Arduino.

Данные комплектующие можно приобрести на официальном сайте или в интернет-магазине AliExpress или Амперка.

Спросите вы, что такое Breadboard ?

Breadboard– макетная (монтажная) беспаечная плата. Breadboard представляет из себя сетку из гнезд, которые обычно соединяются так:

Далее, когда мы приготовили все компоненты к работе и установили программу на ПК , нам следует правильно их подключить . Подключать нужно очень внимательно, чтобы все компоненты остались целыми и невредимыми.

Не забудьте проверить “+” и “-” у светодиода. Минус у светодиода можно отличить двумя способами :

  • У “минуса” на светодиоде по стандарту ножка вывода длиннее чем у плюса.
  • Если вы внимательно всмотритесь в светодиод, то можете увидеть своеобразный флажок, так вот, где флажок там и “минус” светодиода.

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

/*
Зажигаем светодиод на одну секунду, затем выключаем его на
одну секунду в цикле.

*/
int led = 8;
/*объявление переменной целого типа, содержащей номер порта к которому мы подключили провод */
void setup() {
/* Инициализируем объявление используемого порта вход/выход в режиме выхода.

*/
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH); // зажигаем светодиод
delay(1000); // ждем секунду
digitalWrite(led, LOW); // выключаем светодиод
delay(1000); // ждем секунду
}

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

Перейдем к пояснению нашего скетча (кода)

С начала в нашем скетче мы объявили переменную int led = 8; .

Мы таким образом заявили, что хотим иметь ячейку памяти, к которой будем обращаться по имени led и изначально, при старте Arduino, в ней должно лежать значение 8 пина.

Перед именем переменной в определении указывается тип данных для этой переменной. В нашем случае — это int , что означает «целое число» (int — сокращение от английского «integer»: целочисленный).

Процедура setup выполняется один раз при запуске микроконтроллера. Обычно она используется для конфигурации портов микроконтроллера и других настроек. В нашем случае мы указали, что наш светодиод на 8 выходе . “pinMode(led, OUTPUT);” Хотелось бы сказать, что Arduino выполняет с начала действие setup , а далее выполняет действие другой процедуры, про которую мы сейчас поговорим.

После выполнения setup запускается процедура loop, которая выполняется в бесконечном цикле . Именно этим мы пользуемся в данном примере, чтобы маячок мигал постоянно.

Процедуры setup и loop должны присутствовать в любой программе (скетче), даже если вам не нужно ничего выполнять в них — пусть они будут пустые, просто не пишите ничего между фигурными скобками. Запомните, что каждой открывающей фигурной скобке { всегда соответствует закрывающая } .

Они обозначают границы некого логически завершенного фрагмента кода. Следите за вложенностью фигурных скобок. Для этого удобно после каждой открывающей скобки увеличивать отступ на каждой новой строке на один символ табуляции. Обращайте внимание на ; в концах строк. Не стирайте их там, где они есть, и не добавляйте лишних.

Вскоре вы будете понимать, где они нужны, а где нет.

Функция digitalWrite(pin, value) не возвращает никакого значения и принимает два параметра: pin — номер цифрового порта, на который мы отправляем сигнал value — значение, которое мы отправляем на порт.

Для цифровых портов значением может быть HIGH (высокое, единица) или LOW (низкое, ноль) Если в качестве второго параметра вы передадите функции digitalWrite значение, отличное от HIGH , LOW, 1 или 0, компилятор может не выдать ошибку, но считать, что передано HIGH. Будьте внимательны Обратите внимание, что использованные нами константы: INPUT, OUTPUT, LOW, HIGH, пишутся заглавными буквами, иначе компилятор их не распознает и выдаст ошибку. Когда ключевое слово распознано, оно подсвечивается синим цветом в Arduino IDE

Задачи для самостоятельного решения, для укрепления материала

1) Измените скетч так, чтобы светодиод светился 3 секунды, а пауза между свечением была 0.5 секунды.

2) Измените скетч так, чтобы светодиод ,при включении Arduino, горел непрерывно 4 секунды (подсказка: сделайте это с помощью процедуры setup ), а потом продолжал мигать в интервале, который мы должны были задать в первом задании .

Источник: http://helpduino.ru/svetodiod.html

Умное мигание светодиодом в Ардуино07.02.2016 14:37

Мигающий светодиод (Arduino)

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

Бывает при программирование какого-нибудь устройства не хватает портов ввода-вывода микроконтроллера. Или из экономических соображений, а может нехватки места в корпусе, не хочется устанавливать дисплей, а как то сигнализировать о режимах работы устройства очень хотелось бы.

Часто достаточно сигнализировать о этих режимах горением или миганием светодиода. А если режимов много?
На мысль меня навела автомобильная сигнализация, в которой я как то программировал режим автозапуска.

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

Затем нажать кнопку в подтверждения и услышать длинный сигнал. Гениально! Никаких дисплеев и экранных меню. Правда, одновременно, и жутко неудобно.

Но если внутренних режимов немного, то использовать количество морганий светодиодом вполне функционально.

Начнем с простого.

Пример мигания светодиодом для Ардуино

Это первая программа которую осваивают при изучении Ардуино. Во многих контроллерах, которые мне попадались в последнее время, эта программа зашита на заводе, видимо для тех кто не осилил и это.

Простейший пример мигания светодиодомvoid setup() { pinMode(13, OUTPUT); digitalWrite(13, LOW); } void loop() { digitalWrite(13,HIGH); delay(500); digitalWrite(13,LOW); delay(500);}

Казалась бы задавай различные интервалы между высокими и низкими уровнями порта и будет нужное. Но при этом контроллер больше ничего не делает (ну почти ничего, прерывания он все таки обрабатывает). Делать что-то еще он конечно может, но не в основном цикле loop ().

Поэтому отказываемся от delay () и переходим на события с использованием millis ()

Использование событий с использованием millis ()

Код мигания светодиодом с использованием millis ()void setup() { pinMode(13, OUTPUT); digitalWrite(13, LOW); } uint32_t ms, ms1 = 0;bool led_stat = true; void loop() { ms = millis();// Событие срабатывающее каждые 500 мс if( ( ms – ms1 ) > 500 || ms < ms1 ){ ms1 = ms;// Инвертируем светодиод digitalWrite(13, led_stat); led_stat = !led_stat; }}

Ну вот. Цель достигнута. Светодиод мигает, а процессорное время в цикле loop () практически полностью доступно для других функций. Правда в таком коде использование требуемых режимов мигания реализуется довольно сложно — несколько событий с разными интервалами, много условий по необходимому режиму и предыдущему состоянию. Слишком сложно.

Обработка битовой матрицы состояния светодиода

Уменьшаем время срабатывания события до 1/8 секунды и в 1 байте кодируем 8 бит состояний, отображаемых последовательно.

Код мигания светодиода с битовой матрицей состояний// Массив режимов работы светодиодаbyte modes[] = { 0B00000000, //Светодиод выключен 0B11111111, //Горит постоянно 0B00001111, //Мигание по 0.5 сек 0B00000001, //Короткая вспышка раз в секунду 0B00000101, //Две короткие вспышки раз в секунду 0B00010101, //Три короткие вспышки раз в секунду 0B01010101 //Частые короткие вспышки (4 раза в секунду)}; uint32_t ms, ms1 = 0, ms2 = 0;uint8_t blink_loop = 0;uint8_t blink_mode = 0;uint8_t modes_count = 0; void setup() { pinMode(13, OUTPUT); digitalWrite(13, LOW); modes_count = 1; blink_mode = modes[modes_count];} void loop() { ms = millis();// Событие срабатывающее каждые 125 мс if( ( ms – ms1 ) > 125|| ms < ms1 ){ ms1 = ms;// Режим светодиода ищем по битовой маске if( blink_mode & 1= 7 )modes_count = 1; }}

Первые три режима работы светодиода простые. А вот остальные уже можно использовать для демонстрации режима микроконтроллера:

Короткая вспышка 1 раз в секунду
Две вспышки в секундуТри вспышкиИ постоянные вспышки четыре раза в секунду

В принципе, на этом можно было и остановиться, так как для большинства проектов этого бы хватило. Но если этого мало и вам нужно будет разрабатывать программирование автосигнализации)))

Что если 8 бит состояний светодиодов мало?

Использование 4-х байт для определения состояния светодиода

Код сигнала SOS азбукой Морзеbyte bytes[] = {0B00010101,0B00110011,0B10100011,0B00000010}; uint32_t ms, ms1 = 0;uint8_t blink_loop = 0; void setup() { pinMode(13, OUTPUT); digitalWrite(13, LOW); } void loop() { ms = millis();// Событие срабатывающее каждые 125 мс if( ( ms – ms1 ) > 125|| ms < ms1 ){ ms1 = ms;// Выделяем сдвиг светодиода (3 бита) uint8_t n_shift = blink_loop&0x07;// Выделяем номер байта в массиве (2 байта со здвигом 3 ) uint8_t b_count = (blink_loop>>3)&0x3; if( bytes[b_count] & 1

Источник: https://pcnews.ru/blogs/umnoe_miganie_svetodiodom_v_arduino-679019.html

Ардуино: управление светодиодом

Мигающий светодиод (Arduino)

Как известно, первая программа, которую человек пишет при изучении программирования называется «Hello World!». Суть этой программы сводится к тому, чтобы после запуска на экране появилась указанная простая фраза.

В мире микроэлектроники, симметричной задачей смело можно назвать мигание светодиодом

Источник: http://robotclass.ru/tutorials/arduino-led/

Arduino — мигание светодиодом

Мигающий светодиод (Arduino)

На сегодняшний день аппаратная платформа управления периферическими приспособлениями на основе Ардуино приобрела чрезвычайно обширное распространение. Благодаря исключительной простоте управления и достаточно широким функциональным возможностям, подобные устройства активно применяются в самых разнообразных проектах, от управления моторчиками до систем «умный дом».

Ардуино что это?

Непосредственно сам модуль Ардуино представляет собой микропроцессор семейства Atmel AVR ATmega с набором портов способных принимать и транслировать информацию. Управление устройством совершается специальной программой-скетчем написанной на модифицированном С/С++. Язык программирования весьма лёгкий даже для абсолютных «чайников».

Программы пишутся в специальной оболочке:

Verify/Compile – проверяем валидность кода;

UploadtoI/OBoard – загружаем программу в Ардуино.

Загрузка исполняемого скетча

Если вы загружаете данные впервые, потребуется настроить параметры загрузки: Tools > Boardи Tools > Serial Port.

Порт подключения можно уточнить в диспетчере устройств (Панель управления > Диспетчер устройств> Порты (COM, LPT). В настройках требуется указать тип платы Ардуино в выпадающем списке.

После чего записывает в память устройства загрузчик (Bootloader).

Управление светодиодами

Управление светодиодами на ардуино позволяет реализовать самые разнообразные схемы: включение/отключение по нажатию кнопки, мигание, плавное включение/отключение.

Для работы со светодиодом нам потребуется простейшая программа для управления портами. Для ее написания используем лишь несколько базовых команд:

pinMode (порт, режим) – команда устанавливает режим работы вывода (порта) на плате. Порт – номер вывода, режим – OUTPUT (режим передачи) и INPUT (режим приёма информации).

digitalWrite (порт, значение) – команда объявления состояния порта. Порт – номер вывода, режим – HIGH (включён), LOW (выключен).

Delay (интервал) – задержка между выполнением команд. Интервал – количество миллисекунд.

Сам скетч представляет собой две функциональные части. Объявление переменных находится в модуле voidsetup () {…}, исполняемый код voidloop () {…}.

Наглядно все можно увидеть на видео:

Мигаем светодиодом арудино

Код скетча для мигания светодиода (скетч для ардуино мигание светодиодом находится во встроенном скетче “blink”).

Мигаем с частотой 1 секунда.

Скетч мигание светодиодом на ардуино:

void setup () {
pinMode (9, OUTPUT); // устанавливаем вывод 9 в режим передачи
}
void loop() {
digitalWrite(9, HIGH); // подаём сигнал на порт 9 +5В
delay(1000); // ждем секунду
digitalWrite (9, LOW); // отключаем порт 9
delay(1000); // ждем секунду
}

Как подключить светодиод к ардуино

Подключение к ардуино желательно делать через резистор. В arduino подключение возможно и через встроенный резистор, но это требует специальный синтаксис команд и лучше его не использовать. Ограничительный резистор между выходом порта и светодиодом берем на 150 — 200 Ом.

Плавное включение светодиода

Для плавного включения используем новую команду ШИМ-модуляции сигнала.

ШИМ-модуляция – управление мощностью сигнала с помощью частотной модуляции.

Что бы понять принцип работы шим-модуляции, представьте резиновую трубку через которую в стакан течет вода. Если мы будем каждую секунду зажимать и отпускать трубку, за равный промежуток количество набранной воды уменьшиться в два раза. Если зажимать на одну секунду один раз в четыре секунды – ограничим объем жидкости на четверть.

В Ардуино модуляция сигнала происходит с частотой около 500 импульсов в секунду.

Команда analogWrite (порт, частота модуляции) подает на заданный порт модулированный сигнал. При частоте 255 выдается 100% мощности, при частоте 127 соответственно 50%. Изменяя частоту модуляции мы можем менять яркость. Для модулированного сигнала используют аналоговые входы-выходы.

void setup() // процедура setup
{
pinMode (6, OUTPUT); // включаем аналоговый порт 6 на вывод
}
void loop()
{

Цикл увеличения частоты модуляции с 0 до 255

For (int i=0; i=0;i—)
{
analogWrite(6, i);
delay(20);
}

В этом примере светодиод плавно разгорается за 5 сек. потом постепенно гаснет в течении 5 сек.

Для подключения большого количества светодиодов либо мощного светодиода требуются коммутаторы: транзисторный ключ, опотрон, микросхема коммутатор. Они позволяют подавать питание от внешнего источника достаточной мощности.

Оцените, пожалуйста, статью. Мы старались:)
Загрузка…

Источник: https://SvetodiodInfo.ru/texnicheskie-momenty/arduino-miganie-svetodiodom.html

Мигание светодиода с Arduino

Мигающий светодиод (Arduino)
Want create site? Find Free WordPress Themes and plugins.

Вам нужна плата arduino, светодиод, резистор и макет. После того, как у вас есть эти компоненты, вам необходимо установить интегрированную среду разработки Arduino на свой компьютер. Кроме того, вам необходимо настроить и настроить плату Arduino на своем компьютере (путем установки драйвера устройства).

Мигающий светодиод с Arduino

Откройте arduino IDE и напишите следующую программу, чтобы мигать светодиод. Я написал классический светодиодный мигающий. Вы можете увидеть снимок экрана ниже. После написания программы вы можете сохранить ее с именем файла по вашему выбору (найти File-> Save в строке меню IDE).

Теперь нам нужно загрузить программу с ПК на нашу плату arduino. Для этого вам необходимо выполнить следующие шаги.

Шаг 1 — выбор платы

Вы должны выбрать тип платы arduino в своей среде IDE. Я использую плату Arduino Uno. Чтобы выбрать плату, найдите Tools в строке меню. Выберите вариант «Board» — и выберите правильную плату arduino. Я выбрал arduino uno. Смотрите скриншот.

Шаг 2 — выберите правый порт

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

Раздел Port (COM & LPT) и найдите открытый порт с именем « Arduino Uno (COMxx) ». Если вы используете другую доску, вы найдете соответствующее имя. Важно то, что xx в части COMxx . В моем случае это COM5 . Таким образом, мой номер порта — 5 .

 Чтобы выбрать правильный порт, откройте Tools–> Serial Port и выберите номер порта. См. Снимок экрана ниже.

Теперь все готово. Ваша плата arduino готова к общению с вашим ПК и наоборот. Инструкции будут отправлены на плату arduino с вашего ПК. Теперь давайте посмотрим, как это сделать.

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

ШАГ 1: — Компиляция.  Это процесс преобразования кода, который вы только что записали в arduino IDE, в другую форму, которая понимается только микроконтроллером на вашей плате arduino. В нашем примере мы используем arduino uno board. Он выполнен с использованием микроконтроллера Avr (Atmega328).

 В arduino IDE компиляция называется « verify». Поэтому нажмите кнопку подтверждения в своей среде IDE (см. Кнопку с отметкой о метке чуть ниже строки меню). См. Также скриншот, приведенный ниже.

 Когда вы нажмете кнопку подтверждения, программа, которую вы написали в arduino IDE, будет скомпилирована для любых ошибок, а затем преобразована в другую форму, которую понимает Avr Atmega328.

ШАГ 2: — Запись — встроенные дизайнеры используют слово « burning», чтобы ссылаться на загрузку программы на любой микроконтроллер. Итак, на этом этапе мы загрузим проверенную программу в arduino IDE на плату arduino.

 Для этого нажмите кнопку « upload» (см. Кнопку со стрелкой вправо). Щелчок по кнопке «upload» начнет процесс сжигания скомпилированной программы микроконтроллеру Avr на вашей плате arduino. В зависимости от размера вашей программы это займет немного времени.

 Если вы посмотрите на свою плату arduino, вы увидите 2 светодиода рядом с Tx и Rxмигает. Это показатель успешной связи между вашим ПК и платой arduino. Если программа была загружена успешно, вы увидите сообщение типа « Done Uploading ».

 Если процесс загрузки не был успешным, вы увидите сообщение об ошибке. См. Скриншот, приведенный ниже.

Примечание. — Когда я загружал программу «классического светодиодного мигания» на свою плату arduino, я получил сообщение об ошибке при первой попытке. Это было похоже на то, что «Port COM5 уже используется другим устройством». Я исправил это, подключив плату к другому порту USB на моем ноутбуке.

Пишем код в программе

Здесь пишу программу « classic LED blink ».

const int LED = 13; void setup() { pinMode(LED,OUTPUT); } void loop() { digitalWrite(LED,HIGH); delay(1000); digitalWrite(LED,LOW); delay(1000); }

Плата arduino uno поставляется с предварительно установленным светодиодом на порте номер 13. Это небольшой светодиод SMD с маркировкой L, и вы можете найти его рядом с портом 13. Чтобы проверить программу мигания светодиодов, вам не нужно подключать отдельный светодиод.

 Однако, если вы этого хотите, вот простая схема для подключения внешнего светодиода на порту 13. Для ограничения тока в цепи используется резистор 330 Ом . Источник питания +5 вольт можно получить с USB-порта вашего компьютера.

 Ваша плата arduino будет питаться от +5 вольт питания с USB-порта ПК, когда вы подключаете плату по кабелю. Этого предложения достаточно для выполнения простых проектов с использованием arduino.

 Подключите анод светодиода к порту 13 и катод светодиода к выходу заземления (вы можете видеть контакт GND чуть выше порта 13), как показано на схеме, с резистором между портом 13 и анодом светодиода.

Первая строка программы const int LED = 13 ; называется объявлением присваивания. Здесь мы объявляем новую переменную с именем LED  как постоянное целое число, и в то же время мы назначаем переменную номер порта 13. С этого момента вы можете заменить порт 13 светодиодом имени переменной в любом месте программы.

Вторая строка начинается с void setup () и имеет блок операторов, записанных в круглых скобках. Здесь setup () — это функция в APL (язык программирования arduino), используемый для объявления инструкций конфигурации для портов микроконтроллера.

 Во время игры с микроконтроллером нам нужно настроить разные порты микроконтроллера как источник INPUT или OUTPUT . Как говорят слова, INPUT означает, что мы получаем некоторые данные в микроконтроллер, а OUTPUT означает, что мы отправляем некоторые данные из микроконтроллера.

 В этом проекте мы будем мигать светодиодом на порте номер 13 микроконтроллера. Моргнуть светодиод означает, что мы должны включить его ON и OFFальтернативно с определенным интервалом. Поэтому мы собираемся отправлять команды для включения и выключения светодиода на порт 13 микроконтроллера (плата arduino).

 Для этого нам нужно настроить порт 13 как OUTPUT в нашей программе. Это достигается внутри блока void setup (). На языке программирования arduino мы используем библиотечную функцию с именем pinMode () для настройки контактов микроконтроллера arduino.

 Чтобы настроить контакт 13 как OUTPUT, нам нужно написать инструкцию pinMode (LED, OUTPUT) ; мы использовали переменный светодиод для представления порта 13, поскольку мы уже назначили порт 13 для переменного светодиода.

Примечание. —  Функция setup () вызывается при запуске программы. Используйте его для инициализации переменных, режимов вывода, начала использования библиотек и т. Д. Функция настройки запускается только один раз после каждого включения или сброса платы Arduino.

Следующий блок начинается с void loop () — здесь loop () является еще одной предопределенной функцией на языке программирования arduino (APL).

 Эта функция выполняет все операторы, написанные внутри своих круглых скобок подряд последовательно; от первой строки в круглых скобках до последней строки. Как только выполнение завершает последнюю строку, оно будет повторять процесс выполнения снова, начиная с первой строки в круглых скобках.

 Другими словами, loop () — это функция, которая бесконечно выполняет инструкции, написанные внутри своих круглых скобок. Эта функция позволяет микроконтроллеру (или платой arduino) выполнять набор действий до тех пор, пока он включен.

 В нашем случае эти действия включаются и выключаются светодиодом в определенные промежутки времени. Итак, вот как мы собираемся рассказать ардуино, чтобы сделать процесс ВКЛ и ВЫКЛ.

APL имеет инструкцию с именем digitalWrite (), которая является инструкцией для записи некоторых данных в конкретный порт микроконтроллера на плате arduino. Мы подключили светодиод к контакту 13 . Чтобы включить его, мы должны подать напряжение на выводе 13. Мы собираемся сделать это с помощью программных команд.

 Так как наша плата arduino подключена к ПК через USB, то доступно +5 вольт. Нам нужно передать это напряжение в порт 13 платы arduino. Для этого APL имеет инструкцию по ключевым словам HIGH .

 Поэтому нам просто нужно написать инструкцию digitalWrite (LED, HIGH);и эта инструкция при исполнении микроконтроллером будет подавать +5 вольт на порте 13. Это напряжение будет включать светодиод питания, и он включится. Мы выполнили 1/3 нашей задачи сейчас. Теперь нам нужно отключить светодиод.

 Как это сделать ? Вам просто нужно отключить напряжение, указанное на порте 13. В APL для этой цели есть инструкция по ключевым словам LOW . Напишите инструкцию digitalWrite (LED, LOW); и мы отключили питание в порту 13. Эта инструкция отключит светодиод. К настоящему времени мы выполнили две основные задачи.

 Остается установить интервал времени между временем включения и выключения. Предположим, что время включения и выключения составляет 1 секунду . APL имеет функцию под названием delay ()для выполнения этой задачи установки временной задержки.

 Все, что вам нужно сделать, это записать желаемую задержку в миллисекундах в качестве аргумента функции задержки. Чтобы получить задержку в 1 секунду, мы должны написать delay (1000);   и это обеспечит задержку в 1000 миллисекунд между светодиодом ON и OFF.

Итак, вот резюме программы внутри цикла (). digitalWrite (LED, HIGH); включит светодиод. Теперь нам нужно держать светодиод включенным в течение 1 секунды. Мы делаем это, удерживая микроконтроллер в режиме ожидания (или мы его ожидаем) в течение 1 секунды.

delay (1000); это функция, которую мы используем, чтобы поддерживать микроконтроллер в режиме ожидания на 1 секунду (даже если я написал простоя, микроконтроллер фактически находится в режиме исполнения.

Он подсчитывает внутренний таймер и постоянно проверяет, достиг ли он 1 секунду. в следующих главах). Через 1 секунду нам нужно отключить светодиод. Мы делаем это с инструкцией digitalWrite (LED, LOW); это выключит светодиод.

 Теперь нам нужно держать светодиод в состоянии «ВЫКЛ» в течение 1 секунды (до того, как он снова включится). Для этого мы пишем delay (1000); еще раз чуть ниже инструкции, чтобы выключить светодиод.

 Так как это последнее утверждение внутри функции loop () нашей программы; микроконтроллер начнет выполнение с начала инструкции внутри цикла () после ожидания 1 секунда, чтобы отключить светодиод. Таким образом, светодиод снова включается через 1 секунду.

Did you find apk for android? You can find new Free Android Games and apps.

Источник: http://radioschema.ru/arduino/miganie-svetodioda-s-arduino.html

Мигание встроенным на плату Arduino светодиодом

Мигающий светодиод (Arduino)

На этом уроке Вы научитесь программировать свою плату Arduino на примере мигания встроенным светодиодом.

Для данного примера Вам понадобится плата Arduino (в данном случае – Arduino Uno R3, но Вы сможете проработать данный пример, имея в наличии и другую плату) и кабель USB (типа A (4х12 мм) – B (7х8 мм) – более подробно можно почитать на Вики).

Что такое ” L” светодиод

На Arduino Uno присутствуют ряды коннекторов типа мама по бокам платы, которые используются для подключения периферийных электронных устройств или “шилдов”.

Кроме того, на плате присутствует встроенный светодиод (англ. – LED), которым Вы можете управлять с помощью скетчей. Этот встроенный светодиод условно назовем “L” светодиод, как это принято на многих англоязычных ресурсах.

Расположение данного светодиода на плате отмечено на фото снизу.

Загрузка примера “Blink” (мигание) в Arduino IDE

При подключении новой платы к персональному компьютеру, обратите внимание, что светодиод начинает мигать, так как все платы от производителей поступают с уже “залитым” скетчем “Blink”.

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

Пришло время проверить Ваше подключение и запрограммировать плату.

В оболочке Arduino IDE существует большая коллекция скетчей, которые уже готовы к использованию. Среди них находится и пример, который заставляет мигать “L” светодиод.

Откройте пример “Blink”, который находится в пункте меню File – Examples – 01.Basics

После открытия, расширьте окно оболочки Arduino IDE, чтобы Вы могли весь скетч в одно окне.

Скетчи из примеров, включенные в Arduino IDE предусматривают режим “только чтение” (“read only”). То есть, загрузить их на плату Вы сможете, но после изменения кода, Вы не сможете их сохранить в том же файле.

Мы будем изменять скетч, так что в первую очередь Вам необходимо сохранить собственную копию, которую Вы сможете изменять.

Из меню “File” выберите опцию “Сохранить как” (“Save As..”) и сохраните скетч под подходящим Вам названием, например, “MyBlink”.

Вы сохранили копию скетча “Blink” в Вашей библиотеке. Теперь открыть этот файл Вы можете в любой момент, перейдя по вкладке File – Scetchbook.

Загрузка примера “Blink” (мигание) на плату

Подключите свою плату Arduino к компьютеру с помощью USB и проверьте тип платы (“Board type”) и серийный порт (“Serial Port”), по которому она подключена.

Текущие настройки отображаются внизу окна оболочки Arduino IDE

Кликните на кнопку “Загрузить” (“Upload”)

Во время загрузки в нижней части окна IDE появятся ползунок загрузки и сообщения. Вначале появляется фраза “Компилирование” (“Compiling scetch..”), что означает процесс конвертирования Вашего скетча в формат, подходящий для загрузки на плату Arduino.

Дальше статус сменится на “Загрузка” (“Uploading”). В этот момент светодиоды на плате начнут мигать, так как начнется перенос скетча в микропроцессор.

В конце статус сменится на ”Загрузка завершена” (“Done uploading”). В сообщении, которое появится в текстовой строке отобразится информация о том, что загруженный скетч занимает 1,084 байта из 32,256 доступных.

Иногда при компиляции у Вас может возникнуть подобная ошибка:

Причин может быть несколько: Вы не подключили плату к компьютеру; Вы не установили необходимые драйвера; Вы выбрали некорректный серийный порт.

Если же загрузка прошла корректно, плата Arduino перезагрузится и “L” светодиод начнет мигать.

Пояснения к скетчу “Blink”

Ниже представлен код скетча “Blink”.

/*

Blink

Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.

*/

// Pin 13 has an LED connected on most Arduino boards.

// give it a name:

int led = 13;

// the setup routine runs once when you press reset:

void setup() {

// initialize the digital pin as an output.

pinMode(led, OUTPUT);

}

// the loop routine runs over and over again forever:

void loop() {

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

delay(1000); // wait for a second

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

delay(1000); // wait for a second

}

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

Все между символами /* и */ в верхней части скетча – это комментарии, в которых описаны задачи программы. Так же есть комментарии, которые ограничиваются одной строкой. Они начинаются с символов // и заканчиваются по умолчанию в конце строки.

Первая важная, по сути, часть данного кода это строка:

Источник: http://arduino-diy.com/arduino-miganiye-vstroyennym-na-platu-svetodiodom

Первый проект. Мигаем светодиодом Arduino при помощи кнопки на смартфоне

Мигающий светодиод (Arduino)

Изучение программирования микроконтроллеров всегда начинается с самого простого примера “Hello world” – помигать светодиодом. Освоение нашего сервиса так же предлагаем начать с самого простого примера — мы так же помигаем светодиодом. Однако мигать им мы будем дистанционно, нажимая кнопку на экране нашего смартфона.

Все что мы с Вами проделаем, вы можете посмотреть на видео в конце страницы.

У нас имеется стандартная плата Arduino и модуль Bluetooth HC-04. Так же подойдет практически любая плата Arduino и любой модуль Bluetooth серии HC-04 (05/06/07). Данные модули уже по умолчанию работают в режиме UART — прямой передачи данных, и не требуют настроек.

Конструируем интерфейс

Входим в редактор интерфейсов на сайте и рисуем наш интерфейс. Интерфейс будет состоять всего из одной кнопки. Кликаем мышкой в элемент управления “Кнопка” и перетягиваем ее в рабочее поле.

Так как кнопка всего одна, ее можно растянуть на весь экран. Для этого выделяем кнопку, и за синие квадратики окантовки выделения изменяем ее размер, мышкой передвигаем ее на необходимое место.

На рисунке представлено то, что должно получиться:

Генерируем исходный код

Наш проект интерфейса готов. Перед тем как получить исходный код для нашего микроконтроллера, необходимо указать, для какой платформы мы хотим его получить. Наша платформа – Arduino.

Для связи с модулем Bluetooth будем использовать SoftwareSerial. Это даст нам возможность подключить Bluetooth модуль практически к любым пинам микроконтроллера.

Данную настройку производим в панели настройки проекта.

Теперь нажимаем кнопку “Получить код”. Если вы не зарегистрировались, вам необходимо зарегистрироваться, что бы получить исходный код проекта.

На странице загрузки исходного кода находится код скетча программы для микроконтроллера Arduino, реализующий графический интерфейс управления, который был создан в редакторе. Для компиляции данного скетча так же необходимо установить библиотеку RemoteXY. Библиотеку загрузите по ссылке и установите в Arduino IDE, используя инструкцию.

/////////////////////////////////////////////  //        RemoteXY include library         //  /////////////////////////////////////////////  /* определение режима соединения и подключение библиотеки RemoteXY */  #define REMOTEXY_MODE__SOFTWARESERIAL  #include   #include   /* настройки соединения */  #define REMOTEXY_SERIAL_RX 2  #define REMOTEXY_SERIAL_TX 3  #define REMOTEXY_SERIAL_SPEED 9600  /* конфигурация интерфейса  */  unsigned char RemoteXY_CONF[] =    { 1,0,11,0,1,5,1,0,25,7   ,49,49,2,88,0 };      /* структура определяет все переменные вашего интерфейса управления */  struct {      /* input variable */   unsigned char button_1; /* =1 если кнопка нажата, иначе =0 */     /* other variable */   unsigned char connect_flag;  /* =1 if wire connected, else =0 */ } RemoteXY;  /////////////////////////////////////////////  //           END RemoteXY include          //  /////////////////////////////////////////////  #define PIN_BUTTON_1 13 void setup()   {    RemoteXY_Init ();         pinMode (PIN_BUTTON_1, OUTPUT);       // TODO you setup code      }  void loop()   {     RemoteXY_Handler ();        digitalWrite(PIN_BUTTON_1, (RemoteXY.button_1==0)?LOW:HIGH);       // TODO you loop code    // используйте структуру RemoteXY для передачи данных  }

Нажмите на ссылку “Загрузить” и скачайте код скетча одним zip архивом. Распакуйте его и откройте файл project.ino в среде разработки Arduino.

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

По большому счету нам вообще ничего не надо исправлять. Код вполне компилируется без ошибок. Но не будем торопиться, нам еще необходимо настроить соединение с Bluetooth модулем.

Подключаем модуль Bluetooth

Теперь нам необходимо физически подключить Bluetooth модуль к плате Arduino. Модуль HC-04 имеет 4-е контакта (они подписаны прямо на плате). Два из них – питание модуля. Их подключаем стандартно к питанию +5V на плате Arduino.

Остальные два – это шина UART интерфейса: RX и TX, отвечающие за прием и передачу данных. Контакт RX необходимо подключить к пину на Arduino, который у нас имеет функцию TX, а контакт TX к пину на Arduino, имеющему функцию RX. Как же узнать, какие пины на Arduino отвечают за RX и TX связи с модулем? Очень просто.

В коде скетча имеются два определения пинов, к которому подключен модуль Bluetooth. Найдите эти строки кода. Они как раз и определяют, какие пины будут использованы при настройке SerialSoftware:

/* настройки соединения */  #define REMOTEXY_SERIAL_RX 2  #define REMOTEXY_SERIAL_TX 3 

Итак, контакт RX модуля Bluetooth подключаем к пину 3 платы Arduino, а контакт TX – к пину 2 платы. Конечно же вы можете изменить номера пинов по своему усмотрению (читайте документацию на SerialSoftware, так как не все пины могут быть использованы в программной эмуляции UART).

Вот теперь можно залить исходный код в микроконтроллер. ЗАГРУЖАЕМ!

Качаем приложение и подключаемся к нашему Arduino

Заходим в раздел сайта “Скачать мобильное приложение” и загружаем на смартфон или планшет приложение. Конечно же ваш смартфон/планшет должен иметь встроенный Bluetooth.

Запускаем приложение. Включаем Bluetooth, если он не включен. Автоматически начинается поиск устройств. Все найденные устройства будут показаны в списке.

По умолчанию модули HC-04 (05/06/07) имеют запрограммированное имя “INVOR” или “HC-04” (“HC-05″,”HC-06”). Если в списке устройств появилось такое – то это ваше. Щелкаем в него.

После некоторого времени, необходимого на соединение с модулем, вам будет предложено ввести пароль для сопряжения. Опять же модули серии HC-04 (05/06/07) имеют запрограммированный пароль “1234”. Вводим его.

И ВУА-ЛЯ, нам открылся наш интерфейс с большущей кнопкой на весь экран!

Нажимаем на эту огромную кнопку и наблюдаем, как загорается светодиод на плате Arduino! Все просто, все работает!

Источник: http://remotexy.com/ru/examples/firstproject

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.