Первые шаги с Arduino: Подробный взгляд на печатную плату и структуру программы
СДЕЛАЙ САМ

Первые шаги с Arduino: Подробный взгляд на печатную плату и структуру программы

 

  • Дом.

В прошлый раз я оставил вас после настройки Arduino для работы с Mac или Windows и загрузки простого тестового приложения, которое мигало встроенным светодиодом. Сегодня я расскажу о коде, который вы загрузили, о структуре программного обеспечения Arduino и немного больше об электронных элементах на самой плате

В прошлый раз я оставил вас после настройки Arduino для работы с Mac или Windows и загрузки простого тестового приложения, которое мигает встроенным светодиодом. Сегодня я расскажу о коде, который вы загрузили, о структуре программного обеспечения Arduino и немного больше об электронных элементах на самой плате

Эта статья является частью цикла статей ‘Введение в Arduino’. Другими статьями цикла на данный момент являются:

  • Что такое Arduino и что вы можете с ним делать?.
  • Что такое стартовый набор Arduino и что в него входит?.
  • Больше классных компонентов, которые можно купить вместе со стартовым набором.
  • Начало работы с Arduino Starter Kit – установка драйверов & настройка платы & порт.

Аппаратное обеспечение

Давайте подробнее рассмотрим, что Arduino Uno имеет в плане битов на печатной плате

Вот увеличенная схема, на которую можно ссылаться:

  • Сверху расположены 14 цифровых контактов ввода/вывода (нумерация 0-13). Это самые универсальные контакты на вашем Arduino, они могут функционировать как вход или выход, и будут составлять основу ваших проектов. Цифровой означает, что сигнал, который эти контакты могут записать или прочитать, будет включен или выключен.
  • 6 из этих цифровых выводов, обозначенных знаком тильды ~ , способны выполнять так называемую широтно-импульсную модуляцию. Я не инженер-электрик, поэтому не буду позориться, объясняя, что за этим стоит, но для нас с вами это означает, что мы можем обеспечить диапазон выходных уровней – например, регулировать яркость светодиода или приводить в движение двигатель с различной скоростью.

 

  • Вывод 13 является особенным, поскольку в него встроен светодиод. Это сделано только для удобства и в целях тестирования. Вы можете использовать этот встроенный светодиод, как в примере приложения Blink, просто подав сигнал на вывод 13 – или использовать его как стандартный вывод ввода/вывода.
  • Справа внизу находятся 6 аналоговых входных контактов. С них будут считываться значения аналоговых датчиков, таких как светоизмерительные приборы или переменные резисторы.
  • Слева внизу рядом с аналоговыми входными контактами находятся контакты питания. Единственные, о которых вам действительно нужно беспокоиться, это контакты заземления (GND), линии питания 3,3 В и 5 В.
  • Наконец, единственный переключатель на Arduino – это переключатель сброса. Это перезапустит любую программу, хранящуюся в его памяти.
  • Arduino имеет определенный объем памяти, и если ваша программа будет слишком большой, компилятор выдаст вам ошибку.

Структура программы для Arduino

Каждая программа Arduino состоит как минимум из двух функций (если вы не знаете, что такое функция, обязательно прочитайте мой учебник по основам программирования, часть 2 – функции и управляющие операторы, и часть 1, где мы обсуждали переменные, прежде чем продолжить)

Первая – это функция setup. Она запускается изначально – только один раз – и используется для того, чтобы сообщить Arduino, что и куда подключено, а также для инициализации любых переменных, которые могут понадобиться в вашей программе

Второй этап – это цикл. Это ядро каждой программы Arduino. Когда Arduino работает, после завершения функции настройки цикл прогоняет весь код, затем повторяет все действия снова – до тех пор, пока не пропадет питание или не будет нажат переключатель сброса. Длительность выполнения одного полного цикла зависит от содержащегося в нем кода. Вы можете написать код, который говорит ‘подождите 6 часов’, в этом случае цикл не будет повторяться очень часто

Вот краткая диаграмма состояний для иллюстрации:

Изучение программы Blink

Просмотрите код программы Blink и определите функции установки и цикла

Вот установка:


 

void setup() {

// initialize the digital pin as an output.

// Pin 13 has an LED connected on most Arduino boards:

pinMode(13, OUTPUT);

Строки, начинающиеся с // , – это просто комментарии, поясняющие код для читателя, и они не загружаются в Arduino. Так что на самом деле в этом конкретном приложении для Arduino есть только одна строка кода настройки. Эта строка гласит: ‘Установите пин 13 в режим вывода’. 13, как вы помните, это встроенный светодиод

Затем идет цикл:


 

void loop() {

digitalWrite(13, HIGH); // set the LED on

delay(1000); // wait for a second

digitalWrite(13, LOW); // set the LED off

delay(1000); // wait for a second

Комментарии в конце каждой строки кода достаточно хорошо объясняют их функцию.HIGH и LOW означают состояние ON и OFF цифрового выхода – в нашем случае светодиода. На самом деле в коде можно написать ON или OFF, оба эти слова являются синонимами (также как 0 и 1). Задержка указывает Arduino на необходимость подождать некоторое время, в данном случае 1000 миллисекунд (или 1 секунду)

Наконец, заметка об используемом здесь языке программирования. Обратите внимание, что перед функциями setup и loop стоит слово void. Это специальное слово, означающее ‘ничто’, потому что функция ничего не возвращает при вызове – она просто выполняет содержащийся в ней код. Пока оставим это, сказав, что блок кода функции заключен в фигурные скобки { }, и что каждая строка кода должна заканчиваться точкой с запятой ;

Попробуйте как-то изменить основную программу, изменив точные значения задержки на что-то большее или меньшее. Посмотрите, до какого значения вы можете уменьшить задержку, чтобы мигание перестало быть заметным. Определите, какое значение нужно изменить, чтобы он дольше оставался включенным или дольше выключался. Попробуйте добавить еще несколько операторов digitalWrite и delay в функцию loop, чтобы создать более сложный рисунок мигания, например, азбуку Морзе для SOS. Если у вас есть зуммер, попробуйте подключить его к контактам 13 и GND (подсказка: красный провод идет к 13, черный – к земле)

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

Теги

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий