Рекламное объявление

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

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

  • Что такое Arduino и что с этим можно сделать Что такое Arduino и что с этим можно сделать?Arduino - это замечательное небольшое электронное устройство, но если вы никогда не использовали его раньше, то что же это такое и что вы можете сделать с ним? Подробнее ?
  • Что такое стартовый набор Arduino и что в нем содержится?
    instagram viewer
    Что входит в стартовый комплект Arduino? [MakeUseOf Объясняет]Ранее я представил оборудование Arduino с открытым исходным кодом здесь, в MakeUseOf, но вам понадобится нечто большее, чем просто Arduino, чтобы что-то из него построить и начать работу. Arduino "стартовые комплекты" ... Подробнее
  • Более крутые компоненты, чтобы купить с вашим стартовым комплектом 8 более интересных компонентов для ваших проектов ArduinoИтак, вы думаете о приобретении стартового комплекта Arduino, но хотите знать, хватит ли каких-нибудь базовых светодиодов и резисторов, чтобы занять вас на выходные? Возможно нет. Вот еще 8 ... Подробнее
  • Начало работы с вашим Arduino Starter Kit - Установка драйверов и настройка платы и порта Начало работы с вашим Arduino Starter Kit - Установка драйверов и настройка платы и портаИтак, вы купили себе стартовый комплект Arduino и, возможно, некоторые другие случайные классные компоненты - что теперь? Как вы на самом деле начинаете программировать эту штуку Arduino? Как вы это настроили ... Подробнее

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

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

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

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

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

Каждая программа Arduino состоит как минимум из двух функций (если вы не знаете, что это за функция, обязательно прочитайте мой базовое руководство по программированию, часть 2 - операторы функций и управления Абсолютные основы программирования для начинающих (часть 2)Во второй части нашего абсолютного руководства по программированию для начинающих я расскажу об основах функций, возвращаемых значениях, циклах и условных выражениях. Убедитесь, что вы прочитали часть 1, прежде чем заняться этим, где я объяснил ... Подробнее , и часть 1, где мы обсуждали переменные Основы компьютерного программирования 101 - Переменные и типы данныхПознакомившись и немного поговорив об объектно-ориентированном программировании и о том, где его тезка приходит, я думал, что пришло время пройти через абсолютные основы программирования в неязыковой путь. Эта... Подробнее прежде чем продолжить).

Первое - это функция настройки. Это запускается изначально - только один раз - и используется, чтобы сообщить 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 секунда).

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

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

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

Джеймс имеет степень бакалавра в области искусственного интеллекта и сертифицирован CompTIA A + и Network +. Он является ведущим разработчиком MakeUseOf и проводит свое свободное время за игрой в VR-пейнтбол и настольные игры. Он строит компьютеры с детства.