Arduino оператор: Сравнения, условия и выбор

Содержание

Уроки по робототехнике — Урок №4. Условный оператор или «Как Ардуино принимает решения»

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

Макетные провода папа-папа

Мин. 8 шт 

 

Контроллер Arduino UNO

1 шт

Светодиод

1 шт

Беспаечная макетная плата

1 шт

Резистор 10 кОм

1 шт

Резистор 220 Ом

1 шт

Тактовая кнопка 1 шт      

Добрый день, ребята.

До сих пор наши устройства работали по заранее созданной линейной программе. Но на этом возможности Arduino, конечно же, не заканчиваются: наши программы можно и разветвлять — Для этого существует блок условие ЕСЛИ-ИНАЧЕ (Рис.1) 

Рис. 1 Блок ЕСЛИ-ИНАЧЕ

 

Давайте установим его в нашу программу. (Рис.2)

Рис.2 Блок Если-Иначе

 

Работает он следующим образом:

Если выполняется заданное в блоке «если» условие,

то ардуино обработает все блоки указанные между блоками «если» и «иначе».

Если же условие не выполнится, то ардуино обработает все блоки, указанные между блоками «иначе» и «конец если».

 

Давайте напишем программу, которая будет в случае выполнения заданного условия будет включать светодиод на пине № 5, а иначе будет его выключать. (Рис.3)

Рис.3

Отлично. Теперь, чтобы протестировать наше устройство надо задать блоку если какое либо условие.

Я предлагаю вам обрабатывать нажатие кнопки, и если кнопка нажата — включать светодиод, иначе — выключать.

 

Дел в том, что при работе с цифровыми пинами мы можем не только записывать в них логическую единицу или ноль или ШИМ, но и считывать с них значение.

Значения может быть только два: либо логический 0 (земля, минус), либо логическая 1 (5v).

Для того, чтобы в нашем условии получить логическое значение конкретного пина нужно выбрать блок, указанный на рисунке, нажав на красную стрелку в условии (Рис.4):

Рис.4

 

После этого необходимо выбрать пин, к которому мы в дальнейшем подключим кнопку. Пускай это будет пин № 3. (Рис.5)

Рис.5. Выбор пина для подключения кнопки.

 

 

Теперь, когда программа написана, осталось собрать устройство. (Рис. 6)

Рис.6. Обработка нажатия тактовой кнопки

 

Обратите внимание: при нажатии кнопки она соедняет красную шину (5v) и пином № 3 на ардуино.

Но есть в этой схеме один непонятный момент — это резистор на 10кОм около кнопки. Соединяет пин №3 с минусом и без него ничего не будет работать. 

Этот резистор называется подтягивающим. И действительно, без такого резистора, пин № 3 становится как бы подвешенным в воздухе, и в результате внешних наводок не может определиться: быть логической единицей или нулем.

Не забывайте про него и в ваших схемах.

 

Загрузим нашу программу в Arduino. Все должно работать.

 

1. Измените программу таким образом, чтобы светодиод светился, когда кнопка отпущена, а когда нажата — выключался.

2. Измените программу таким образом, чтобы после нажатия кнопки сведодиод включался на 5 секунд.

 

Ардуино: программирование для начинающих без платных курсов

Программирование Ардуино интересует многих начинающих программистов и конструкторов. На сегодняшний день про мини-компьютеры Ардуино знают многие, потому что это самая популярная возможность сделать первые шаги в:

  • программировании;

  • робототехнике;

  • автоматизации;

  • и т. д.

Но самое интересное, что возможности Ардуино можно использовать на профессиональном уровне и создать собственную версию системы «Умный дом».

 

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

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

Ардуино — это  полноценная платформа для разработки устройств на основе микрокомпьютеров, в нее входит:

По своей сути, Ардуино можно сравнить с конструктором, потому что в зависимости от того какие модули Ардуино вы будете собирать воедино — в конечном итоге у вас будут получаться разнообразные устройства.

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

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

  • сенсорные платы;

  • разнообразные датчики;

  • исполнительные механизмы;

  • мини-мониторы;

  • усилители;

  • модули WiFi;

  • модули для управления;

  • и мн. др.

