На прошлом занятии мы с вами познакомились с платформой Arduino, разобрались с ее строением и назначением пинов. А сегодня давайте «оживим» ее и начнем работу со знакомства с видами алгоритмов.
Алгоритмы это основа любой программы, ведь нам нужно «объяснить» контроллеру, чего мы от него ожидаем, именно для этого и пишется программа. Программа, написанная посредством определенного языка программирования — это перевод в письменный код ожиданий оператора. Т.к. любая программа выполняется последовательно строка за строкой, за исключением прерываний (но о них чуть позже), то мы должны понимать, что происходит на каждом шаге выполнения программы, чтобы получить желаемый результат.
В «природе» существует два основных вида алгоритмов: условные и циклические.
Начнем с простых и интуитивно понятных – Условные алгоритмы . Как можно догадаться из их названия, мы имеем дело с условиями. На алгоритмическом языке они выглядят так: «…Если (условие) верно, то…» или «…Если (условие) верно, то…, а если не верно, то…».
ПЕРВАЯ ПРОГРАММА НА ARDUINO [Уроки Arduino #3]
Рис. 1 Неполное ветвление
Рис. 2 Полное ветвление
Здесь основное различие состоит в том, что при неполном ветвлении мы выполняем действие, которое предписывает нам условие, если оно принимает значение «true», если же оно «false», т.е. ложно, пропускаем фрагмент программы с условием и идем дальше.
На языке программирования это ветвление выглядит так:
void setup() //запишите здесь те команды, которые будут выполняться один раз < int result = 0; //объявляем переменную, в которой у нас будет храниться результат вычислений int a = 5; //Объявляем переменную с именем «а» и записываем в нее значение «5» int b = 7; //Объявляем переменную с именем «b» и записываем в нее значение «7» if (a >b) < //»Если значение переменной «а» больше, чем значение переменной «b», то выполнится оператор (result=a-b) result = a — b; >//если условие не верно (как в нашем случае), то программа закончит свою работу void loop() < //Запишите здесь те команды, которые будут повторяться // в бесконечном цикле нет команд >
Программа «Неполное ветвление»
Если же имеем дело с полным ветвлением, то в обоих случаях и когда условие принимает значение «true», и когда условие принимает значение «false», у нас заданы определенные действия, которые мы будем выполнять.
На языке программирования это ветвление выглядит так:
void setup() //запишите здесь те команды, которые будут выполняться один раз < int result = 0; //объявляем переменную, в которой у нас будет храниться результат вычислений int a = 5; //Объявляем переменную с именем «а» и записываем в нее значение «5» int b = 7; //Объявляем переменную с именем «b» и записываем в нее значение «7» if (a >b) < //»Если значение переменной «а» больше, чем значение переменной «b», то выполнится оператор (result=a-b) result = a — b; >else < result = b — a; //если условие не верно (как в нашем случае), то выполнится оператор, обозначенный как else (иначе) void loop() < //Запишите здесь те команды, которые будут повторяться // в бесконечном цикле нет команд >
Программа «Полное ветвление»
XOD — графический язык программирования Arduino. Обзор языка и среды разработки
А теперь приступим к циклическим алгоритмам . Их у нас существует три разновидности: цикл с «предусловием», цикл с «постусловием» и цикл с «параметром».
Рис. 7 Цикл с «предусловием»
void setup() //запишите здесь те команды, которые будут выполняться один раз < >void loop() < //Запишите здесь те команды, которые будут повторяться int a = 20; //Объявляем переменную с именем «а» и записываем в нее значение «20» int b = 1; //Объявляем переменную с именем «b» и записываем в нее значение «1» while (a >b) < //»Если значение переменной «а» больше, чем значение переменной «b», то выполнится оператор (a=a-5), в переменную «а» записывается новое значение и цикл возвращается к проверке условия a =a — 5; >>
Рис. 8 Цикл с «постусловием»
Этот цикл выполняется до тех пор, пока условие остается«false», если же условие становится «true», цикл заканчивается и переходит к дальнейшему выполнению программы. Такой цикл используется, когда нам необходимо проверить результат какого-то оператора в программе, т.е. мы сначала выполняем действие, а потом проверяем, что же мы получили в его результате. Но если у нас как в предыдущем примере «деление на ноль», то этот цикл будет неверен .
void setup() //запишите здесь те команды, которые будут выполняться один раз < >void loop() < //Запишите здесь те команды, которые будут повторяться int a = 20; //Объявляем переменную с именем «а» и записываем в нее значение «20» int b = 1; //Объявляем переменную с именем «b» и записываем в нее значение «1» do < a = a — 5; //в переменную «а» записывается новое значение и цикл возвращается к проверке условия >while (a > b); //»Если значение переменной «а» больше, чем значение переменной «b», то цикл завершит свою работу >
Рис. 9 Цикл с «параметром»
void setup () < pinMode (3, OUTPUT); //будем использовать 3 пин на плате, поэтому конфигурируем его «на выход» >void loop () < for (int i = 1; i < 10; i++) < //Объявляем цикл с параметром //int i — переменная — счетчик, которой мы присваием начальное значение //i < 10 — условие выполнения цикла, цикл будет выполнятся пока значение переменной — счетчика не будет противоречит условию выполнения цикла //i++ — шаг переменной — счетчика (тоже самое, что i = i + 1) digitalWrite (3, HIGH); //передаем на 3 пин логическую 1 (5 V) delay (1000); digitalWrite (3, LOW); //передаем на 3 пин логический 0 (0 V) >>
Сегодня мы разобрались в основных алгоритмах, используемых при написании программ. Это лишь краткий экскурс по тому, что нам с вами предстоит изучить и уметь использовать в своих программах. Каждый из этих циклов мы будем разбирать по отдельности в следующих статьях и применять на практике для сборки электрических схем и их программирования с помощью контроллера Arduino.
Все вопросы, которые мы не осветили в этой статье, оставляйте в комментариях, будем рады на них ответить.
Источник: www.systop.ru
Язык программирования Ардуино: справочник
Понятно и просто расписаны команды Ардуино для чайников. Спасибо.
спасибо, хороший сайт!!
Дмитрий :
Молодци. Отлично, понятно, без лишнего. Спасибо!
Источник: xn--18-6kcdusowgbt1a4b.xn--p1ai
Программирование в Arduino: языки, программы и первые шаги
Программирование не ограничивается исключительно созданием компьютерных программ или веб-страниц. Программирование микроконтроллеров также является повесткой дня. Будь то с микроконтроллерами, такими как ESP8266, с такими устройствами, как Raspberry Pi, или, как всемирно известный Arduino, каждый в своем доме может создавать свои собственные электронные проекты либо в качестве хобби, либо использовать их в своей повседневной жизни и упрощать определенные процедуры. И нужно ли мне иметь продвинутые знания в области программирования? Лучше всего нет.
Что такое Ардуино?
История вычислител.
Please enable JavaScript
С одной стороны, Arduino — это компания, специализирующаяся на разработке бесплатного аппаратного и программного обеспечения, которое носит ее имя. Но когда мы говорим о нем, мы обычно имеем в виду платы который мы можем купить, состоящий из микроконтроллера (обычно 8-битного Atmel AVR), памяти и системы хранения, с помощью которой можно выполнять любой проект. Платы обычно также имеют ряд контактов или разъемов, с помощью которых мы можем подключать их к другим более сложным электронным схемам для управления ими.
Наиболее распространенные платы, которые мы можем найти на рынке и которые каждый может купить, чтобы начать программировать на них:
- Галилео
- ардуино один
- Леонард
- Должный
- И
- три
- АрдуиноНоль
- АрдуиноМикро
- исследует
- Мега АДК
- Ethernet
- Мега 2560
- Роботик
- ардуиномини
- АрдуиноНано
- LilyPad Arduino Simple/ SimpleSnap
- LilyPad Ардуино / Ардуино USB
- Ардуино Про/Про Мини
- Доверять
- 1000 МКР
- Ардуино МИКРО
- Arduino 101
- драгоценный камень
Кроме того, существуют различные аксессуары (экраны), которые мы можем подключить к этим платам, чтобы предоставить им больше функций и соединений. Наиболее распространенными являются:
- GSM щит
- Ethernet-экран
- Wi-Fi щит
- Беспроводной SD-экран
- Хост-экран USB
- Моторный щит
- Беспроводной прототип экрана
- Протощит