Diy

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

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

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

Эта статья является частью введения в серию Arduino. Другие статьи в этой серии:

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

Давайте внимательнее посмотрим на то, что имеет Arduino Uno с точки зрения битов на плате.

Вот увеличенная диаграмма для обозначения:

плата Arduino

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

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

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

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

Второй цикл. Это ядро ​​каждой программы Arduino. Когда Arduino работает, после того, как функция настройки завершена, цикл будет проходить через весь код, а затем делать все снова — пока либо не будет потеряно питание, либо не будет нажата кнопка сброса. Время, необходимое для завершения одного полного цикла, зависит от кода. Вы можете написать код, который говорит «подождите 6 часов», и в этом случае цикл будет повторяться не очень часто.

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

плата Arduino

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

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

Вот настройки:

 void setup () {// инициализируем цифровой вывод как выход.  // К выводу 13 подключен светодиод на большинстве плат Arduino: pinMode (13, OUTPUT);  } 

Строки, начинающиеся с //, являются просто комментариями для объяснения кода читателю, и они не загружаются в Arduino. Фактически, в этом конкретном приложении Arduino есть только одна строка кода установки. В этой строке написано «Установите вывод 13 в режим вывода». 13, помните, это встроенный светодиод.

Тогда есть цикл:

  void loop () {
 digitalWrite (13, ВЫСОКИЙ);  // установить светодиод
 Задержка (1000);  // подожди секунду
 digitalWrite (13, LOW);  // выключаем светодиод
 Задержка (1000);  // подожди секунду
 } 

Комментарии в конце каждой строки кода достаточно хорошо объясняют их функцию. ВЫСОКИЙ и НИЗКИЙ относятся к состоянию ВКЛ и ВЫКЛ цифрового выхода — в нашем случае светодиод. Вы могли бы также написать ON или OFF в коде, оба являются синонимами (также как 0 и 1). Задержка говорит Arduino немного подождать, в этом случае 1000 миллисекунд (или 1 секунда).

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

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

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

Похожие посты
Diy

Вещи, которые вы должны иметь в виду, прежде чем брать ноутбук или смартфон в службу технической поддержки

Diy

Как использовать Arduino для съемки красивой скоростной фотографии

DiyLinux

Пять великолепных расширений Raspberry Pi, которые делают его еще более полезным

Diy

Как выбрать и оптимизировать свой браузер Raspberry Pi