Все это разнообразие модулей комбинируется и управляется центральной платой — мини-компьютером, а программируется на Arduino IDE.

 

Программирование Ардуино

Многие ошибочно полагают, что программирование Ардуино — это достаточно сложно и никак не подходит для «чайников». На самом деле, программирование Ардуино не слишком сложное действие. Такие вещи как само программирование, загрузка скриптов в микрокомпьютер, мониторинг кода и др. осуществляются при помощи Ардуино IDE. И основная работа происходит силами именно этой платформы, если нужно запрограммировать что-то специфическое, тогда можно будет найти подходящую библиотеку или расширение для платформы и все.

 

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

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

Но не нужно  пугаться сложности С++, потому что в Ардуино используется его облегченная версия. Также, чтобы программирование Ардуино на С++ не было слишком сложным, существует большое количество готовых:

  • библиотек;

  • скриптов;

  • функций;

  • методов;

  • и др.

Это еще больше упрощает программирование Ардуино и делает его очень доступным.

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

 

Операторы
  1. Setup(). Применяется один раз в скрипте при каждом запуске или перезапуске системы Ардуино. Его основная цель — это запустить нужную библиотеку или определить нужный режим работы.

  2. Loop(). Обычно запускается сразу после setup(). Его цель — это запустить цикл, который позволит вашему скрипту выполнить необходимые вычисления. Фактически этот оператор дает вам активное управление вашей платой Ардуино.

  3. If(). Контролирует исполнение условия, если оно выполнено, тогда будет выполняться следующий блок кода.

  4. If…else(). Данная конструкция позволяет точнее контролировать ход выполнения. Означает, что если не соблюдено условие, тогда выполняется конкретный блок кода или другое условие.

  5. For(). Этот оператор применяется для запуска целого блока различных операторов, которые прописываются в фигурных скобках.   

  6. Swich…case. Данная конструкция напоминает работу конструкции if…else и помогает управлять условиями выполнения всего скрипта. Особенность этой конструкции в том, что  «switch»  сравнивает значение из «case», и когда значения совпадают, то начинает выполняться код, который указан в этом «case».

  7. While(). Это цикл при котором код в цикле будет выполняться до тех пор, пока значение в круглых скобках () не станет «false».

  8. Do… while(). Данная конструкция имеет похожий принцип работы с «while», с той разницей, что все условия будут проверяться в конце цикла, поэтому все, что указано в «do», выполнится минимум один раз.

  9. Break. Это оператор для выхода из циклов «do», «for», «while», «switch». Он применяется, когда не нужно дожидаться конца циклов.

  10. Continue. Данный оператор помогает пропускать ненужные операторы цикла, в каком-либо конкретном шаге.

  11. Return. Оканчивает выполнение функции и возвращает ее полученное значение в функцию, которая ее вызвала.

  12. GoTo. Это оператор «перемещения» по скрипту, когда нужно, чтобы выполнение скрипта начиналось или продолжалось с какой-либо конкретной точки кода.

  13. Арифметические операторы: «=» — присваивание,  «+» — сложение, «-» — вычитание, «*» — умножение, «/» — деление, «%» — остаток от деления.

  14. Операторы сравнения: «==» — равно, «!=» — не равно, «<» — меньше чем, «>» — больше чем, «<=» — меньше или равно, «>=» — больше или равно.

  15. Логические операторы: «&&» — и, «||» — или, «!» — не.

     

Типы данных 
  1. Void — применяется для объявления функций.

  2. Boolean — переменные, у которых может быть только 2 значения: «true» или «false».

  3. Char — тип данных, который использует только 1 бит памяти.

  4. Byte — может хранить в себе число из 8 бит.

  5. Int — тип данных, который применяют для хранения чисел.

  6. Word — может хранить в себе число из 16 бит.

  7. Long — может хранить в себе числа из 32 бит.

  8. Short — это тип данных из 16 бит.

  9. Float — это числа с «плавающей точкой».

  10. String — это строки.

  11. Array — массив данных.

  12. Static — применяется для написания переменных, которые должны быть видны всего для одной лишь функции.

  13. Const — это переменные, которые уже предопределены, например «true», «false» и др. 

 
