Первый скетч [1]
В вводном руководстве (Windows, Mac OS X, Linux), вы загрузили скетч, который мигает светодиодом. В этом уроке вы узнаете, как каждая часть этого скетча работает.
Скетч
Скетч это имя, которое Arduino использует для программы. Это единица кода, которая загружается и запускается на плате Arduino.
Комментарии
Первые несколько строк скетча Blink это комментарии:
/*
* Blink
*
* The basic Arduino example. Turns on an LED on for one second,
* then off for one second, and so on... We use pin 13 because,
* depending on your Arduino board, it has either a built-in LED
* or a built-in resistor so that you need only an LED.
*
* http://www.arduino.cc/en/Tutorial/Blink
*/
Все что между /* и */ игнорируется Arduino при запуске скетча (* в начале каждой строки, чтобы комментарий выглядел красиво, и не обязательна). Комментарии пишутся для людей, читающих код: объяснить, что программа делает, как она работает, и почему это написано так. Это хорошая практика комментировать ваши скетчи, и держать комментарии актуальными, когда вы изменяете код. Это поможет другим людям изучить или изменить код.
Есть еще один стиль для коротких комментариев в одну строку. Они начинаются с // и продолжаются до конца строки. Например, в строке:
int ledPin = 13; // Светодиод, подключенный к цифровому выводу 13
Сообщение "Светодиод, подключенный к цифровому выводу 13" это комментарий.
Переменные
Переменная — это место для хранения части данных. У неё есть имя, тип и значение. Например, строка скетча Blink выше, объявляет переменную с именем ledPin, типа int и начальным значением 13. Это используется для указания к какому контакту Arduino подключен светодиод. Каждый раз, когда в коде появляется ledPin её значение будет извлечено. При этом, человек, пишущий программу, мог бы не заморачиваться созданием переменной ledPin и вместо этого просто написал бы везде число 13, где необходимо указать номер контакта. Преимущество использования переменной заключается в том, что можно быстро и просто поменять номер контакта(ledPin, в данном примере): вам только нужно отредактировать одну строку, которая присваивает начальное значение переменной. Часто значение переменной будет меняться во время выполнения скетча. Например можно сохранить значение, считанное из входных данных в переменной. Чуть больше информации, можно почерпнуть из этого руководства.
Функции
Функция(также известная как процедура или подпрограмма) — именованный кусок кода, который можно использовать в других частях вашего скетча. Например вот определение функции setup() из примера Blink:
void setup()
{
pinMode(ledPin, OUTPUT); // устанавливает цифровой порт как выход
}
Первая строка содержит сведения о функции, с таким названием как, "setup". Текст до и после имени функции указывает на тип возвращаемого значения и параметры: они будут объяснены позже. Код между { и } называется телом функции: то, что делает функция.
Можно вызывать функцию которая уже была определена (в вашем скетче или стандартной библиотеке языка Arduino). Например, строка
pinMode(ledPin, OUTPUT); // устанавливает цифровой порт как выход
вызывает функцию pinMode(), передавая ей два параметра: ledPin и OUTPUT. Эти параметры используются функцией pinMode() для установки контакта в заданный режим.
pinMode(), digitalWrite() и delay()
Функция pinMode() конфигурирует pin(т.е. контакт, вход/выход) как вход или выход. Чтобы использовать данную функцию, вам необходимо указать номер pin'a(т.е. контакта), который вы хотите сконфигурировать и одну из констант INPUT или OUTPUT. При работе в режиме входа, pin(т.е. контакт) может определять состояние датчика(например, нажатие кнопки); этот вопрос рассматривается в этом руководстве. При работе в режиме выхода, pin(т.е. контакт) может управлять исполнительным механизмом(например, светодиодом).
Функция digitalWrite() выдаёт значение на выводе. Например, строка:
digitalWrite(ledPin, HIGH);
устанавливает на выводе ledPin значение HIGH, т.е. 5В(для некоторых плат 3,3В).
А в данном примере:
digitalWrite(ledPin, LOW);
устанавливает на выводе ledPin значение LOW, т.е. 0В.
Функция delay() приостанавливает выполнение программы на заданное количество миллисекунд, прежде чем перейдет к следующей строке. В одной секунде 1000 миллисекунд, поэтому строка ниже:
создает задержку в одну секунду.
setup() и loop()
Есть две специальные функции, которые должны быть в каждом скетче Arduino: setup() и loop(). Функция setup() вызывается один раз, при старте скетча. Это хорошее место для настройки контактов или инициализации библиотек. Функция loop() вызывается снова и снова, её можно назвать сердцем большинства скетчей. Вам нужно включить обе функции в ваш скетч, даже если они вам не нужны.
Упражнения
- Измените код таким образом, чтобы светодиод включался на 100 миллисекунд и выключался на 1000 миллисекунд.
- Измените код , чтобы индикатор загорался при старте скетча и оставался включенным.
См.также
Внешние ссылки
развернутьПартнерские ресурсы |
---|
Криптовалюты |
|
---|
Магазины |
|
---|
Хостинг |
|
---|
Разное |
- Викиум - Онлайн-тренажер для мозга
- Like Центр - Центр поддержки и развития предпринимательства.
- Gamersbay - лучший магазин по бустингу для World of Warcraft.
- Ноотропы OmniMind N°1 - Усиливает мозговую активность. Повышает мотивацию. Улучшает память.
- Санкт-Петербургская школа телевидения - это федеральная сеть образовательных центров, которая имеет филиалы в 37 городах России.
- Lingualeo.com — интерактивный онлайн-сервис для изучения и практики английского языка в увлекательной игровой форме.
- Junyschool (Джунискул) – международная школа программирования и дизайна для детей и подростков от 5 до 17 лет, где ученики осваивают компьютерную грамотность, развивают алгоритмическое и креативное мышление, изучают основы программирования и компьютерной графики, создают собственные проекты: игры, сайты, программы, приложения, анимации, 3D-модели, монтируют видео.
- Умназия - Интерактивные онлайн-курсы и тренажеры для развития мышления детей 6-13 лет
- SkillBox - это один из лидеров российского рынка онлайн-образования. Среди партнеров Skillbox ведущий разработчик сервисного дизайна AIC, медиа-компания Yoola, первое и самое крупное русскоязычное аналитическое агентство Tagline, онлайн-школа дизайна и иллюстрации Bang! Bang! Education, оператор PR-рынка PACO, студия рисования Draw&Go, агентство performance-маркетинга Ingate, scrum-студия Sibirix, имидж-лаборатория Персона.
- «Нетология» — это университет по подготовке и дополнительному обучению специалистов в области интернет-маркетинга, управления проектами и продуктами, дизайна, Data Science и разработки. В рамках Нетологии студенты получают ценные теоретические знания от лучших экспертов Рунета, выполняют практические задания на отработку полученных навыков, общаются с экспертами и единомышленниками. Познакомиться со всеми продуктами подробнее можно на сайте https://netology.ru, линейка курсов и профессий постоянно обновляется.
- StudyBay Brazil – это онлайн биржа для португалоговорящих студентов и авторов! Студент получает уникальную работу любого уровня сложности и больше свободного времени, в то время как у автора появляется дополнительный заработок и бесценный опыт.
- Автор24 — самая большая в России площадка по написанию учебных работ: контрольные и курсовые работы, дипломы, рефераты, решение задач, отчеты по практике, а так же любой другой вид работы. Сервис сотрудничает с более 70 000 авторов. Более 1 000 000 работ уже выполнено.
- StudyBay – это онлайн биржа для англоязычных студентов и авторов! Студент получает уникальную работу любого уровня сложности и больше свободного времени, в то время как у автора появляется дополнительный заработок и бесценный опыт.
|
---|
развернутьПримеры Arduino |
---|
Стандартные функции |
---|
Основы |
|
---|
Цифровой сигнал |
|
---|
Аналоговый сигнал |
|
---|
Связь |
- ReadASCIIString - Анализ строки, состоящей из разделенных запятыми int-значений, и их последующее использование для управления RGB-светодиодом.
- ASCII Table - Демонстрирует продвинутые способы вывода данных на Serial Monitor.
- Dimmer - Изменение яркости светодиода при помощи движения мышкой.
- Graph - Отправка данных на компьютер и их графическое отображение в скетче Processing.
- Physical Pixel - Включение/выключение светодиода путем отправки данных со скетча Processing (или Max/MSP) на Arduino.
- Virtual Color Mixer - Отправка с Arduino на компьютер сразу нескольких значений, а затем их считывание при помощи скетча для Processing или Max/MSP.
- Serial Call Response - Многобайтная передача данных при помощи метода вызова и ответа (метода «рукопожатия»).
- Serial Call Response ASCII - Многобайтная передача данных при помощи метода вызова и ответа (метода «рукопожатия»). До передачи данные зашифровываются в ASCII.
- SerialEvent - Демонстрирует использование SerialEvent().
- Serial input (Switch (case) Statement) - Как совершать различные действия, беря за основу символы, присланные через последовательный порт.
- MIDI - Передача через последовательный порт сообщений с MIDI-нотами.
- MultiSerialMega - Использование двух последовательных портов на Arduino Mega.
|
---|
Управляющие структуры |
- If Statement - Как использовать оператор «if» для создания условий, опирающихся на входные аналоговые данные, при которых светодиод будет либо включаться, либо оставаться выключенным.
- For Loop - Управление несколькими светодиодами, чтобы они мигали, как LED-полоска у автомобиля Китт из сериала «Рыцарь дорог».
- Array - Вариация примера «For Loop», но с использованием массива.
- While Loop - Использование цикла while() для калибровки датчика. Калибровка включается при нажатии на кнопку.
- Switch Case - Как совершать какие-либо действия в зависимости от значений, полученных от датчика. Эквивалент примера «If Statement», но если бы условий было не два, а четыре. Этот пример демонстрирует, как дробить диапазон данных от датчика на четыре «суб-диапазона», а затем в зависимости от полученных результатов совершать одно из четырех действий.
- Switch Case 2 - Второй пример, демонстрирующий использование оператора switch. Показывает, как совершать различные действия в зависимости от определенных символов, полученных через последовательный порт.
|
---|
Датчики |
- ADXL3xx - Считывание данных с акселерометра ADXL3xx.
- Knock - Определение стука при помощи пьезоэлемента.
- Memsic2125 - Считывание данных с 2-осевого акселерометра Memsic2125.
- Ping - Определение объектов при помощи ультразвукового дальномера.
|
---|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
---|
Строки |
|
---|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
---|
Клавиатура |
- KeyboardMessage - Отправка текстовой строки при нажатии на кнопку.
- KeyboardLogout - Выход из текущей пользовательской сессии при помощи клавиатурных комманд.
- KeyboardSerial - Считывает байт, присланный через последовательный порт, а в ответ отсылает другой байт.
- KeyboardReprogram - Открывает новое окно в среде разработки Arduino, а затем перешивает Leonardo скетчем «Моргание».
|
---|
Мышь |
|
---|
Разное |
---|