Mahlzeit zusammen,
ich finde einfach keine Antwort. Entweder ich suche falsch oder stelle mir etwas Falsches darunter vor.
Zum Problem:
Ich möchte die Austauschbarkeit möglichst groß halten. Also quasi alles vereinheitlichen.
Hierzu wäre es nötig auf einem Arduino mehrere "Programme" einzeln abrufbar zu machen.
Z. B. über Dipschalter (Binär um mehr Auswahl zu haben mit weniger Hardware).
Ein übergeben von Variablen, Definitionen etc. muss bzw. darf nicht passieren.
Ich hatte mir etwas in dieser Art vorgestellt (auch wenn es so nicht geht):
int Pin1 = LOW;
int Pin2 = LOW;
...
void Setup(){
pinMode(1, INPUT);
pinMode(2, INPUT);
...
delay (5);
Pin1 = digitalRead(1);
Pin2 = digitalRead(2);
...
if ((Pin1 == HIGH) && (Pin2 == LOW)) {
Programm_1();}
if ((Pin1 == LOW) && (Pin2 == HIGH)) {
Programm_2();}
....
Programm_1(){
#include ...
int ...
void Setup(){ Setup für das Programm1}
void Loop(){Loop für das Programm1}
}
Programm_2(){
#include ...
int ...
void Setup(){ Setup für das Programm2}
void Loop(){Loop für das Programm2}
}
Ein Umschalten während der Arduino mit Spannung versorgt ist muss nicht / sollte nicht gegeben sein.
Nun habe ich mir mit der Aufgabe mehrere Probleme eingeholt.
Wie kann man das obere Realisieren? Bzw. ist das überhaupt möglich?
Kann man das ganze dann auch auf mehrere Tabs verteilen? Sonst würde das zu unübersichtlich.
Wie würde sich das auf die Geschwindigkeit des Arduinos auswirken?
Gerne auch mit einem kleinen erklärenden Beispiel (wenn es möglich sein sollte) damit ich das auch nachvollziehen und vor allem verstehen kann.
Ich hoffe, man konnte mich zumindest ein wenig verstehen.
Hängt davon ab, wie häufig du die "Programme" umschalten willst.
Aus Arduino - Sicht ist jedenfalls alles in einem gemeinsamen Sketch enthalten ( auch wenn du es für deine eigene Übersicht evtl. in verschiedene Tabs trennst.
Ob dein DIP-Schalter nur in setup() gelesen wird und danach bis zum nächsten Reset die gleiche Funktion läuft, oder ob in jedem loop-Durchlauf neu entschieden wird, hängt an dir bzw. deinem Wunsch.
Was auch gern gemacht wird:
Wenn eine Taste schon während des setup schon gedrückt ist (Bedienhinweis: Taste drücken und gedrückt halten während des Einschaltens) läuft ein Sonder-Programm, sonst der Standard.
Gern kann man für Kalibrieren, Test, Reinigung, etc. brauchen. Die vorhandenen Taster können dann während der Sonder-Funktion eine andere Bedeutung haben und man spart sich das versteckte Mäuseklavier.