Mehrere FSR-Sensoren mit Arduino Mega

Guten Morgen,
Ja stimmt :joy: wie konnte das passieren?
Jetzt passt.

/*
   Bedingung ist, das der Sensor zwischen AnalogPin und GND geschalten ist
   zwischen AnalogPin und +5V liegt ein Pullup
   Berechnung der Widerstandswerte auf Basis der Kalkulation aus:
   https://forum.arduino.cc/t/mehrere-fsr-sensoren-mit-arduino-mega/908917/86?u=my_xy_projekt
*/

const byte fsrPins[] = {A0, A1, A2, A3, A4, A5, A6, A7, A8, A9}; // the FSR and 10K pulldown are connected to a0 <- Dieser Kommentar war original drin und ist FALSCH!
const byte sensorZahl = sizeof(fsrPins) / sizeof(fsrPins[0]);
unsigned int fsrReading[sensorZahl];     // the analog reading from the FSR resistor divider

// Messwerte
// Das geht noch anders mit einem 2D-Array, aber erstmal anfangen....
const unsigned int adcWert[] = {1013, 1010, 1008, 1008, 1006, 1004, 1002, 1000, 995,  985,  977,  963,  951,  903,  861,  822,  778,  752,  721,  662,  621,  600,  584,  566,  535,  504,  479,  455,  442,  418,  396,  379,  372,  367,  365,  360,  357,  351,  346,  342,  339,  337,  333,  330,  327,  323,  320,  306,  294,  283,  277,  263,  234,  221,  209,  201,  194
};

const byte stuetzWerte = sizeof(adcWert) / sizeof(adcWert[0]);
const unsigned long nWert[stuetzWerte] = {310,  360,  410,  460,  520,  570,  620,  670,  720,  770,  820,  930,  1030, 1130, 1240, 1440, 1650, 1860, 2060, 2270, 2470, 2680, 2890, 3090, 3300, 3510, 3710, 3920, 4120, 4330, 4540, 4740, 4950, 5160, 5360, 5570, 5770, 5980, 6190, 6390, 6600, 6810, 7010, 7220, 7420, 7630, 7840, 9280, 11340,  13400,  15470,  20620,  41240,  61870,  82490,  103110, 123730


                                         }; // Der Wert ist *1000 wegen ohne Nachkommastelle!!
unsigned int druck = 0;
void setup()
{
  Serial.begin(115200);
  Serial.println(F("Start..."));
}
void loop(void)
{
  readSensors ();
  rechneSensors();
  delay(300
 );
}
void readSensors()
{
  for (byte i = 0; i < sensorZahl; i++)
  {
    fsrReading[i] = analogRead(fsrPins[i]);
  }
}
void rechneSensors()
{
  static unsigned long lastdruck[sensorZahl] = {0};
  for (byte b = 0; b < sensorZahl; b++)
  {
    if (fsrReading[b] > adcWert[0])
    {
      Serial.println(F("0"));
    }
    else
    {
      druck = newton(fsrReading[b]);
      if (druck != lastdruck[b])
      {
        Serial.print((float)druck / 1000, 3); Serial.println(F(" N"));
        lastdruck[b] = druck;
      }
    }
  }
}

unsigned int newton(const unsigned int analogWert)
{
  unsigned int j = 0;
  for (unsigned int i = 0; i < stuetzWerte; i++) // Abfrage des gesamten arrayinhalt
  {
    if (analogWert == adcWert[i])                // Messwert passt auf analogwert
    {
      return  nWert[i];                          // gebe passenden Druckwert zurueck
    }
    else if (analogWert > adcWert[i])            // Messwert liegt zwischen dem letzten (adcWert[i])
      //                                         // und dem vorletzten (adcWert[i-1])
    {
      j = map(analogWert, adcWert[i - 1], adcWert[i], nWert[i - 1], nWert[i]);
      return j;
    }
  }
  return j;
}