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

плата ArduinoВ прошлый раз я оставил тебя настроенным

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

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

  • Что такое Arduino и что с этим можно сделать

    ?

  • Что такое стартовый набор Arduino и что в нем содержится?
  • Более крутые компоненты, чтобы купить с вашим стартовым комплектом
  • Начало работы с вашим Arduino Starter Kit — Установка драйверов Настройка платы порт

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

Давайте внимательнее посмотрим на то, что имеет 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() {
// 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
}

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

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

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

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

Ссылка на основную публикацию
Adblock
detector