Tabs im Arduino Projekt für Übersichtlichkeit, wie?

Hallo zusammen :slight_smile:

Hab schon öfter überlegt meine Arduino Projekte mit Tabs etwas übersichtlicher zu gestalten.
Hat jemand zufällig eine Anleitung in deutsch?
Mich würd interessieren, wie die Abarbeitung des Programms mit Tabs ausschaut,
welche Variablen ich verwenden kann? Globale Variablen?

Viele Grüße

du mußt einfach nur in dem Verzeichnis, in dem dein Scetch liegt, eine zweite (dritte, vierte…) Datei anlegen mit einem anderen, beliebigen Namen.

so, z.B.:

wenn du dann das Projekt “mein_Projekt_01.ino” öffnest, macht die Arduino IDE die anderen Dateien automatisch als Tabs auf:

Achtung:
die Dateien werden in alphabetischer Reihenfolge geöffnet. Deshalb beginnen meine Tab-Dateien immer mit x.

Das Schöne: Wenn du deinen Sketch unter einem Anderen Namen abspeicherst (z.B. “mein_Projekt_02.ino”) werden die Tab-dateien automatisch in den neuen Ordner “mein_Projekt_02” mit abgespeichert.

Abgearbeitet werden die Tabs vom Compiler so wie wenn alles in einer Datei stehen würde.
globale Variablen und Funktionen sind in allen Tabs bekannt.
Die Tabs werden von links nach rechts abgearbeitet.
die Variablendeklarationen sollten also im ersten Tab stehen.

Zwischenablage07.jpg

Zwischenablage08.jpg

Erstmal danke für die schnelle Antwort!

Habe in meinem "Hauptsketch" eine Variable "int schaltwert = 0;" definiert
Die Variable wurde noch vor void setup() deklariert.
Müsste doch dann normal global verfügbar sein oder was mache ich falsch?
Kann Sie in meinem Tab nicht abrufen, der Compiler meckert wenn ichs übersetzen möchte...

Falls es nützt, beginne meinen Tab wie folgt

switch (schaltwert) 
{
          case 1:

alle Sketche bitte.
Grüße Uwe

EMAChris:
Erstmal danke für die schnelle Antwort!

Habe in meinem "Hauptsketch" eine Variable "int schaltwert = 0;" definiert
Die Variable wurde noch vor void setup() deklariert.
Müsste doch dann normal global verfügbar sein oder was mache ich falsch?
Kann Sie in meinem Tab nicht abrufen, der Compiler meckert wenn ichs übersetzen möchte...

Die sollte global bekannt sein ab der Stelle an der sie deklarierte wurde
steht der Tab, in dem die variable deklariert wurde links von dem, in dem sie verwendet wird?

Ansonsten gebe ich Uwe recht:

uwefed:
alle Sketche bitte.
Grüße Uwe

Mit mehr Informationen spart man sich das Kaffeesatzlesen.

Hat sich glaub ich soweit erledigt, hab in meinen Zusatztabs jeweils den code so eingefügt:

tab x1_buttons:

void buttons()
{
code
}

in meinem Hauptsketch rufe ich dann den tab so auf:

buttons();

normal müsste ich beim Aufruf in meinem Hauptsketch jetz den tab x1_buttons ausführen, dann müsste
das Programm im Hauptsketch fortgeführt werden. Sehe ich das richtig? oder läuft der Tap paralell zum Hauptsketch?

Vielen Dank schonmal für eure Unterstützung!

EMAChris:
oder läuft der Tap paralell zum Hauptsketch?

guntherb:
Abgearbeitet werden die Tabs vom Compiler so wie wenn alles in einer Datei stehen würde.

Da der Arduino nur einen Kern hat, ist nix mit parallel.
Das Verteilen auf Tabs dient nur besseren lesbarkeit für den Menschen.
Ob du den Code auf Tabs verteilst, oder in einer einzigen grossen Datei stehen hast ist egal.
Der Code aller Tabs wird beim Compilieren zusammengefasst zu einer einzigen Datei.

guntherb:
Ansonsten gebe ich Uwe recht:

uwefed:
alle Sketche bitte.
Grüße Uwe

Mit mehr Informationen spart man sich das Kaffeesatzlesen.

Wenn man wenigstens Kaffeesatz vom EMAChris hätte .... :wink: :wink: :wink:
Grüße Uwe

Hallo,
eine Frage von mir auch:

du mußt einfach nur in dem Verzeichnis, in dem dein Scetch liegt, eine zweite (dritte, vierte...) Datei anlegen mit einem anderen, beliebigen Namen

Verstehe ich das richtig das man die "Funktionen" dabei aus dem loop verlagern kann, in eine andere Datei,und
das beim compilieren dann der gesammte Verzeichniss sammt unterordner zu ein hex compiliert wird?
Danke vorab,

Mfg.
Haustechno

keine Unterordner. ansonsten Ja.
Grüße Uwe

Ic

Haustechno:
Verstehe ich das richtig das man die “Funktionen” dabei aus dem loop verlagern kann, in eine andere Datei, und das beim compilieren dann der gesammte Verzeichniss sammt unterordner zu ein hex compiliert wird?

Wie Uwe schon sagte, keine Unterordner.
Und ich auch eine Funktion immer in einem Tab (=datei) lassen und nicht aufspalten. Das geht zwar, macht das Ganze aber sehr Fehleranfällig.

mein_projekt_01.zip (859 Bytes)

ok Danke ,wieder was dazugelernt :grin:

Eine Bitte dann in diesem Zusammenhang,ich habe im Anhang ein blinkbeispiel angehängt.
Ich brauche Hilfe ,bzw. eine Beispiel wie ich den Code (die funktionen)dann verlagern kann.

Ein Beispiel wäre super und würde mich sehr viel weiter bringen :frowning:

Mfg.
Haustechno

Blink.rar (480 Bytes)

Haustechno:
ok Danke ,wieder was dazugelernt :grin:

Eine Bitte dann in diesem Zusammenhang,ich habe im Anhang ein blinkbeispiel angehängt.
Ich brauche Hilfe ,bzw. eine Beispiel wie ich den Code (die funktionen)dann verlagern kann.

Ein Beispiel wäre super und würde mich sehr viel weiter bringen :frowning:

Mfg.
Haustechno

Bitte mach einen neuen Topic auf.
Grüße Uwe

ok sorry!
Mfg.
Haustechno

@ Housetechno

denke es dürfte so funktionieren

Blink.zip (652 Bytes)

@ EMAChris
Besten Dank!