Разделить код Arduino на несколько файлов с помощью Arduino IDE

Я работаю над очень длинным кодом, который требует определения нескольких функций. Я хочу разделить код на два файла: основной код ("Feeder_Control" на скриншоте) и функции ("соединения" на скриншоте) Как импортировать второй файл в основной код, чтобы использовать его функции?

PS: В C/C++ то же самое делается с #include "connections.h". Как это делается в Arduino IDE.

look here.

, 👍16

Обсуждение

Хотя общепринятый ответ работает, я чувствую, что Arduino "IDE" отлично подходит для начинающих, но он не очень масштабируется дальше пары файлов. Я настоятельно рекомендую проверить [platformio](https://platformio.org) так как он обеспечивает гораздо лучшее управление проектами за счет интеграции с [atom](https://atom...io) и [vscode](https://code.visualstudio.com), позволяет работать с различными фреймворками, включая Arduino for AVR, STM32, ESP8266, ESP32 и т.д., а также поддерживает отладку, если у вас есть необходимое оборудование., @Shreyas Murali

[Не пересекайте столб.](https://meta.stackexchange.com/q/64068) Вы уже [спрашивали об этом ТАК](https://stackoverflow.com/q/54194083)., @gre_gor


2 ответа


Лучший ответ:

23

Нет необходимости использовать директиву #include для дополнительного файла .ino.

Перед началом компиляции Arduino IDE объединяет все файлы .ino в вашем скетче в один файл, начиная с файла .ino, который соответствует имени папки sketch, а затем остальные файлы .ino в алфавитном порядке. Таким образом, нет никакой разницы между одним массивным файлом .ino и взломом одного и того же кода среди нескольких файлов .ino, кроме большей простоты навигации по коду с помощью вкладок. После небольшой дополнительной обработки этот файл компилируется как C++.

Ссылка: https://arduino.github.io/arduino-cli/latest/sketch-build-process/#pre-processing

,

0

Два комментария для ответа от per1234 (хотя и старые): В проекте может быть несколько файлов .ino. Однако:

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