Buchstabencontainer mit mehr als vier Stellen per UDP übermitteln

Hallo,

ich bin neu hier im Forum und auch noch nicht so tief in der Arduino-Prammsprache drin. Gerne würde ich hier mein Projekt kurz vorstellen und um Ideen und Hilfestellungen bitten.

Mein Projekt:
Ich möchte, dass der Sender (Arduino Mega) über LAN dem Empfänger (Arduino Mega) ein UdP Packet sendet. In dem Packet sollen die Zustände der Inputpins abgespeichert sein (High or Low).
Der Empfänger wertet das Packet aus und setzt seine Outputpins auf High or Low.
Bsp.: Sender INPUT Pin 31 High --> LAN --> Empfänger OUTPUT Pin31 High.
Vier OUTPUTpins beim Empfänger kann ich schon erfolgreich anfahren - jedoch hätte ich gerne 20 - 30 Pins.
Am Schluss gibt das Ganze ein Conrolpanel mit 20 LEDs die mir anzeigen, ob etwas an oder aus ist.

Im Anhang befindet sich der Sketch für den Sender. Versuche ich nun folgende Befehlszeile weiter zu schreiben,

if (Eingang5 == 1){
data[3] = *"A";
}
if (Eingang5 == 0){
data[3] = *"B";
}

also aus "data[3] wird data[4] - so ergibt sich folgendes Problem:

Ich habe hier eine Buchstabencontainer mit fünf Stellen. Wenn die Eingänge nicht betätigt werden erscheint "BBBBB". Betätige ich nun Eingang 2 so steht "BAAAA". Das Prinzip funktioniert einwandfrei bis zur fünften Stelle! Wird Eingang 5 auf High gesetzt so kommt "BBBBA" jedoch wird das fünfte Feld nicht wieder zurück auf B gesetzt wenn der Eingang 5 Low ist. Bei den anderen 4 Feldern geht das. Deshalb denke ich, dass eine Speicherbegrenzung erreicht ist.

Über einen Denkanstoß würde ich mich sehr freuen.

Mike2016

Sender_mit_Eingange.ino (1.42 KB)

Welche Größe hat denn UDP_TX_PACKET_MAX_SIZE?

Gruß Chris

Das weiß ich leider nicht. Aber ich denke auch dass das mein Problem ist.

Trag doch da mal anstatt dessen eine Zahl ein. Nur zum Test. :wink:

Gruß Chris

Funktioniert leider nicht. Was ich gerade bemerkt habe ist, dass sich der Eingang nach einiger Zeit wieder zurücksetzt (10 bis 15 Sekunden) s.h. Serial Monitor.

char data [UDP_TX_PACKET_MAX_SIZE]; war wieder eingestellt.

Grüße

Mike

Was mir gerade noch auffiel ist, dass der Serial Monitor die Daten immer im gleichen zeitlichen Abstand ausgibt und das Delay am Ende des Codes ignoriert.

Grüße