Функции
  1. PinMode — описывает режим ввода/вывода, который возможно будет настраиваться.

  2. DigitalWrite — контролирует значения HIGH/LOW (включение-выключение устройств).

  3. DigitalRead — считывает значения HIGH/LOW с конкретного места их вывода.

  4. AnalogReference() — контролирует источник основного напряжения для работы Ардуино.

  5. AnalogRead — следит за входным напряжением.

  6. Tone() — генерирует звуковую частоту, а также длительность звукового сигнала, чтобы звук воспроизводился; к Ардуино нужно подключить динамик.

  7. NoTone() — прекращает генерирование звука.

  8. Pulseln() — считывает длительность любых импульсов.

  9. Millis() — в возвратном значении этой функции будет количество миллисекунд, отсчитанных с момента запуска Ардуино.

  10. Micros() — в возвратном значении этой функции будет количество микросекунд, отсчитанных с момента запуска Ардуино.

  11. Delay() — временно останавливает исполнение программы на указанное количество миллисекунд.

  12. Математические вычисления: min() — вычисляет минимальное значение из двух чисел, max() — максимальное значение, a bs() — абсолютную величину числа, map() — преобразует значения переменных из разных диапазонов в нужный, pow() — возводит числа в степень, sqrt() — вычисляет квадратный корень числа, sq() — вычисляет квадрат числа.

  13. RandomSeed() — активирует генератор случайных чисел.

 

Заключение 

Программирование Ардуино — штука интересная. Мы, естественно, описали не все операторы и функции, которые можно использовать при программировании мини-компьютеров Ардуино.

Больше информации можно найти на официальном сайте arduino.cc. Там можно скачать последнюю версию Arduino IDE под вашу операционную систему, а также найти подробную документацию по сборке и программированию ваших устройств. Изучите внимательно, чтобы программирование Ардуино стало для вас занятным увлечением, а не очередной неразрешимой задачей.

Справочник Arduino

— Справочник Arduino

Эта страница также доступна на 2 других языках

Изменить язык

Английский

  • Немецкий
  • Португальский (Бразилия)

функции

Для управления платой Arduino и выполнения вычислений.

Цифровой ввод/вывод
цифровойЧитать()
цифровая запись ()
контактный режим ()

Аналоговый ввод/вывод
аналоговоеЧтение()
аналоговая ссылка()
аналоговая запись ()

Zero, Due и MKR Family
аналогReadResolution()
аналогWriteResolution()

Расширенный ввод-вывод
Не один()
импульсВ()
пульсДлинный()
перейти в()
сдвигВыход()
тон()

Время
задерживать()
задержкамикросекунд()
микро()
миллис()

Математика
абс()
ограничение()
карта()
Макс()
мин()
пау ()
кв()
квт()

Тригонометрия
потому что ()
грех()
загар()

Символов
Альфа()
isAlphaNumeric()
isAscii()
isControl()
isDigit()
isGraph()
isHexadecimalDigit()
нижний регистр()
isPrintable ()
точка()
isSpace()
Верхний регистр()
естьбелое пространство ()

Случайные числа
случайный()
случайное зерно()

Биты и байты
кусочек()
битОчистить()
битПрочитать()
битовый набор()
битЗапись()
высокий байт ()
низкий байт()

Внешние прерывания
прикрепить прерывание ()
отсоединить прерывание ()

Прерывания
прерывает()
без прерываний ()

Связь
Серийный
СПИ
Транслировать
Проволока

USB
Клавиатура
мышь


переменные

Типы данных и константы Arduino.

Константы
ВЫСОКИЙ | НИЗКИЙ
ВВОД | ВЫХОД | INPUT_PULLUP
LED_ВСТРОЕННЫЙ
правда | ЛОЖЬ
Константы с плавающей запятой
Целочисленные константы

Преобразование
(целое без знака)
(длинный без знака)
байт()
символ ()
плавать()
интервал()
длинный()
слово()

Типы данных
множество
логический
логический
байт
уголь
двойной
плавать
инт
длинный
короткий
размер_t
нить
Нить()
беззнаковый символ
беззнаковое целое
беззнаковый длинный
пустота
слово

Область видимости переменных и квалификаторы
константа
объем
статический
изменчивый

Коммунальные услуги
ПРОГРАММА
размер()


структура

