de-vraag
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 JuanV
JuanV
Вопрос

Как написать модульный код для arduino?

Я хотел бы создать программу с разделенными модулями, возможно ли это с помощью Arduino IDE?

2 2016-03-09T17:21:38+00:00 5
Arduino
arduino-ide
passing through
9-го марта 2016 в 5:54
2016-03-09T17:54:48+00:00
Дополнительно
Источник
Редактировать
#56788708

Эскизы Arduino могут включать библиотеки (см. https://www.arduino.cc/ru/Guide/Libraries ).

Чтобы работать с IDE Arduino, такая библиотека должна придерживаться определенной структуры папок и соглашения об именах (как описано в приведенном выше руководстве).

Помимо этого, он похож на модульный код на любом другом языке. Канонический язык в библиотеках Arduino - это C ++.

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

Я рекомендую вам просмотреть примерные эскизы (из опции меню «Примеры»). Всякий раз, когда вы видите инструкцию #include в верхней части эскиза, у вас есть подсказка, куда следует смотреть дальше, чтобы лучше понять внутренние работы.

2
0
patmortech
10-го марта 2016 в 4:19
2016-03-10T04:19:43+00:00
Дополнительно
Источник
Редактировать
#56788709

Хотя вы можете создавать свои собственные библиотеки для Arduino, простой способ сделать многоразовый код - создать файл заголовка (.h), содержащий код, который вы хотите сделать повторно используемым.

В частности, в Arduino IDE создать новую вкладку с некоторым именем foo .h , а на главной вкладке добавьте #include "foo.h" в верхней части кода. Что это значит, по сути, скопируйте код из foo.h в свой код во время процесс сборки . В то время как простой в исполнении, он действительно помогает организовать более сложный код, и в вашем случае помогает с повторным использованием кода.

Вы можете альтернативно использовать «Нормальные файлы кода Arduino (без видимых расширений), файлы C (расширение .c), файлы C ++ (.cpp) или файлы заголовков (.h)».

И еще одно примечание, которое вам поможет - файлы заголовков не имеют доступа к некоторым типичным командам и функциям Arduino, таким как delay () или Serial , если вы не добавите < code> #include "Arduino.h" . Однако для версий IDE менее 1.0 используйте #include "WProgram.h" . Это даст вам доступ к этим функциям.

2
0
WestDiscGolf
23-го ноября 2017 в 10:34
2017-11-23T10:34:46+00:00
Дополнительно
Источник
Редактировать
#56788710

Код эскиза можно легко разбить на несколько файлов, создав новую вкладку (файл) без расширения имени файла или .ino ( источник ). Нет необходимости в #include , так как IDE Arduino объединяет эти файлы для процесса сборки.

Для правильной модуляции сделайте библиотеку или см. Ссылку выше для получения дополнительной информации об использовании .h/.c/.cpp в качестве модулей.

0
0
dannyf
23-го ноября 2017 в 11:53
2017-11-23T23:53:54+00:00
Дополнительно
Источник
Редактировать
#56788711

Я хотел бы создать программу с разделенными модулями, возможно ли это с помощью Arduino IDE?

ответ зависит от вашего кода.

Написание модульного кода - это, в основном, мыслительный процесс:

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

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

после этого разбиение кода на файлы .c/.h - это кусок пирога.

0
0
Peter
24-го ноября 2017 в 12:24
2017-11-24T00:24:33+00:00
Дополнительно
Источник
Редактировать
#56788712

Ну ... Ответы интересуются, но зависят от того, о чем думает JuanV, когда он говорит «отделенные модули» ... Для меня, как «старого программного обеспечения таймера», «разделенные модули» означают, что я строю центральный блок кода (в двух словах) и модуль загрузки пользователя, который автоматически «подключается» к краткости, расширяя эту функцию. Немного напоминает драйвер принтера, который вы добавляете в свою систему, и который добавляет функцию для всего программного обеспечения. Когда я смотрю на мое прошлое, используя это, я должен признать, что у меня есть некоторые проблемы, думающие об этом на Arduino. Если вы ищете это, вы должны думать о различных проблемах:

1) как обновить? Возможно, приложение Android получит код из Интернета и отправит эти данные в Arduino через Bluetooth. Вы также можете подумать о добавлении интерфейса Wi-Fi на Arduino

2) где хранить новый кусок кода ... Кажется, вы можете писать на flash «на лету», но кажется сложным

Из-за этого второго момента, может быть, самым простым способом было бы создать ореховую скорлупу, которая будет «интерпретировать» данные (так, чтобы читать какой-то небольшой скрипт), а затем вам просто нужно отправить данные. Я предлагаю взглянуть на CNC, сделанную с Arduino. В большинстве случаев они используют интерпретатор GCode. GCode - это описательный язык для машины с ЧПУ. Таким образом, интерпретатор читает код и в соответствии с кодом отправляет «заказы» на машину. Возможно, такая вещь была бы хорошей отправной точкой.

С другой стороны, если то, что вы называете «модульным подходом», это просто способ создания библиотеки и повторного использования их, ответ лорда Гонка - это путь :)

0
0
Похожие сообщества 3
ARDUINO [RU]
ARDUINO [RU]
675 пользователей
Обсуждение Электронного конструктора Arduino. Проблемы и их решения. Ссылки на интересные статьи и проекты. 🛠 IOT RU: @ProIOT 📶 Esp32 EN: @Proesp_en 📶 Esp32 RU: @Proesp8266 ⚙️ Arduino EN: @ProArduino_en 💻 ВК: https://vk.com/arduino_esp
Открыть telegram
ARDUINO_GODs
ARDUINO_GODs
365 пользователей
@digitalWrite
Открыть telegram
IOT [ARDUINO, ESP, DIY] [RU]
IOT [ARDUINO, ESP, DIY] [RU]
181 пользователей
Интернет Вещей (анг. Internet of Things, IOT) концепция вычислительной сети физических предметов ("вещей") ⚙️ Arduino RU: @ProArduino ⚙️ Arduino EN: @ProArduino_en 📶 esp32 RU: @Proesp8266 📶 esp32 EN: @Proesp_en 💻 ВК: https://vk.com/arduino_esp
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Roxana Elizabeth CASTILLO Avalos
Зарегистрирован 1 день назад
2
Hideo Nakagawa
Зарегистрирован 2 дня назад
3
Sergiy Tytarenko
Зарегистрирован 3 дня назад
4
shoxrux azadov
Зарегистрирован 6 дней назад
5
Koreets Koreytsev
Зарегистрирован 1 неделю назад
JA
© de-vraag 2022
Источник
arduino.stackexchange.com
под лицензией cc by-sa 3.0 с атрибуцией