Arduino основы программирования
Здесь мы научимся писать элементарную программу способную сделать что-либо интересное для новичка. Здесь вы узнаете, как написать простейший скетч для Arduino используя стандартый IDE. Мы пока пропустим использование входов-выходов, но обратим внимание на связь через USB. Синтаксис языка Arduino точно повторяет язык C, поэтому на нем мы останавливаться не будем. Мы сконцентрируемся на конкретных аспектах Arduino языка, в котором вы можете использовать все принципы, которые присущи языку C: переменные, операторы, состояния, типы, константы и т.д.
Первый скетч для Arduino
В языке Arduino не нужно задавать отправную точку, как в языке Си, где вы вынуждены определить основную программу. Действительно, при запуске программы, она загружает то что называется объект в объектно-ориентированном программировании ООП в память. Объекты в ООП принадлежат классам. Для каждого объекта того же класса состояние определяется в виде набора атрибутов или элементов, которые можно рассматривать как переменные, представлены как набор данных различных типов в памяти. Состояние объекта может управляться методами: набор состояний, предназначенных для выполнения заданной операции по изменению или обеспечению состояния объекта. Если вы не знакомы с ООП, вы можете разъяснить для себя, что состояние это набор переменных и методы, это набор функций.
Скетч Arduino состоит из самостоятельного файла, в котором, в отличие от C-языка, Вы должны определить по крайней мере, две секции: первая называется setup(), а вторая loop(). Переменные доступные из обеих секций программы должны быть объявлены за их пределами, как глобальные переменные.
Как только программа запустится, выполнятся операнды, собранные в блоке setup(): они предназначены для инициализации значений переменных в начале запуска, а также для настройки портов периферии Arduino. После окончания обработки setup() Arduino начинает циклическое выполнение инструкций в блоке loop(). После выполнения всех операндов, цикл повторяется вновь и вновь.
void setup () {
...
}
void loop () {
...
}
Оба блока setup() и loop() задекларированы как блоки void, то есть они ничего не возвращают. Вы можете использовать стандартные директивы препроцессора, такие как #define, #ifdef, #ifndef, #endif, и т.д. В частности, мы настоятельно рекомендуем Вам определять константы как символы препроцессора (не как переменные, так как они едят SRAM память).
Ввод-вывод данных с Arduino.
У контроллера Arduino нет портов для подключения к монитору или клавиатуре: да они и не обязательны на таких типах устройств. Контакты ввода / вывода предназначены для обеспечения обмена данными и сигналами ввода / вывода с внешним миром. Однако это не самодостаточные порты, к которым мы привыкли, работая с компьютерами, а отдельные сигнальные выводы. А в тех случаях, когда необходимо отобразить какие-либо значения внутренних данных (например во время отладки) вы можете подключить плату контроллера к компьютеру с помощью кабеля USB. Сообщения ,принятые от контроллера, отображаются в специальном окне под названием serial monitor. Такой интерфейс не подходит для сложных задач, и имеет очень простой интерфейс. Вы можете открыть serial monitor, выбрав соответствующий пункт в главном меню IDE. При запуске serial monitor может вести себя странно, показывая (видимо) случайные символы. Это те символы, которые остались в буфере COM-порта после предыдущих передач данных. Это простой обмен текстовыми сообщениями и нет возможности что-то сохранить в файл.
Если нужно послать текстовое сообщение в окно serial monitor с контроллера, вы можете использовать функцию Serial.print(), имеющую следующий синтаксис:
Serial . print (< сообщение>};
где <сообщение> это константа. Например
int i = 67;
Serial . print (" the value of i is ");
Serial . print (i);
Serial . print ("\n");
в окне serial monitor выведет текст "the value of i is 67". Первое обращение к функции Serial.print содержит текстовую константу как параметр. Второе содержит целочисленную переменную, значение которой считывается из памяти. Последнее же добавляет символ переноса строки Serial.print("\n"). Вы так же можете выводить текстовые сообщения, сразу содержащие символ переноса строки, при помощи функции Serial.println, которая автоматически добавляет символ переноса строки вконце текста:
int i = 67;
Serial . print (" the value of i is ");
Serial . println (i);
Для того, чтобы изменить скорость последовательной связи, необходимо настроить параметры связи перед началом использования канала. Для этого используется функция Serial.begin (9600), в которой 9600 - скорость передачи в бодах (это единица скорости в области телекоммуникаций). Эту скорость можно изменять в пределах, регламентированных документацией на сайте Arduino, в зависимости от ваших нужд. Обычно скорость 9600 нормально подходит для обмена с современным компьютером.
Операнд Serial.read() возвращает первый байт, доступный в буфере ввода. Его использование несколько сложнее чем write.
Отображение данных
Несмотря на то, что у Arduino нет монитора, вы можете подключить к нему некоторые дисплеи имеющиеся в продаже отдельно. Есть несколько вариантов для этого: либо вы используете ЖК-дисплей, либо TFT монитор. Простые ЖК-дисплеи могут отображать до четырех строк текста или даже больше, в то время как с TFT экраном можно просмотреть данные с высоким разрешением (обычно 160 × 128 пикселей и 240 × 320 пикселей). Они существуют как в черно-белом так и в цветном вариантах, у некоторых моделей есть даже сенсорное управление.
Модуль реле для Wemos D1 mini
Модуль с электромагнитным реле для установки на плату контроллера Wemos D1 miniХарактеристики реле: ..
49.56грн.
Цифровой датчик температуры и влажности DHT11 с подтягивающим резистором
Измерение относительной влажности в пределах 20 ... 90 %Точность измерения влажности ± 5,0 %RHИ..
71.13грн.
Светодиод ультраяркий 5мм
Сверхяркий светодиод диаметром 5 мм Корпус прозрачный у светодиодов разного цвета свечения. То есть..
5.52грн.
Регулятор оборотов двигателя 3А 6-28В
Регулятор оборотов двигателя постоянного тока. Скорость задается переменным резистором. Принц..
145.02грн.
Светодиод ультраяркий 3мм
Сверхяркий светодиод диаметром 3 ммКорпус прозрачный у светодиодов разного цвета свечения. То есть р..
0.95грн.