AFAIK, que é uma peculiaridade incorporada ao IDE do Arduino. A melhor solução que posso pensar é em uma estrutura de arquivos, algo como:
ArduinoWorkspace --- /myproj/ ----+ /src/ --------+ myproj.cpp
+ myproj.ino + sensor.h
+ sensor.cpp
+ (more files)
, onde myproj.cpp é apenas #include
main.cpp. Isso deve deixar os arquivos do projeto "limpos", para que também funcionem em um ambiente mais típico.
Atualizar:
Peguei emprestado o nome "main" da sua pergunta, mas, refletindo, "main" é um nome reservado, especificamente, todo programa em C ou C ++ tem um main.c ou main.cpp como código de nível superior, fornecido pelo sistema se você não fornece um. Portanto, evitei usá-lo como nome da pasta e do projeto (mas fique à vontade para experimentá-lo) e atualizei o diagrama. O que você precisa é de uma pasta do projeto e um arquivo .ino, com o mesmo nome. O arquivo .ino pode
#include <src/anything-else-you-like>
, por exemplo, seu arquivo de código de nível superior, puxando todo o resto. Você pode precisar do seu .ino para #include
cada um dos arquivos da src
pasta, se o compilador não descobrir por si só, é aí que estão os outros arquivos.
BTW, se você usar o nome main.cpp para o seu arquivo principal, ele precisará chamar as funções setup () e loop () (e a função de evento serial, se você usá-lo). Provavelmente é melhor deixar o nome 'main' sozinho, deixar o sistema fornecer o mesmo main todos os programas do Arduino, por padrão, e escrever o código do seu projeto da maneira típica do Arduino - começando com setup () e loop ().
myproj.cpp
você quer dizermyproj.ino
? Porque eu não vejo ondemyproj.cpp
está!