Исторически так сложилось, что программная часть Arduino состоит из интегрированной программной среды (IDE), позволяющей писать, компилировать, а также загружать написанный код в аппаратную часть. Cреда ArduinoIDE, и сам язык Wiring основаны, в первую очередь, на Processing, косвенно – на С/C++. По сути, Arduino IDE являет собой большую сборную солянку, не смеха ради, а удобства для.
Даже внешне и Arduino IDE и Processing похожи
Из чего состоит программа (скетч)?
Каждая программа, какой сложной она не казалась бы, состоит из отдельных наборов блоков кода, который обозначается фигурными скобками {} . Для минимальной программы требуется всего 2 блока: setup и loop . Их присутствие обязательно в любой программе на C++ для Arduino, иначе на стадии компиляции можно получить ошибку.
void setup() { } void loop() { }
В функции setup() происходят начальные установки переменных, регистров. После завершения setup() управление переходит к функции loop() , которая являет собой бесконечный цикл, записанный в теле (между { } ). Именно эти команды и совершают все алгоритмические действия контроллера.
Аппаратный «
Hello
,
world
!» - мигание светодиодом.
То, с чего начинается первое знакомство с Arduino на стыке программной и аппаратной части - это мигание светодиодом.
Сперва необходимо дополнить минимальную программу. У Arduino (например UNO), к 12 пину и GND подключим светодиод (цвет самого светодиода выбирается из личных предпочтений).
Void setup()
{
pinMode(12, OUTPUT);
}
void loop()
{
digitalWrite(12, HIGH);
delay(100);
digitalWrite(12, LOW);
delay(900);
}
Делаем Ctrl+C -> Ctrl+V, компилируем, загружаем, властвуем. Видим светопредставление, длящееся не более секунды. Разбираемся, почему происходит именно так.
В ранее пустые блоки мы добавили несколько выражений
. Они были размещены между фигурными скобками функций setup
и
loop
.
Каждое выражение – инструкция для процессора. Выражения в рамках одного блока исполняются друг за другом, строго по порядку без всяких пауз и переключений. То есть, если мы говорим об одном конкретном блоке кода, его можно читать сверху вниз, чтобы понять, что делается.
Что же происходит между
{ }
?
Как известно, пины Arduino могут работать как на выход так и на вход. Когда мы хотим чем-то управлять, то нам нужно перевести управляющий пин в состояние работы на выход. Это делается выражением в функции
setup
:
pinMode(12, OUTPUT);
В данной ситуации в выражении осуществляется вызов функции
. В pinMode устанавливается заданный по номеру пин в заданный режим (INPUT или OUTPUT). О каком пине и о каком режиме идёт речь, указывается в круглых скобках, через запятую. В нашем случае мы хотим, чтобы 12-й пин работал как выход. OUTPUT означает выход, INPUT - вход. Уточняющие значения, такие как 12 и OUTPUT называются аргументами функции
. Сколько у функции аргументов зависит от сути функции и воли ее создателя. Функции могут быть без аргументов вовсе, как это происходит на примере setup и loop.
Далее переходим к блоку loop, по порядку:
-вызов встроенной функции digitalWrite. Она предназначена для подачи на заданный пин логического нуля (LOW, 0 вольт) или логической единицы (HIGH, 5 вольт) В функцию digitalWrite передаётся 2 аргумента: номер пина и логическое значение.
-вызов функции delay. Это, опять же, встроенная функция, которая заставляет процессор «уснуть» на определённое время. Она принимает всего один аргумент: время в миллисекундах, которое следует спать. В нашем случае это 100 мс. Как только 100 мс истекают, процессор просыпается и тут же переходит к следующему выражению.
- вызов встроенной функции digitalWrite. Только на этот раз вторым аргументом является LOW. То есть устанавливаем на 12-м пине логический ноль -> подаём 0 вольт -> гасим светодиод.
- вызов функции delay. На этот раз «спим» чуть подольше – 900 мс.
Как только выполнена последняя функция, блок loop завершается и все происходит снова и снова. На самом деле условия, представленные в примере, достаточно вариативны, и вы можете поиграться со значениями delay, подключить несколько светодиодов и сделать подобие светофора или полицейской мигалки (все зависит от фантазии и воли создателя).
Вместо заключения, немного о чистоте.
На самом деле все пробелы, переносы строк, символы табуляции не имеют большого значения для компилятора. Там, где стоит пробел, может быть перенос строки и наоборот. На самом деле 10 пробелов подряд, 2 переноса строки и ещё 5 пробелов - это всё эквивалент одного пробела.
С помощью пустого пространства можно сделать программу понятной и наглядной, или же наоборот изуродовать до неузнаваемости. Например, программу, указанную в качестве примера можно изменить так:
void setup()
{
pinMode(12, OUTPUT);
}
void loop
() {
digitalWrite(12,HIGH);
delay(100)
;
digitalWrite(12,LOW);
delay(900); }
Чтобы при чтении ни у кого не начала течь кровь из глаз, можно следовать нескольким простым правилам:
1. Всегда, при начале нового блока между { и } увеличивайте отступ. Обычно используют 2 или 4 пробела. Выберите одно из значений и придерживайтесь его всюду.
Void loop()
{
digitalWrite(12, HIGH);
delay(100);
digitalWrite(12, LOW);
delay(900);
}
2.
Как и в обычном языке: ставьте пробел после запятых.
digitalWrite(12, HIGH);
3.
Размещайте символ начала блока { на новой строке на текущем уровне отступа или в конце предыдущей. А символ конца блока } на отдельной строке на текущем уровне отступа:
void setup()
{
pinMode(12, OUTPUT);
}
void setup() {
pinMode(12, OUTPUT);
}
4.
Используйте пустые строки для разделения смысловых блоков:
void loop()
{
digitalWrite(12, HIGH);
delay(100);
digitalWrite(12, LOW);
delay(900);
digitalWrite(12, HIGH);
delay(100);
digitalWrite(12, LOW);
delay(900);
}
5.
Для того, чтобы Ваше детище было приятно читать существуют так называемые комментарии. Это конструкции в программном коде, которые полностью игнорируются компилятором и имеют значение только для того, кто это читает. Комментарии могут быть многострочными или однострочными:
/*
это многострочный комментарий
*/
// это однострочный
28 09.2016
Вы задумывались облегчить себе жизнь в быту? Чтобы были вещи, которые решали бы за вас повседневные, рутинные задачи. Умное устройство, которое бы осуществляло полезную функцию, например поливало огород, убирало комнату, переносило груз. Эти задачи может решать . Но просто купить её будет недостаточно. Любому промышленному логическому контроллеру или микросхеме нужен “мозг”, чтобы выполнять определённую последовательность действий. Для свершений операций в нашем случае подойдёт язык программирования ардуино.
Из этой статьи вы узнаете:
Приветствую вас, друзья! Для тех, кто меня не знает — меня зовут Гридин Семён. Вы можете прочитать обо мне
. Сегодняшняя статья будет посвящена двум основным программам, без которых не будет у нас дальнейшего движения и взаимопонимания.
Общее описание языков программирования
Как я и писал выше, рассматривать мы с вами будем две популярные среды разработки. По аналогии с , можно разделить на графический редактор и “умный блокнот”. Это программы Arduino IDE и FLprog.
Основой среды разработки является Processing/Wiring — это обычный C++, дополненный функциями и различными библиотеками. Существует несколько версий для операционных систем windows, Mac OS и Linux.
В чём их принципиальное различие?? Arduino IDE — это среда разработки, в которой описывается код программы. А FLprog похож на CFC CoDeSyS, позволяющий рисовать диаграммы. Какая среда лучше? Обе хороши и удобны по своему, но если хотите заниматься контроллерами серьёзно, лучше всего изучить языки, похожие на СИ. Их главный плюс в гибкости и неограниченности алгоритма. Мне очень нравится Arduino IDE.
Описание Arduino IDE
Дистрибутив можно скачать на официальном сайте . Скачиваем архив, он занимает чуть более 100 мб. Установка стандартная, как и все приложения для Windows. Драйвера для всех типов плат должны быть установлены в пакете. И вот каким образом выглядит рабочее окно программы.
Среда разработки Arduino состоит из:
- редактора программного кода;
- области сообщений;
- окна вывода текста;
- панели инструментов с кнопками часто используемых команд;
- нескольких меню
Настройки Arduino IDE
Программа, написанная в среде разработки Arduino, называется скетчем . Скетч пишется в текстовом редакторе, который имеет цветовую подсветку создаваемого программного кода. Пример простенькой программы на картинке ниже.
Дополнительная функциональность может быть добавлена с помощью библиотек, представляющих собой оформленный специальным образом код. В основном он находится в закрытом от разработчика доступе. Среда обычно поставляется со стандартным набором, который можно постепенно пополнять. Они находятся в подкаталоге libraries каталога Arduino.
Многие библиотеки снабжаются примерами, расположенными в папке example. Выбор библиотеки в меню приведет к добавлению в исходный код строчки:
Arduino
#include
#include |
Это директива — некая инструкция, заголовочный файл с описанием объектов, функций, и констант библиотеки. Многие функции уже разработаны для большинства типовых задач. Поверьте, это облегчает жизнь программисту.
После того как мы подключили электронную плату к компьютеру. Мы осуществляем следующие настройки — выбираем плату Arduino и Com-порт по которому будем соединяться.
Arduino
void setup() { // initialize digital pin 13 as an output. pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000);
void setup () { // initialize digital pin 13 as an output. pinMode (13 , OUTPUT ) ; void loop () { digitalWrite (13 , HIGH ) ; delay (1000 ) ; digitalWrite (13 , LOW ) ; delay (1000 ) ; |
Так, кстати говоря, удобно проверять работоспособность платы, пришедшей с магазина. Быстро и легко.
Есть ещё одна удобная вещь. Называется она Монитор последовательного порта (Serial Monitor ). Отображает данные, посылаемые в платформу Arduino. Я обычно смотрю, какие сигналы выдают мне различные датчики, подключённые к плате.
Подключение библиотек
Существуют разные способы для добавления пользовательских функции. Подключить библиотеки можно тремя способами:
- С помощью Library Manager
- С помощью импорта в виде файла.zip
- Установка вручную.
1. С помощью Library Manager. В рабочем окне программы выбираем вкладку Скетч. После этого нажимаем на кнопку Подключить библиотеку. Перед нами откроется менеджер библиотек. В окне будут отображаться уже установленные файлы с подписью installed, и те, которые можно установить.
2.С помощью импорта в виде файла.zip. Часто в просторах интернета можно встретить запакованные в архивы файлы библиотек с расширением zip. В нём содержится заголовочный файл.h и файл кода.cpp. При установке не нужно распаковывать архив. Достаточно в меню Скетч — Подключить библиотеку — Add .ZIP library
3.Установка вручную. Сначала закрываем программу Arduino IDE. Наш архив мы сначала распаковываем. И файлы с расширением.h и.cpp переносим в папку с тем же названием, как и архив. Закидываем папку в корневой каталог.
Мои документы\Arduino\libraries
Описание FLPprog
FLprog — это бесплатный проект независимых разработчиков, позволяющий работать с функциональными блоками, либо с релейными диаграммами. Эта среда удобна для людей — не программистов. Она позволяет визуально и наглядно видеть алгоритм при помощи диаграмм и функциональных блоков. Скачать дистрибутив можно на официальном сайте .
Я наблюдаю за проектом достаточно давно. Ребята развиваются, постоянно добавляют новый функционал и изменяют старый. Я вижу в этой среде перспективы. Так как она выполняет две важные функции: простоту и удобство использования .
Попробуем с вами создать простенький проект. Будем переключать 13 выход на светодиод.
Создаём новый проект. В верхнем окне добавляем нужное количество входов и выходов, задаём имя и присваиваем физический вход или выход платы.
Вытаскиваем нужные нам элементы из дерева объектов нужные нам элементы на холст редактирования. В нашем случае можно использовать простой RS-триггер для включения и выключения.
После создания алгоритма, кликнем на кнопочку компилировать, программа даёт готовый скетч на IDE.
Мы с вами рассмотрели возможности и удобства программ для разработки алгоритмов на контроллере серии Arduino. Есть ещё программы, которые позволяют создавать структурные диаграммы и визуальные картинки. Но я рекомендую использовать текстовый редактор, потому что потом вам будет проще. Скажите, а какая среда вам удобнее всего и почему??
22 сентября я участвовал в Краснодаре на семинаре “Сенсорные панельные контроллеры ОВЕН СПК”. Проводили конференцию в фешенебельном и красивом отеле “Бристоль”. Было очень интересно и круто.
В первой части семинара нам рассказывали о возможностях и преимуществах продукции компании ОВЕН. После был кофе-брейк с пончиками. Я понабрал кучу всего, и пончиков, и печенья, и конфет, так как был очень голодным.=)
Во второй части семинара после обеда нам презентовали . Много чего рассказали про Web — визуализацию. Эта тенденция начинает набирать обороты. Ну конечно, управлять оборудованием через любой интернет — браузер. Это реально круто. Вот кстати говоря само оборудование в чемоданчике.
Я в ближайшем будущем опубликую серию статей по CoDeSyS 3.5. Так что, если кому интересно подписывайтесь или просто заходите в гости. Буду всегда рад!!!
Кстати чуть не забыл, следующая статья будет о к электронной плате Arduino. Будет интересно, не пропустите.
До встречи, в следующих статьях.
С уважением, Гридин Семён.
В этой статье я собрал для вас самые популярные книги по проектированию устройств на базе микроконтроллеров Ардуино. Прочитав одну из этих книг вы сможете создавать умные гаджеты и системы автоматизации. Начиная от простых устройств, отображающих значения датчиков, и заканчивая системами умного дома или ЧПУ станками. Все это можно сделать и без прочтения книг, но тогда это займет гораздо больше времени, сил и денег. В книгах рассмотрены общие понятия электротехники, принципы действия микроконтроллеров и подключаемых датчиков и механизмов.
Скачать книги по ардуино на русском языке.
Ниже представлены 5 самые популярные книги по Arduino. Советую прочитать, если не все, то хотя бы первую из них. Среди этих книг есть книги как для начинающих, так и для людей уже знакомых с темой ардуино. Любой сможет найти для себя, что то новое и полезное. Все книги ниже переведены на русский язык.
Данная книга описывает аспекты и принципы проектирования устройств с помощью Arduino. Рассказывает об аппаратной и программной части Ардуино. В этой книге объясняются принципы программирования в среде . Показано, как правильно читать технические описания, подбирать детали для собственных проектов и как анализировать электрические схемы готовых устройств. Так же в книге описаны примеры использования разнообразных датчиков, индикаторов, разных интерфейсов передачи данных и исполнительных механизмов. Для всех примеров в книге есть перечисление необходимых деталей, монтажные схемы, примеры кода с полным описанием.
Проекты с использованием контроллера Arduino. Петин В.А.
В этой книге основное внимание уделено практической части создания собственных устройств на базе микроконтроллеров ардуино. Приведены схемы подключения, подробное описание логики программной части, список необходимых датчиков и модулей. Эта книга предназначена для тех кто уже имеет представление о том и знаком с основными функциями языка программирования ардуино.
Данное издание посвящено программированию микроконтроллеров на базе Arduino. В книге рассмотрены примеры скетчей и принципы написания своих прошивок. Изучив этот материал вы сможете писать прошивки для самых сложных устройств, включающих в себя множество технических элементов. Так же в книге рассмотрены популярные библиотеки для удобной работы в Arduino IDE. Страница поможет разобраться и запомнить основные функции и конструкции языка программирования Arduino.
Arduino и Raspberry Pi в проектах Internet of Things. Виктор Петин
>Arduino и Raspberry Pi в проектах Internet of ThingsОписание: Рассмотрено создание простых устройств в рамках концепции Интернета вещей (IoT, Internet of Things) на базе популярной платформы Arduino и микрокомпьютера Raspberry Pi. Показана установка и настройка среды разработки приложений Arduino IDE, а также среда макетирования Frizing. Описаны технические возможности, особенности подключения и взаимодействия различных датчиков и исполнительных устройств. Показана организация доступа разрабатываемых проектов к сети Интернет, отправка и получение ими данных с использованием популярных облачных IoT сервисов: Narodmon, ThingSpeak, Xively, Weaved, Blynk, Wyliodrin и др. Уделено внимание обмену данными с помощью платы GPRS/GSM Shield. Рассмотрен проект создания собственного сервера для сбора по сети данных с различных устройств на платформе Arduino. Показано как использовать фреймворк WebIOPi для работы с Raspberry Pi. Приведены примеры использования Wi-Fi-модуля ESP8266 в проектах “Умный дом”. На сайте издательства размещен архив с исходными кодами программ и библиотек.
— Установка и настройка среды разработки приложений Arduino IDE и среды макетирования Frizing
— Датчики и исполнительные устройста для Arduino и Raspberry Pi
— Отправка и получение данных из IoT сервисов Narodmon, ThingSpeak, Xively, Weaved, Blynk, Wyliodrin
— Создание Web-сервера для сбора данных с Android-устройств
— Обмен данными с помощью платы GPRS/GSM Shield
— Фраймфорк WebIOPi для работы с Raspberry Pi
— WiFi-модуль ESP8266 в проектах “Умный дом”
Быстрый старт. Первые шаги по освоению Arduino
Стартовый набор-конструктор c платой Arduino — Ваш пропуск в мир программирования, конструирования и электронного творчества.
Эта брошюра содержит всю информацию для ознакомления с платой Arduino, а также 14 практических экспериментов с применением различных электронных компонентов и модулей.
Полученные знания, в дальнейшем, дадут возможность создавать свои собственные проекты и с легкостью воплощать их в жизнь.
Команды языка программирования Arduino
Наименование параметра | Значение |
Тема статьи: | Команды языка программирования Arduino |
Рубрика (тематическая категория) | Программирование |
Язык программирования Arduino основан на языке Си. В случае если Вы желаете посмотреть команды данного языка, выполните в среде программирования команду меню Справка / Содержание . Команды сгруппированы в три столбца:
· Structure : команды для написания структуры программы – циклы, ветвления, синтаксис, арифметические и логические операторы, операторы сравнения и работы с битами
· Variables : различные переменные. Аналогичны используемым в Си, для Arduino характерны только несколько:
o HIGH – высокий уровень, логическая 1, +5 Вольт на контакте Arduino
o LOW – низкий уровень, логический 0, 0 Вольт на контакте Arduino
o INPUT – прописывание контакта Arduino как входного (прием информации с внешних устройств)
o OUTPUT – прописывание контакта Arduino как выходного (передача информации на внешние устройства, управление силовыми блоками)
· Functions : функции, используемые в работе с Arduino, будут подробно рассмотрены на следующих занятиях
Примечание 1 : структура и переменные аналогичны используемым в языке программирования Си, то есть если Вы знаете данный язык – легко освоите программирование Arduino и наоборот, освоение языка программирования Arduino поможет Вам в освоении языка Си и подобных ему.
Примечание 2 : описания команд в приложенной в среде инструкции даются на английском языке, что может представлять затруднения. Перевод описаний на русский язык имеется на сайте Arduino.ru
Примечание 3 : описание команды в программе можно получить, выделив эту команды и выполнив Справка / Найти в справке .
Синтаксис языка программирования Arduino
Аналогичен используемому в языке Си:
· ; – точка с запятой. Указывает на конец строки. Пример использования:
int led = 13;
в случае отсутствия; в месте, где она должна быть, при попытке загрузить программу в Arduino программа загружена не будет и выдаст ошибку в нижней части окна
· { } – круглые скобки. Открывающая скобка – начало блока, закрывающая – конец блока
void setup() {
pinMode(led, OUTPUT);
· // – комментарии. То, что написано в строке после данных символов, контроллер на воспринимает, это примечания для программиста
delay(1000); // ждем одну секунду (1000 миллисекунд)
· #include <назавние библиотеки.h> – подключение библиотеки – набора программ, к примеру, для управления ЖК индикатором:
#include
Примечание : точка с запятой после # include не требуется.
Команды языка программирования Arduino - понятие и виды. Классификация и особенности категории "Команды языка программирования Arduino" 2017, 2018.
Этот урок дает минимальные знания, необходимые для программирования систем Ардуино на языке C. Можно только просмотреть его и в дальнейшем использовать как справочную информацию. Тем, кто программировал на C в других системах можно пропустить статью.
Повторю, что это минимальная информация. Описание указателей, классов, строковых переменных и т.п. будет дано в последующих уроках. Если что-то окажется непонятным, не беспокойтесь. В дальнейших уроках будет много примеров и пояснений.
Структура программы Ардуино.
Структура программы Ардуино достаточно проста и в минимальном варианте состоит из двух частей setup() и loop().
void setup() {
void loop() {
Функция setup() выполняется один раз, при включении питания или сбросе контроллера. Обычно в ней происходят начальные установки переменных, регистров. Функция должна присутствовать в программе, даже если в ней ничего нет.
После завершения setup() управление переходит к функции loop(). Она в бесконечном цикле выполняет команды, записанные в ее теле (между фигурными скобками). Собственно эти команды и совершают все алгоритмические действия контроллера.
Первоначальные правила синтаксиса языка C.
; точка с запятой Выражения могут содержать сколь угодно много пробелов, переносов строк. Признаком завершения выражения является символ ”точка с запятой ”.
z = x + y;
z= x
+ y ;
{ } фигурные скобки определяют блок функции или выражений. Например, в функциях setup() и loop().
/* … */ блок комментария , обязательно закрыть.
/* это блок комментария */
// однострочный комментарий , закрывать не надо, действует до конца строки.
// это одна строка комментария
Переменные и типы данных.
Переменная это ячейка оперативной памяти, в которой хранится информация. Программа использует переменные для хранения промежуточных данных вычислений. Для вычислений могут быть использованы данные разных форматов, разной разрядности, поэтому у переменных в языке C есть следующие типы.
Тип данных | Разрядность, бит | Диапазон чисел |
boolean | 8 | true, false |
char | 8 | -128 … 127 |
unsigned char | 8 | 0 … 255 |
byte | 8 | 0 … 255 |
int | 16 | -32768 … 32767 |
unsigned int | 16 | 0 … 65535 |
word | 16 | 0 … 65535 |
long | 32 | -2147483648 … 2147483647 |
unsigned long | 32 | 0 … 4294967295 |
short | 16 | -32768 … 32767 |
float | 32 | -3.4028235+38 … 3.4028235+38 |
double | 32 | -3.4028235+38 … 3.4028235+38 |
Типы данных выбираются исходя из требуемой точности вычислений, форматов данных и т.п. Не стоит, например, для счетчика, считающего до 100, выбирать тип long. Работать будет, но операция займет больше памяти данных и программ, потребует больше времени.
Объявление переменных.
Указывается тип данных, а затем имя переменной.
int x; // объявление переменной с именем x типа int
float widthBox; // объявление переменной с именем widthBox типа float
Все переменные должны быть объявлены до того как будут использоваться.
Переменная может быть объявлена в любой части программы, но от этого зависит, какие блоки программы могут ее использовать. Т.е. у переменных есть области видимости.
- Переменные, объявленные в начале программы, до функции void setup(), считаются глобальными и доступны в любом месте программы.
- Локальные переменные объявляются внутри функций или таких блоков, как цикл for, и могут использоваться только в объявленных блоках. Возможны несколько переменных с одним именем, но разными областями видимости.
int mode; // переменная доступна всем функциям
void setup() {
// пустой блок, начальные установки не требуются
}
void loop() {
long count; // переменная count доступна только в функции loop()
for (int i=0; i < 10;) // переменная i доступна только внутри цикла
{
i++;
}
}
При объявлении переменной можно задать ее начальное значение (проинициализировать).
int x = 0; // объявляется переменная x с начальным значением 0
char d = ‘a’; // объявляется переменная d с начальным значением равным коду символа ”a”
При арифметических операциях с разными типами данных происходит автоматическое преобразование типов данных. Но лучше всегда использовать явное преобразование.
int x; // переменная int
char y; // переменная char
int z; // переменная int
z = x + (int) y; // переменная y явно преобразована в int
Арифметические операции.
Операции отношения.
Логические операции.
Операции над указателями.
Битовые операции.
& | И |
| | ИЛИ |
^ | ИСКЛЮЧАЮЩЕЕ ИЛИ |
~ | ИНВЕРСИЯ |
<< | СДВИГ ВЛЕВО |
>> | СДВИГ ВПРАВО |
Операции смешанного присваивания.
Выбор вариантов, управление программой.
Оператор IF проверяет условие в скобках и выполняет последующее выражение или блок в фигурных скобках, если условие истинно.
if (x == 5) // если x=5, то выполняется z=0
z=0;
if (x > 5) // если x >
{ z=0; y=8; }
IF … ELSE позволяет сделать выбор между двух вариантов.
if (x > 5) // если x > 5, то выполняется блок z=0, y=8;
{
z=0;
y=8;
}
{
z=0;
y=0;
}
ELSE IF – позволяет сделать множественный выбор
if (x > 5) // если x > 5, то выполняется блок z=0, y=8;
{
z=0;
y=8;
}
else if (x > 20) // если x > 20, выполняется этот блок
{
}
else // в противном случае выполняется этот блок
{
z=0;
y=0;
}
SWITCH CASE - множественный выбор. Позволяет сравнить переменную (в примере это x) с несколькими константами (в примере 5 и 10) и выполнить блок, в котором переменная равна константе.
switch (x) {
case 5:
// код выполняется если x = 5
break;
case 10:
// код выполняется если x = 10
break;
default:
// код выполняется если не совпало ни одно предыдущее значение
break;
}
Цикл FOR . Конструкция позволяет организовывать циклы с заданным количеством итераций. Синтаксис выглядит так:
for (действие до начала цикла;
условие продолжения цикла;
действие в конце каждой итерации) {
// код тела цикла
Пример цикла из 100 итераций.
for (i=0; i < 100; i++) // начальное значение 0, конечное 99, шаг 1
{
sum = sum + I;
}
Цикл WHILE . Оператор позволяет организовывать циклы с конструкцией:
while (выражение)
{
// код тела цикла
}
Цикл выполняется до тех пор, пока выражение в скобках истинно. Пример цикла на 10 итераций.
x = 0;
while (x < 10)
{
// код тела цикла
x++;
}
DO WHILE – цикл с условием на выходе.
do
{
// код тела цикла
} while (выражение);
Цикл выполняется пока выражение истинно.
BREAK
– оператор выхода из цикла. Используется для того, чтобы прервать выполнение циклов for, while, do while.
x = 0;
while (x < 10)
{
if (z > 20) break; // если z > 20, то выйти из цикла
// код тела цикла
x++;
}
GOTO – оператор безусловного перехода.
goto metka1; // переход на metka1
………………
metka1:
CONTINUE - пропуск операторов до конца тела цикла.
x = 0;
while (x < 10)
{
// код тела цикла
if (z > 20) continue; // если z > 20, то вернуться на начало тела цикла
// код тела цикла
x++;
}
Массивы.
Массив это область памяти, где последовательно хранятся несколько переменных.
Объявляется массив так.
int ages; // массив из 10 переменных типа int
float weight; // массив из 100 переменных типа float
При объявлении массивы можно инициализировать:
int ages = { 23, 54, 34, 24, 45, 56, 23, 23, 27, 28};
Обращаются к переменным массивов так:
x = ages; // x присваивается значение из 5 элемента массива.
ages = 32; // 9 элементу массива задается значение 32
Нумерация элементов массивов всегда с нуля.
Функции.
Функции позволяют выполнять одни и те же действия с разными данными. У функции есть:
- имя, по которому ее вызывают;
- аргументы – данные, которые функция использует для вычисления;
- тип данных, возвращаемый функцией.
Описывается пользовательская функция вне функций setup() и loop().
void setup() {
// код выполняется один раз при запуске программы
}
void loop() {
// основной код, выполняется в цикле
}
// объявление пользовательской функции с именем functionName
type functionName(type argument1, type argument1, … , type argument)
{
// тело функции
return();
}
Пример функции, вычисляющей сумму квадратов двух аргументов.
int sumQwadr (int x, int y)
{
return(x* x + y*y);
}
Вызов функции происходит так:
d= 2; b= 3;
z= sumQwadr(d, b); // в z будет сумма квадратов переменных d и b
Функции бывают встроенные, пользовательские, подключаемые.
Очень коротко, но этих данных должно хватить для того, чтобы начать писать программы на C для систем Ардуино.
Последнее, что я хочу рассказать в этом уроке, как принято оформлять программы на C. Думаю, если вы читаете этот урок в первый раз, стоит пропустить этот раздел и вернутся к нему позже, когда будет что оформлять.
Главная цель внешнего оформления программ это улучшить читаемость программ, уменьшить число формальных ошибок. Поэтому для достижения этой цели можно смело нарушать все рекомендации.
Имена в языке C.
Имена, представляющие типы данных, должны быть написаны в смешанном регистре. Первая буква имени должна быть заглавная (верхний регистр).
Signal, TimeCount
Переменные должны быть записаны именами в смешанном регистре, первая буква строчная (нижний регистр).
Рубрика: . Вы можете добавить в закладки.