Магазин у відпустці 23.05 - 28.05. Всі замовлення будуть оброблені в понеділок

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 пикселей). Они существуют как в черно-белом так и в цветном вариантах, у некоторых моделей есть даже сенсорное управление.


Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Модуль MOSFET-транзистора IRF520

Модуль MOSFET-транзистора IRF520

Модуль (драйвер) силового MOSFET-транзистора для подключения мощной нагрузки на выход контролле..

27.50грн.

Микроконтроллер ATMEGA328P-PU

Микроконтроллер ATMEGA328P-PU

8-битный микроконтроллер с архитектурой AVR - ATMEGA328P-PU в корпусе DIP28Такие контроллеры ис..

51.89грн.

Шилд CNC для Arduino UNO

Шилд CNC для Arduino UNO

Шилд для платы контроллера Arduino UNO  для управления CNC-станком или 3D-принтером.4 разъема п..

79.41грн.

Преобразователь уровней 5В на 3В двунаправленный 4-канальный

Преобразователь уровней 5В на 3В двунаправленный 4-канальный

Преобразователь логических уровней с 5 В на 3,3В и обратно.Позволяет преобразовать 4 линии коммуника..

20.46грн.

LCD Keypad шилд расширения для Arduino

LCD Keypad шилд расширения для Arduino

Шилд расширения для Arduino с LCD-дисплеем LCD1602 и набором кнопокСоответсвие занятых выводов ..

98.44грн.

Теги Arduino основы программирования

Новое

Модуль твердотельного реле 4-канальный

Модуль твердотельного реле 4-канальный

Модуль предназначен для коммутации нагрузок с переменным напряжением питания 75 ... 264 ВМаксимальны..

Оптопара EL817 SMD

Оптопара EL817 SMD

Оптопара с транзистором на выходеПрименяется для гальванической развязки дискретного сигнала, а так ..

Стабилизатор напряжения 5В 2А микросхема L78S05CV

Стабилизатор напряжения 5В 2А микросхема L78S05CV

Микросхема стабилизатор напряжения L78S05CVПрименяется для стабилизации пульсирующего напряжени..

Программатор AVR-контроллеров USBASP

Программатор AVR-контроллеров USBASP

Программатор для загрузки и отладки программ в микроконтроллеры компании ATMEL.Интерфейс програ..

Сдвиговый регистр 74HC595N

Сдвиговый регистр 74HC595N

Эту микросхему используют для управления светодиодными гирляндами и символьными индикаторами.Она поз..

Светодиод ультраяркий 3мм

Светодиод ультраяркий 3мм

Сверхяркий светодиод диаметром 3 ммКорпус прозрачный у светодиодов разного цвета свечения. То есть р..

Вентилятор для Orange PI толщиной 10мм

Вентилятор для Orange PI толщиной 10мм

Вентилятор для охлаждения процессора мини-компьютера Orange PI или Raspberry PIРаботает безшумноПита..

Терминальный разъемный коннектор угловой 4п

Терминальный разъемный коннектор угловой 4п

Разъемный 4-проводной коннектор для пайки на печатную платуПровода подводятся параллельно плате и со..

Шестерня для зубчатого ремня на 20 зубьев под ось 5 мм

Шестерня для зубчатого ремня на 20 зубьев под ось 5 мм

Используется для передачи и редукции крутящего момента от двигателяКоличество зубьев 20 шт.Диаметр о..

Терминальный разъемный коннектор угловой 3п

Терминальный разъемный коннектор угловой 3п

Разъемный трёхпроводной коннектор для пайки на печатную платуПровода подводятся параллельно плате и ..

Терминальный разъемный коннектор угловой 2п

Терминальный разъемный коннектор угловой 2п

Разъемный двухпроводной коннектор для пайки на печатную платуПровода подводятся параллельно плате и ..

Микроконтроллер ATTINY13A

Микроконтроллер ATTINY13A

Миниатюрный экономичный AVR 8-битный микроконтроллер, который можно программировать как программатор..

Логический анализатор 8 каналов

Логический анализатор 8 каналов

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

Линейный подшипник 8мм

Линейный подшипник 8мм

Подшипник для линейного скольжения рабочего органа 3D-принтера или CNC по своим осям.Одевается на ци..

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

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

Подшипник для натяжения зубчатого ремня GT2 6мм на ось 5 ммПрименяется в 3D-принтерах и CNCШирина 10..

Подшипник для зубчатого ремня GT2 20 зубьев

Подшипник для зубчатого ремня GT2 20 зубьев

Подшипник для натяжения зубчатого ремня GT2 6мм на ось 5 мм20 зубьевШирина 10 мм..