ich habe in einem Programm eine Stringvariable in der, der Name einer Integervariable steht.
Jetzt möchte ich diese Integervariable mit dem Wert einer anderen Integervariable beschreiben.
Trotz aller Suche komme ich hier zu keinem Ergebnis und hoffe auf Eure Hilfe.
Ich hoffe, ich habe mich klar genug ausgedrückt? :o
Vielen Dank im Voraus
String Variablenname = "INT_Variable"; //String mit dem Namen der zu beschreibenden Variable
uint16_t INT_Variable = 0; // zu beschreibende Variable
uint16_t wert = 123; // Wert der in Variable geschrieben werden soll
void setup() {
Serial.begin(19200);
}
void loop() {
Serial.print(Variablenname); Serial.print(" = "); Serial.println(INT_Variable);
delay(2000);
INT_Variable = wert; // Wie kann ich hier den Inhalt der Stringvariablen als Variablenname eingeben?
}
Oder Anders:
Die Variablen haben im Arduino keinen Namen mehr - Das sind nur noch Speicherplätze, wo der Arduino irgend welche Zahlen abholt oder hin schreibt.
Diese Zahlen können sogar Buchstaben bedeuten und im Terminal genau so ausgegeben werden - aber die Namen der Variablen gibt es nur in Deinem Sketch - im Kompilat ist davon Nichts mehr zu finden.
Selber mache ich was Ähnliches:
Ich benutze ein Array mit int16_t Variablen - Meine habe ich 'Merker' getauft - weil sich der Arduino Da was merken soll ... und ich will Davon einen Teil von Außen ändern können.
Somit sende ich per Terminal den Befehl 'Setze Merker 12 auf Wert 813' - uns schwups, passiert genau Das.
Setze Merker
F6 aa LO HI bb -- -- --
bb Merker-Nummer
HI HIGH-Byte der Knoten-ID, Ziel-ID ID muß mit Eigener übereinstimmen
LO LOW-Byte der Knoten ID, Ziel-ID
aa 0/1 HIGH/LOW Soll-Zustand des Merker
F6 Setze Merker
Das sind 8 Byte Platz - das Maximum einer CAN-Nachricht.
Wenn ich nun in den CAN-Bus eine solche Nachricht schicke, ändert der angesprochene Knoten den genannten Merker.
Ok, in dieser Implementierung kann ich nur BYTE-Werte speichern - für den gedachten Zweck (AUS 0, Hand EIN 1, AUTO 2) reicht Das aber gerade so.
@mb817: Beim compilieren gehen Variablennamen verloren. Ich denke da musst du selber was schreiben. Vielleicht kann man ArduinoJson und dessen JsonObject mißbrauchen.
Vielleicht erzählst du uns ja auch, was du machen willst. Möglicherweise fällt uns dann was besseres ein.