Элементы кода Arduino (C++).

Эскиз
петля()
настраивать()

Структура управления
перерыв
продолжать
делать пока
еще
для
идти к
если
возвращаться
переключатель … случай
пока

Дальнейший синтаксис
#определять (определять)
#включать (включать)
/* */ (заблокировать комментарий)
// (однострочный комментарий)
; (точка с запятой)
{} (Фигурные скобки)

Арифметические операторы
% (остаток)
* (умножение)
+ (добавление)
— (вычитание)
/ (разделение)
«=» (оператор присваивания)

Операторы сравнения
«=» (не равно)
< (меньше, чем)
<= (меньше или равно)
== (равно)
> (больше чем)
>= (больше или равно)

Логические операторы
! (логично нет)
&& (логично и)
|| (логическое или)

Операторы доступа к указателям
& (ссылочный оператор)
* (оператор разыменования)

Побитовые операторы
& (побитовое и) 9(побитовый xor)
| (побитовое или)
~ (побитово нет)

Составные операторы
«=» (сложный остаток)
«=» (составное побитовое и)
«=» (сложное умножение)
++ (приращение)
+= (составное добавление)
— (уменьшение) 9″=» (составной побитовый xor)
|= (составное побитовое или)

Libraries — Arduino Reference

Среда Arduino может быть расширена за счет использования библиотек, как и большинство программных платформ. Библиотеки предоставляют дополнительную функциональность для использования в эскизах, например. работа с оборудованием или манипулирование данными. К использовать библиотеку в скетче, выберите ее из Эскиз > Импорт библиотеки .
Количество библиотеки поставляются с интегрированной средой разработки, но вы также можете загрузить или создать свою собственную. Подробнее об установке библиотек см. в этих инструкциях. Есть также учебник по написанию собственного библиотеки. См. стиль API Руководство по созданию хорошего API в стиле Arduino для вашей библиотеки.

  • Связь (1240)
  • Обработка данных (313)
  • Хранение данных (154)
  • Управление устройством (994)
  • Дисплей (483)
  • Другое (467)
  • Датчики (1155)
  • Сигнальный вход/выход (431)
  • Хронометраж (223)
  • Без категории (210)

Робототехника

