Communication between C# UserForm and Arduino Uno via Serial (USB)

Hi!
I have a problem in understanding the Serial()-Class of C#. I'm trying to send several bytes (1-byte arrays) one after another to the arduino and save them in its own EEPROM.
This works just fine for the first ByteArray, but I don't know how to properly send the following ByteArrays.
C#:

namespace Alarmanlage_test1
{
    
    public partial class Form1 : Form
    {
        

        bool[] einstellungen = new bool[8];
        bool[] einstellungen1 = new bool[8];
        string empfangen;
        byte[] senden = new byte[1];
        byte[] senden1 = new byte[1];
        //int data;
        //int empfangen1;
        
        public Form1()
        {
            InitializeComponent();
        }

        // VERBINDEN
        private void button1_Click(object sender, EventArgs e)
        {
            serialPort1.PortName = "COM" + numericUpDown1.Value.ToString();
            serialPort1.BaudRate = 9600;
            //serialPort1.DtrEnable = true;
            serialPort1.Open();
            button1.Enabled = false;
        }

        // SENDEN
        private void button2_Click(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true) einstellungen[0] = true;
            else einstellungen[0] = false;

            if (checkBox2.Checked == true) einstellungen[1] = true;
            else einstellungen[1] = false;

            if (checkBox3.Checked == true) einstellungen[2] = true;
            else einstellungen[2] = false;

            if (checkBox4.Checked == true) einstellungen[3] = true;
            else einstellungen[3] = false;

            if (checkBox5.Checked == true) einstellungen[4] = true;
            else einstellungen[4] = false;

            if (checkBox6.Checked == true) einstellungen[5] = true;
            else einstellungen[5] = false;

            if (checkBox7.Checked == true) einstellungen[6] = true;
            else einstellungen[6] = false;

            if (checkBox8.Checked == true) einstellungen[7] = true;
            else einstellungen[7] = false;

            new BitArray(einstellungen).CopyTo(senden, 0);
            serialPort1.Write(senden, 0, 1);

            //empfangen = serialPort1.ReadLine();

            if (checkBox1.Checked == true) einstellungen1[0] = true;
            else einstellungen1[0] = false;

            if (checkBox2.Checked == true) einstellungen1[1] = true;
            else einstellungen1[1] = false;

            if (checkBox3.Checked == true) einstellungen1[2] = true;
            else einstellungen1[2] = false;

            if (checkBox4.Checked == true) einstellungen1[3] = true;
            else einstellungen1[3] = false;

            if (checkBox5.Checked == true) einstellungen1[4] = true;
            else einstellungen1[4] = false;

            if (checkBox6.Checked == true) einstellungen1[5] = true;
            else einstellungen1[5] = false;

            if (checkBox7.Checked == true) einstellungen1[6] = true;
            else einstellungen1[6] = false;

            if (checkBox8.Checked == true) einstellungen1[7] = true;
            else einstellungen1[7] = false;

                new BitArray(einstellungen1).CopyTo(senden1, 0);
                serialPort1.Write(senden1, 0, 1);

        }

Arduino:

#include <EEPROM.h>
int inhalt=0;
//byte inhalt[8];
int led = 13;
int eprom, eprom1;
int ok = 0;

void setup()
{
  Serial.begin(9600); //öffnet die serielle Datenübertragung mit 9600 bit/s
  //EEPROM.write(0, 255);
  pinMode(led, OUTPUT);
}

void loop()
{
  if (Serial.available() > 0)
  {
    inhalt = Serial.read(); //liest die Daten
    EEPROM.write(0, inhalt);
    
    if(inhalt==EEPROM.read(0))
    Serial.println("ok");
    inhalt = 0;
    Serial.flush();
    inhalt = Serial.read(); //liest die Daten
    EEPROM.write(1, inhalt);
    
    //if(inhalt==EEPROM.read(1))
    //Serial.write("ok\0");
    
    delay(5);
  }
  
  eprom = EEPROM.read(0);
  //Serial.flush(); //seriellen Puffer löschen
   Serial.println("EPROM 0");
Serial.print("inhalt DEC: ");
  Serial.println(eprom, DEC);
Serial.print("inhalt BIN: ");
  Serial.println(eprom, BIN);
Serial.print("inhalt HEX: ");
  Serial.println(eprom, HEX);

eprom1 = EEPROM.read(1);
   Serial.println("EPROM 1");
Serial.print("inhalt DEC: ");
  Serial.println(eprom1, DEC);
Serial.print("inhalt BIN: ");
  Serial.println(eprom1, BIN);
Serial.print("inhalt HEX: ");
  Serial.println(eprom1, HEX);

 delay(2000);
      
  }

Sometimes both eeprom (0) and eeprom (1) get the value of the first packet...

I suppose that I should use a protocol (UART).
Thanks in advance! And sorry for the German content in the code :slight_smile: