Ардуино для начинающих. урок 14. прерывания

Программирование STM32 с помощью PlatformIO

Для поклонников микроконтроллеров, построенных на основе платформы STM32, мы в данной статье рассмотрим их программирование с помощью PlatformIO. Процесс программирования STM32 будет практически таким же, как и рассмотренная процедура программирования Arduino UNO с помощью PlatformIO. Различие будет состоять в том, что необходимо будет выбрать соответствующую плату STM32 когда будете создавать новый проект для STM32. Достоинством PlatformIO в данном случае является то, что при работе в ней нет необходимости отдельно скачивать какие либо внешние пакеты для работы с любой платой, PlatformIO скачивает все необходимые пакеты автоматически, поэтому нам необходимо просто выбрать плату и затем можно переходить к редактору. Мы будем использовать внешний JLink/ JTAG/ STLink/ Serial Programmer чтобы загружать скетч в STM32. Также следует отметить, что STM32 можно программировать и с помощью Arduino IDE.

Чтобы произвести программирование STM32 с помощью PlatformIO выполните следующую последовательность шагов.

Дайте имя новому проекту – мы его назвали ‘Blink STM32’. Затем выберите необходимую плату STM32 – в нашем случае это ‘BluePill F103C8(Generic)’. Выберите фреймворк для Arduino. После заполнения всех полей нажмите на Finish и подождите некоторое время пока проект создастся и загрузит все необходимые пакеты для работы с STM32.

Повторное создание проекта для работы с STM32 произойдет гораздо быстрее потому что все необходимые пакеты будут уже загружены при создании первого проекта. Теперь перейдите в пункт меню Untitled(Workspace) -> src -> main.cpp как мы это уже рассматривали ранее в статье при работе с платой Arduino.

Следующим шагом идет выбор программатора – он весьма важный. Для программирования плат STM32 могут быть использованы такие программаторы как JTAG, STLink, JLink, Serial и т.п. Все они рабочие, но вам необходимо соответствующим образом сконфигурировать страницу конфигурации ‘platformio.ini’

В этом проекте мы используем программатор Serial Programmer CP210x USB to UART Bridge. Подсоедините этот последовательный программатор к плате STM32 (как показано в следующей таблице) и к вашему компьютеру.

USB to Serial Programmer STM32 Board
5V 5V
Gnd Gnd
Rx A9
Tx A10

После этого перейдите в менеджер проектов (project explorer), откройте в нем страницу ‘platformio.ini’ и внесите в нее изменения как показано на следующем рисунке. Протокол загрузки кода (upload_protocol) определяет какой программатор следует использовать ((STLink, JLink, Serial и т.д.). В качестве параметра upload_port следует указать используемый вами COM порт. Вы можете изменить/выбрать используемый COM порт в пункте меню ‘Devices’ на главной странице PlatformIO.

После этого перейдите в ‘main.cpp’ и напишите/измените программу мигания светодиодом. Далее загрузите код программы в плату. В случае успешной загрузки кода будут показаны параметры его загрузки. После загрузки кода вы сможете наблюдать мигание светодиода, подключенного к контакту PC13 платы STM32.

Делаем мини-пианино с помощью Ардуино — схемы и видео

Компоненты

Необходимые компоненты для нашего проекта:

  • Arduino UNO — 1 шт.
  • Провода-переходники папа-папа — 104×4.
  • Клавиатура — 14 Ом.
  • Динамики — 1A.
  • ПК или ноутбук.

Рабочий код

arduino-keypad.rar
#include#include «pitches.h» #define GND 12 const byte ROWS = 4; //four rows const byte COLS = 4; //four columns const int SPEAKER=11;//define the symbols on the buttons of the keypads char hexaKeys = { {‘0′,’1′,’2′,’3’}, {‘4′,’5′,’6′,’7’}, {‘8′,’9′,’A’,’B’}, {‘C’,’D’,’E’,’F’} }; byte rowPins = {3, 2, 8, 0}; //connect to the row pinouts of the keypad byte colPins = {7, 6, 5, 4}; //connect to the column pinouts of the keypad//initialize an instance of class NewKeypad Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); void setup(){ Serial.begin(9600); pinMode(GND,OUTPUT); digitalWrite(GND,LOW); } void loop(){ char customKey = customKeypad.getKey(); if (customKey==’0′){ Serial.println(customKey); tone(SPEAKER,NOTE_C4,350); } if (customKey==’1′){ Serial.println(customKey); tone(SPEAKER,NOTE_D4,350); } if (customKey==’2′){ Serial.println(customKey); tone(SPEAKER,NOTE_E4,350); } if (customKey==’3′){ Serial.println(customKey); tone(SPEAKER,NOTE_F4,350); } if (customKey==’4′){ Serial.println(customKey); tone(SPEAKER,NOTE_G4,350); } if (customKey==’5′){ Serial.println(customKey); tone(SPEAKER,NOTE_A4,350); } if (customKey==’6′){ Serial.println(customKey); tone(SPEAKER,NOTE_B4,350); } if (customKey==’7′){ Serial.println(customKey); tone(SPEAKER,NOTE_C5,350); } if (customKey==’8′){ Serial.println(customKey); tone(SPEAKER,NOTE_D5,350); } if (customKey==’9′){ Serial.println(customKey); tone(SPEAKER,NOTE_E5,350); } if (customKey==’A’){ Serial.println(customKey); tone(SPEAKER,NOTE_F5,350); } if (customKey==’B’){ Serial.println(customKey); tone(SPEAKER,NOTE_G5,350); } if (customKey==’C’){ Serial.println(customKey); tone(SPEAKER,NOTE_A5,350); } if (customKey==’D’){ Serial.println(customKey); tone(SPEAKER,NOTE_B5,350); } if (customKey==’E’){ Serial.println(customKey); tone(SPEAKER,NOTE_C6,350); } if (customKey==’F ‘){ Serial.println(customKey); tone(SPEAKER,NOTE_D6,350); }}

Files — Example — Keypad — Custom Keypad

Играем песню «С Днем Рождения»

Как играть песню «С Днем Рождения» на клавиатуре:
4 4 5 4 B 6 4 4 5 4 7 B4 4 C 8 B 6 59 9 9 B 7 B
Видео:

https://youtube.com/watch?v=DXfOrWiRflg

Codim

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

На курсе учащийся научится:

  • Основам электроники
  • Самостоятельно собирать электрические схемы
  • Программировать на языке Си++
  • Самостоятельно собирать и программировать роботов
  • Создавать устройства интернета вещей
  • Управлять роботом и устройствами интернета вещей с помощью смартфона
  • Воплощать свои самые фантастические идеи в жизнь
  • Технической грамотности
  • Разовьет образное мышление
  • Раскроет свой творческий потенциал.

Дополнительные модули и сенсоры

Полностью раскрыть потенциал Arduino позволяют дополнительные модули, подключающиеся к выводам платы, которые называют пинами (англ. — pin).

Наиболее интересные и популярные модули расширения:

  1. 3D-джойстик. Своеобразный программируемый 3D-стик, способный стать способом управления спроектированного механизма или робота;
  2. Bluetooth-модуль. Даёт возможность управления механизмом или обменом данными через Bluetooth;
  3. EasyVR Shield 3.0. Разработка, служащая для распознавания голосовых команд;
  4. Espruino Pico. Контролер, позволяющий выполнять Java-скрипты, расширяя варианты применения платы;
  5. GPRS Shield. Расширение, позволяющее принимать и отправлять голос, SMS и GPRS-данные;
  6. Motor Shield. Подключаемый модуль, позволяющий программно управлять двумя моторчиками;
  7. Power Bank. Аккумулятор для переносных компактных модулей на 2000 МАч.
  8. Датчики влажности, температуры и т.п.: — датчик дождя, — датчик расстояния, — датчик температуры, — детектор пыли, — GPS приемник, — и др.

Это далеко не весь список, а лишь популярные и распространённые дополнения.

Существуют разнообразные подключаемые картридеры, акселерометры, передатчики и модули для разнообразных сфер жизнедеятельности. Arduino начинает эффективно применяться даже в медицине.

Установка Arduino IDE

Если вы скачали архив, то просто распакуйте его и запустите Arduino.exe.

Если вы скачали установочный файл то вам необходимо выполнить стандартную установку. Процесс установки очень прост и не займет много времени, но для полноты статьи я распишу его подробно.

Запускаем установочный файл. Соглашаемся с условиями лицензионного соглашения (естественно после прочтения).

Соглашаемся с условиями

Выбираем необходимые модули программы. Первые два должны быть отмечены обязательно. Остальные на ваше усмотрение.

Выбор компонентов Arduino ide

Далее указываем папку в которую хотим установить программу. Желательно, что бы путь к этой папке не содержал кириллических символов.

Выбор пути установки программы

Во время установки может появиться окно с предложением установки драйвера USB-to-serial. Соглашаемся и ждем окончания установки. На этом весь процесс завершен. Осталось настроить среду разработки и можно творить.

Модуль DS1307

DS1307 – это модуль, который используется для отсчета времени. Он собран на основе микросхемы DS1307ZN, питание поступает от литиевой батарейки для реализации автономной работы в течение длительного промежутка времени. Батарея на плате крепится на обратной стороне. На модуле имеется микросхема AT24C32 – это энергонезависимая память EEPROM на 32 Кбайт. Обе микросхемы связаны между собой шиной I2C. DS1307 обладает низким энергопотреблением и содержит часы и календарь по 2100 год.

Модуль обладает следующими параметрами:

  • Питание – 5В;
  • Диапазон рабочих температур от -40С до 85С;
  • 56 байт памяти;
  • Литиевая батарейка LIR2032;
  • Реализует 12-ти и 24-х часовые режимы;
  • Поддержка интерфейса I2C.

Модуль оправдано использовать в случаях, когда данные считываются довольно редко, с интервалом в неделю и более. Это позволяет экономить на питании, так как при бесперебойном использовании придется больше тратить напряжения, даже при наличии батарейки. Наличие памяти позволяет регистрировать различные параметры (например, измерение температуры) и считывать полученную информацию из модуля.

Взаимодействие с другими устройствами и обмен с ними информацией производится с помощью интерфейса I2C с контактов SCL и SDA. В схеме установлены резисторы, которые позволяют обеспечивать необходимый уровень сигнала. Также на плате имеется специальное место для крепления датчика температуры DS18B20.Контакты распределены в 2 группы, шаг 2,54 мм. В первой группе контактов находятся следующие выводы:

  • DS – вывод для датчика DS18B20;
  • SCL – линия тактирования;
  • SDA – линия данных;
  • VCC – 5В;
  • GND.

Во второй группе контактов находятся:

  • SQ – 1 МГц;
  • DS ;
  • SCL;
  • SDA;
  • VCC;
  • GND;
  • BAT – вход для литиевой батареи.

Для подключения к плате Ардуино нужны сама плата (в данном случае рассматривается Arduino Uno), модуль часов реального времени RTC DS1307, провода и USB кабель.

Чтобы подключить контроллер к Ардуино, используются 4 пина – VCC, земля, SCL, SDA.. VCC с часов подключается к 5В на Ардуино, земля с часов – к земле с Ардуино, SDA – А4, SCL – А5.

Для начала работы с модулем часов нужно установить библиотеки DS1307RTC, TimeLib и Wire. Можно использовать для работы и RTCLib.

Проверка RTC модуля

При запуске первого кода программа будет считывать данные с модуля раз в секунду. Сначала можно посмотреть, как поведет себя программа, если достать из модуля батарейку и заменить на другую, пока плата Ардуино не присоединена к компьютеру. Нужно подождать несколько секунд и вытащить батарею, в итоге часы перезагрузятся. Затем нужно выбрать пример в меню Examples→RTClib→ds1307

Важно правильно поставить скорость передачи на 57600 bps

При открытии окна серийного монитора должны появиться следующие строки:

Будет показывать время 0:0:0. Это связано с тем, что в часах пропадает питание, и отсчет времени прекратится. По этой причине нельзя вытаскивать батарею во время работы модуля.

Чтобы провести настройку времени на модуле, нужно в скетче найти строку

RTC.adjust(DateTime(__DATE__, __TIME__));

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

Настройка произведена корректно и дополнительно перенастраивать часы реального времени не придется.

Считывание времени. Как только модуль настроен, можно отправлять запросы на получение времени. Для этого используется функция now(), возвращающая объект DateTime, который содержит информацию о времени и дате. Существует ряд библиотек, которые используются для считывания времени. Например, RTC.year() и RTC.hour() – они отдельно получают информацию о годе и часе. При работе с ними может возникнуть проблема: например, запрос на вывод времени будет сделан в 1:19:59. Прежде чем показать время 1:20:00, часы выведут время 1:19:00, то есть, по сути, будет потеряна одна минута. Поэтому эти библиотеки целесообразно использовать в случаях, когда считывание происходит нечасто – раз в несколько дней. Существуют и другие функции для вызова времени, но  если нужно уменьшить или избежать погрешностей, лучше использовать now() и из нее уже вытаскивать необходимые показания.

Что такое PlatformIO?

Почему стоит перейти с Arduino IDE на PlatformIO

В сети выделяют следующие недостатки Arduino IDE:

  • отсутствие кастомизации (темы, подсветка синтаксиса);
  • нет автодополнения кода (как в современных IDE);
  • не очень удобная организация проектов;
  • нет поддержки каких-либо плагинов;
  • неудобный менеджер библиотек;
  • не очень вразумительный builder, с которым достаточно трудно искать ошибки в программе;
  • другие мелкие баги, которые чаще всего встречаются при работе с Arduino IDE с операционной системе Windows.

Именно эти недостатки и вынуждают ряд пользователей переходить с Arduino IDE на PlatformIO или другие аналогичные платформы.

Преимущества PlatformIO

PlatformIO позволяет производить быструю разработку приложений и, подобно C/C++, поддерживает быстрое завершение кода и интеллектуальный код линтера, недоступные в Arduino IDE. В дополнение к этому PlatformIO предлагает полную поддержку тем с темными и светлыми цветами, умную навигацию по коду и форматирование кода. Ядро платформы включает мультиплатформенный builder, менеджер библиотек, монитор последовательного порта и многое другое.

Единый (унифицированный) отладчик поддерживает множество архитектур и платформ разработки. В отладчике есть такие функции как условные точки останова, выражения и точки наблюдения (Watchpoints), диспетчер памяти, “горячий” рестарт текущей сессии отладки. Ядро PlatformIO написано на Python 2.7 и работает на Windows, macOS, Linux, FreeBSD и даже на некоторых платформах с ARM-архитектурой: Raspberry Pi, BeagleBone, CubieBoard, Samsung ARTIK и т.п. Также в составе PlatformIO есть проводник файлов (File Explorer), который помогает в удобной организации хранения ваших проектов.

Прототипирование/макетирование

Для сборки макета нам необходимы следующие элементы: светодиод, резистор, проводки (перемычки), макетная плата(Breadboard). Для того, чтоб ничего не спалить, и для того, чтоб всё успешно работало, надо разобраться со светодиодом. У него есть две «лапки». Короткая – минус, длинная – плюс. На короткую мы будем подключать «землю» (GND) и резистор (для того, чтоб уменьшить силу тока, которая поступает на светодиод, чтоб не спалить его), а на длинную мы будем подавать питание (подключим к 13 пину). После подключения, загрузите на плату скетч, если вы ранее этого не сделали. Код остаётся тот же самый.

На этом у нас конец первой части

Спасибо за внимание

Язык программирования Ардуино

Как я уже написал выше все программы создаются на базе языков программирования C/C++.

Если вы знаете C++, то Arduino откроет вам двери в фантастический мир создания роботов и различных устройств.

Приведу пример программы одного из самых простых устройств — мигание светодиода, подключенного к плате:

void setup () { pinMode (13, OUTPUT); // Назначение порта 13 в качестве выходного порта } void loop () { digitalWrite (13, HIGH); // Установка порта 13 в состояние «1», светодиод загорается delay (1000); // Задержка на 1000 миллисекунд digitalWrite (13, LOW); // Установка порта 13 в состояние «0», светодиод гаснет delay (1000); // Задержка на 1000 миллисекунд }

Программы для плат Ардуино пишутся в специальной программе с которой мы познакомимся ниже, но никто не мешает вам использовать тот редактор кода который вам нравится или к которому вы привыкли.

Общая информация об Arduino

Arduino обрели особенно сильную популярность среди людей, которые только начинают заниматься электроникой. На то есть несколько причин. В отличие от большинства предшественников, Arduino не требует дополнительного оборудования (программатора) для загрузки кода на плату — используется простой USB-кабель. Оболочка для программирования — Arduino IDE использует упрощенную версию C++, что облегчает процесс обучения для новичков. Кроме того, Arduino использует стандартизированный форм фактор для большинства своих плат, благодаря чему появился целый комплект дополнительных «шилдов».

Arduino Uno показана на рисунке ниже:

Arduino Uno — одна из самых популярных плат в линейке и является отличным выбором для начинающих. Технические характеристики этой модели будут рассмотрены ниже.

Оболочка Arduino IDE:

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

В этой статье мы остановимся на следующих основных моментах:

  • Какие проекты можно реализовать с Arduino
  • Основные узлы плат Arduino
  • Номенклатура самых удачных моделей Arduino
  • Дополнительные (периферийные) устройства для Arduino

Рекомендуем также дополнительно почитать

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

  • Что такое электричество?
  • Закон Ома
  • Электрическая цепь
  • Интегральная схема (микросхема)
  • Аналоговый сигнал
  • Цифровой сигнал

Справочник радиолюбителя конструктора

Как проверить конденсатор мультиметром на работоспособность

СОДЕРЖАНИЕ ► Конденсаторы и способы их проверки тестером Как проверить ёмкость конденсатора тестером Как проверить конденсатор на исправность Проверка конденсатора

Язык программирования Ардуино C++

СОДЕРЖАНИЕ ► Arduino команды языка программирования Операторы в языке программирования Ардуино Управляющие операторы в языке Ардуино Синтаксис в языке программирования

Ошибки компиляции Arduino IDE

СОДЕРЖАНИЕ ► Ошибки компиляции для Arduino Uno, Nano, Mega Ошибка: programmer is not responding Ошибка: a function-definition is not allowed

Библиотеки для Ардуино Уно, Нано скачать

СОДЕРЖАНИЕ ► Скачать стандартные библиотеки Arduino на русском Скачать популярные библиотеки Arduino на русском Где правильно хранить библиотеки Arduino IDE

СОДЕРЖАНИЕ ► Учебники по Ардуино в формате pdf Книги по Ардуино для начинающих 25 крутых проектов с Ардуино С чего

Arduino IDE скачать на русском

СОДЕРЖАНИЕ ► Скачать Arduino IDE бесплатно Установка Arduino IDE в Windows Настройка Arduino IDE Linux Онлайн сервис Arduino Web IDE

Типы данных Ардуино

СОДЕРЖАНИЕ ► Таблица. Типы переменных Arduino Константы, директива define в скетче Преобразование переменных Arduino Типы данных (переменная) в Ардуино —

СОДЕРЖАНИЕ ► Описание пинов платы Ардуино Цифровые и ШИМ пины Ардуино Уно Цифровые и ШИМ пины Ардуино Нано Цифровые и

Как создать библиотеку в Arduino IDE

СОДЕРЖАНИЕ ► Создание новой библиотеки в Arduino IDE Как написать библиотеку для Arduino IDE Создание заголовочного файла .h Создание файла

Макетная плата как пользоваться

СОДЕРЖАНИЕ ► Для чего нужна макетная плата (breadboard) Конструкция и устройство макетной платы Как пользоваться макетной платой Ардуино Беспаечная макетная

Ардуино: установка библиотек в Arduino IDE

СОДЕРЖАНИЕ ► Что такое библиотеки в Arduino IDE Установка библиотеки в Arduino IDE Установка библиотеки через Arduino IDE Установка библиотеки

Библиотека Adafruit NeoPixel Ардуино

СОДЕРЖАНИЕ ► Библиотека Adafruit NeoPixel для Ардуино Ошибка ‘Adafruit_NeoPixel h no such file or directory’ Библиотека Adafruit NeoPixel описание команд

Библиотека FastLED Ардуино

СОДЕРЖАНИЕ ► FastLED описание библиотеки на русском Ошибка скетча ‘fastled h no such file or directory’ Описание команд библиотеки FastLED.h

Делитель напряжения на резисторах

СОДЕРЖАНИЕ ► Работа делителя напряжения на резисторах Онлайн расчет делителя напряжения на резисторах Делитель напряжения на резисторах — это схема,

Цветовая маркировка радиоэлементов

СОДЕРЖАНИЕ ► Таблица. Цветовая маркировка резисторов Таблица. Цветовая маркировка конденсаторов Раньше маркировка наносилась на корпус резисторов, и сопротивление радиоэлемента просто

Обозначение радиоэлементов с фото

СОДЕРЖАНИЕ ► Схемное обозначение радиоэлементов с названиями Обозначение радиоэлементов на электрических схемах Для понимания принципиальных электрических схем необходимо ознакомиться с

Основной закон электричества Ома

СОДЕРЖАНИЕ ► Основные понятия: электричество, ток, напряжение Главный закон электричества — Закон Ома Параллельное и последовательное соединение Электричество — совокупность

Простые проекты Ардуино

Давайте начнем наш обзор с традиционно самых простых, но очень важных проектов, включающих в себя минимальное количество элементов: светодиоды, резисторы и, конечно же, плату ардуино. Все примеры рассчитаны на использование Arduino Uno, но с минимальными изменениями будут работать на любой плате: от Nano и Mega до Pro, Leonardo и даже LilyPad.

Проект с мигающим светодиодом – маячок

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

Нам понадобится:

  • Плата Ардуино Uno, Nano или Mega со встроенным светодиодом, подключенным к 13 пину.
  • И все.

Что должно получиться в итоге:

Светодиод мигает – включается и выключается через равные промежутки времени (по умолчанию – 1 сек). Скорость включения и выключения можно настраивать.

Схема проекта

Схема проекта довольно проста: нам нужен только контроллер ардуино со встроенным светодиодом, подсоединенным к пину 13. Именно этим светодиодом мы и будем мигать. Подойдут любые популярные платы: Uno, Nano, Mega и другие.

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

С помощью такого простого проекта маячка вы можете быстро проверить работоспособность платы: подключите ее к компьютеру, залейте скетч и по миганию светодиода сразу станет понятно – работает плата или нет.

Программирование в проекте Ардуино

Если в вашей плате нет загруженного скетча маячка – не беда. Можно легко загрузить уже готовый пример, доступный в среде программирования Ардуино.

Открываем программу Arduino IDE, убеждаемся, что выбран нужный порт.

Проверка порта Ардуино – выбираем порт с максимальным номером

Затем открываем уже готовый скетч Blink – он находится в списке встроенных примеров. Откройте меню Файл, найдите подпункт с примерами, затем Basics и выберите файл Blink.

Открываем пример Blink в Ардуино IDE

В открытом окне отобразится исходный код программы (скетча), который вам нужно будет загрузить в контроллер. Для этого просто нажимаем на кнопку со стрелочкой.

Кнопки компиляции и загрузки скетча

Информация в Arduino IDE – Загрузка завершена

Ждем немного (внизу можно отследить процесс загрузки) – и все. Плата опять подмигнет несколькими светодиодами, а затем один из светодиодов начнет свой размеренный цикл включений и выключений. Можно вас поздравить с первым загруженным проектом!

Проект маячка со светодиодом и макетной платой

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

Графическое изображение схемы подключения доступно на следующем рисунке:

Другие идеи проектов со светодиодами:

  • Мигалка (мигаем двумя свтодиодами разных цветов)
  • Светофор
  • Светомузыка
  • Сонный маячок
  • Маячок – сигнализация
  • Азбука Морзе

Подробное описание схемы подключения и логики работы программы можно найти в отдельной статье, посвященной проектам со светодиодами.

Драйверы

Оригинальные платы от Arduino используют USB контроллер производства FTDI, либо отдельный микроконтроллер в качестве USB интерфейса. Если вы используете китайские платы, то вам понадобится дополнительный драйвер на китайский USB-TTL контроллер. Называется он CH340 (CH341), является производимым в Китае дешёвым аналогом дорогого шведского FTDI чипа.

Windows

Драйверы можно скачать по прямой ссылке с сайта, есть запасной архив на Яндекс.диске, или можно поискать в Гугле. Распаковываем архив и запускаем файл

  • SETUP.EXE (для 32-х разрядной системы)
  • DRVSETUP64/SETUP64.EXE (для 64-х разрядной системы).

В появившемся окошке нажимаем INSTALL. Готово!

Если во время установки Arduino IDE вы по какой-то причине пропустили установку драйверов, то их можно установить вручную из папки с программой, расположенной по пути

  • C/Program Files/Arduino/drivers (для 32-х разрядной системы)
  • C/Program Files (x86)/Arduino/drivers (для 64-х разрядной системы).

Запустить файл

  • dpinst-x86.exe (для 32-х разрядной системы)
  • dpinst-amd64.exe (для 64-х разрядной системы)

MacOS

Linux Mint

В Linux уже встроен необходимый драйвер, но Arduino IDE может отказаться с ним работать: Linux определяет ардуинку как устройство ttyUSB*, обычно это ttyUSB0 (это можно узнать командой dmesg в терминале), то есть в системе появляется интерфейс /dev/ttyUSB0. Чтобы с ним работать, нужны права доступа. Читать и писать на устройство /dev/ttyUSB0 имеет пользователь root и пользователи группы dialout. Работы с правами суперпользователя лучше избегать, поэтому следует занести своего пользователя в группу dialout

Это можно сделать следующей командой (обратите внимание, команда whoami в обратных кавычках)

sudo usermod -a -G dialout `whoami`

После этого нужно перелогиниться. Дальше запускаем Arduino IDE и в меню «Инструменты/Порт» ставим галочку напротив /dev/ttyUSB0.

Linux Arch

Вся информация по работе с IDE на данной ОСи есть вот в этой статье.

После установки и настройки всего необходимого можно попробовать прошить плату. Запускаем Arduino IDE и переходим к следующему уроку, где эту самую IDE рассмотрим более подробно.

Отсутствие «реальной» отладки

Когда в Arduino использовался ATmega328, у разработчика не было порта отладки. Теперь появилась серия плат Due, и отладочные порты имеют микроконтроллеры Microchip (Atmel) от серии tiny (DebugWire) до серии XMEGA (PDI и JTAG), однако пользователям Arduino этот мощный набор инструментов по-прежнему недоступен. Думаю, что при использовании правильно настроенного отладчика время разработки приложений у меня снижается процентов на 30. Поэтому ARM интересен хотя бы тем, что может использовать реализацию OpenOCD, предоставляющую разработчику широкие возможности отладки и программирования. Несколько точек останова дают очень быструю индикацию выполняемого кода и возникающих ошибок. Меня приводят в восторг все новые наборы разработки ARM с интегрированным аппаратным отладчиком. Добавьте поддержку arm-gdb и OpenOCD, и вы на вершине! Настройка этих инструментов может оказаться немного затруднительной, но полностью стоит того, чтобы попытаться создать достойное встроенное приложение.

Как настроить Ардуино?

Одним из главных преимуществ конструктора является его безопасность относительно настроек пользователя. Ключевые настройки, потенциально опасные для Arduino, являются защищенными и будут недоступны.

Поэтому даже неопытный программист может смело экспериментировать и менять различные опции, добиваясь нужного результата. Но на всякий случай очень рекомендуем прочитать три важных материала по тому как не испортить плату:

  • Как уберечь Arduino и другие платы от кривых рук
  • 10 способов «убить» микроконтроллер Arduino

Алгоритм классической настройки программы Arduino выглядит так:

  • установка IDE, которую можно загрузить ниже или здесь или с сайта производителя;
  • установка программного обеспечения на используемый ПК;
  • запуск файла Arduino;
  • вписывание в окно кода разработанную программу и перенос ее на плату (используется USB кабель);
  • в разделе IDE необходимо выбрать тип конструктора, который будет использоваться. Сделать это можно в окне «инструменты» — «платы»;
  • проверяете код и жмете «Дальше», после чего начнется загрузка в Arduino.
1.8.7 Код на Github
1.8.6 Код на Github
1.8.5 Код на Github
1.8.4 Код на Github
1.8.3 Код на Github
1.8.2 Код на Github
1.8.1 Код на Github
1.8.0 Код на Github
1.6.13 Код на Github
1.6.12 Код на Github
1.6.11 Код на Github
1.6.10 Код на Github
1.6.9 Код на Github
1.6.8 Код на Github
1.6.7 Код на Github
1.6.6 Код на Github
1.6.5 Код на Github
1.6.4 Код на Github
1.6.3 Код на Github
1.6.2 Код на Github
1.6.1 Код на Github
1.6.0 Код на Github
1.5.8 BETA Код на Github
1.5.7 BETA Код на Github
1.5.6-r2 BETA Код на Github
1.5.5 BETA Код на Github
1.5.4 BETA Код на Github
1.5.3 BETA Код на Github
1.5.2 BETA Код на Github
1.5.1 BETA Код на Github
1.5 BETA Код на Github