Библиотеки для управления серводвигателями и шаговыми двигателями.

  • Сервопривод — для управления серводвигателями.
  • Шаговый — для управления шаговыми двигателями.
  • Связь

    Библиотеки для использования протоколов SPI, I2C и UART.

    • SPI — для связи с устройствами, использующими шину последовательного периферийного интерфейса (SPI).
    • Wire — двухпроводной интерфейс (TWI/I2C) для отправки и получения данных по сети устройств или датчиков.
    • SoftwareSerial — для последовательной связи на любых цифровых выводах.

    Возможности подключения

    Библиотеки для доступа к радиомодулям на различных платах IoT (Wi-Fi, Bluetooth®, LoRa®, GSM, NB-IoT, Sigfox).

    • ArduinoIoTCloud — эта библиотека позволяет подключиться к облачному сервису Arduino IoT. .
    • ArduinoBLE — библиотека для использования Bluetooth® Low Energy на некоторых платах.
    • Ethernet — для подключения к Интернету через Ethernet.
    • GSM — для подключения к сети GSM/GRPS с экраном GSM.
    • MKRWAN — библиотека для MKR WAN 1300/1310, для подключения к сетям LoRaWAN®.
    • MKRGSM — библиотека для МКР GSM 1400, для подключения к сетям GSM/GPRS.
    • MKRNB — библиотека для MKR NB 1500, для подключения к сетям NB-IoT/Cat M1.
    • SigFox — библиотека для MKR FOX 1200, для подключения к сети Sigfox.
    • WiFi — библиотека для WiFi шилда, для подключения к интернету через Wi-Fi.
    • WiFi101 — библиотека для шилда MKR 1000 WiFi и WiFi101, для подключения к интернету через Wi-Fi.
    • WiFiNINA — библиотека для плат с модулем Wi-Fi NINA, для подключения к интернету через Wi-Fi.

    Библиотеки семейства Nano

    Библиотеки, предназначенные для встроенных датчиков на различных платах Nano.

    • ArduinoAPDS9960 — библиотека для использования датчика жестов APDS9960; он чувствует жесты, цвет, окружающее освещение и близость.
    • Arduino_LSM6DS3 — библиотека для использования 6-осевого IMU LSM6DS3, доступная на Arduino Nano 33 IoT и Arduino UNO WiFi Rev. 2.
    • Arduino_LSM9DS1 — библиотека для использования 9-осевого IMU LSM9DS1, доступного на Arduino Nano 33 BLE и Arduino Nano 33 BLE Sense.
    • Arduino_LSM6DSOX — библиотека для использования 6-осевого IMU LSM6DSOX, доступная на Arduino Nano RP2040 Connect.
    • ArduinoLPS22HB — библиотека для использования барометра и датчика температуры LPS22; это сверхкомпактный датчик, который работает как барометр с цифровым выходом.
    • ArduinoHTS221 — библиотека для использования датчика относительной влажности и температуры HTS221.
    • PDM — библиотека для использования цифрового микрофона MP34DT05 (Nano BLE Sense и Nano RP2040 Connect).

    Память

    Библиотеки для управления памятью и хранения данных.

    • EEPROM — чтение и запись в «постоянную» память.
    • SD — для чтения и записи SD-карт.

    Дисплей

    Библиотеки для управления различными дисплеями.

    • LiquidCrystal — для управления жидкокристаллическими дисплеями (LCD).
    • TFT — для рисования текста, изображений и фигур на TFT-экране Arduino.

    Библиотеки семейства MKR

    Библиотеки, перечисленные ниже, специально разработаны для работы с продуктами семейства Arduino MKR.

    • Планировщик — управление несколькими неблокирующими задачами (также работает с Arduino Due).
    • RTCZero — часы реального времени для планирования событий.
    • ArduinoMKRGPS — библиотека для использования с Arduino MKR GPS Shield.
    • ArduinoMKRRGB — библиотека для использования с Arduino MKR RGB Shield.
    • ArduinoGraphics — библиотека с графическими примитивами, работает также с Arduino MKR RGB Shield.
    • ArduinoRS485 — библиотека, реализующая RS485 на плате Arduino MKR RS485.
    • ArduinoMKRENV — библиотека для чтения всех датчиков MKR ENV Shield.
    • ArduinoMKRTHERM — библиотека для чтения датчиков, подключенных к Arduino MKR THERM Shield.
    • MKRIMU — библиотека для чтения ускорений, гироскопа, магнитного поля и углов Эйлера из IMU на вашем щите MKR IMU
    • ArduinoMotorCarrier — библиотека для управления автовозами MKR/Nano.
    • Arduino_MKRIoTCarrier — библиотека для управления MKR IoT Carrier

    Аудио

    Библиотеки для сэмплирования и воспроизведения аудио.

    • AudioFrequencyMeter — библиотека для выборки аудиосигнала и получения обратно его частоты.
    • AudioZero — библиотека для воспроизведения аудиофайлов с SD-карты.
    • ArduinoSound — простой способ воспроизведения и анализа аудиоданных.
    • Аудио — позволяет воспроизводить аудиофайлы с SD-карты. Только для Arduino DUE.
    • I2S — библиотека для использования протокола I2S на SAMD21 (входит в состав платформы SAMD).

    USB

    Библиотеки для использования Arduino в качестве USB-хоста или устройства.

    • USBHost — связь с периферийными устройствами USB, такими как мыши и клавиатуры.
    • Клавиатура — отправка нажатий клавиш на подключенный компьютер.
    • Мышь — управление движением курсора на подключенном компьютере.

    Другое

    • Firmata — для связи с приложениями на компьютере по стандартному последовательному протоколу.

    Выведенные из эксплуатации библиотеки

    Список заархивированных библиотек для вышедших из употребления продуктов.

    • CurieBLE — взаимодействуйте со смартфонами и планшетами с помощью Bluetooth® Low Energy.
    • CurieIMU — управление бортовым акселерометром и гироскопом.
    • CurieTimerOne — позволяет использовать функции таймера.
    • CurieTime — позволяет контролировать и использовать внутренние RTC (часы реального времени).

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

    Ваш адрес email не будет опубликован. Обязательные поля помечены *