Frage zum DAC einstellen bezügl Sensorabfrage TeilII

.

Buttman01:
sorry ein paar Schreibfehler
Hallo Leute!!!
bezüglich einer Einstellung zum DAC (mcp4921) habe ich folgendes Problem und hoffe auf eure Hilfe.

Der Ausgang eines Transimpedanzwandlers gelangt an einen einen Eingang eines Differenzverstärkers. Der zweite Eingang ist eine variable Spannung--> durch den DAC um mein Signal ( siehe Bild) annähernd auf eine minimale Ebene gleich zuhalten, weil mein erzeugtes Signal physiologisch schwankt.

Dazu muss ich aus mein Signal kontinuierlich einlesen und meine Minimums & Maximums zu ermitteln.
Bezüglich meines Minimums soll der DAC je nach schwankungen runter bzw hochregeln um das Minimum gleich ( z.B. 0-10mV) zu halten.
Wenn mein DAC dat erste Mal eingestellt ist, soll er den Wert halten, bei schwankungen soll er vom vorigen wert erhöhen/minimieren und nicht wieder von null anfangen.

Leider wird inkrementiert bis zum maimalen DAC Wert (4096) und nicht auf mein gewünschtes Minimum, runterdrehn geht erst gar nicht
Jemand ne Ahnung? Danke schon mal vorab.

Hier mein Code:

#include <AH_MCP4921.h>
#include <SPI.h>

int sensorValue = 0; // U
const int sensorPin = A0;
int sensorMin = 1023; // minimum sensor U
int sensorMax = 0; // maximum sensor U
int sensorM = 0; // minimum sensor U
int sensorMx = 0; // maximum sensor U

int i = 0; // zum DAC einstellen
AH_MCP4921 AnalogOutput1(51,52,53);// für SPI
void setup()
{
Serial.begin(9600);
AnalogOutput1.setValue(0); //DAC ist erstmal null
while ( sensorValue>=0) { // Spannung lesen
sensorValue = analogRead(sensorPin);
if (sensorValue < sensorMin) {
sensorM = sensorValue; //sensor min ermittelt
}
if (sensorValue > sensorMax){ // sensor maximum ermitteln
sensorMx = sensorValue;
if(sensorValue>0) {
Serial.print("low = ");
Serial.println(sensorM); }

if(sensorMx>0) {
Serial.print("high= ");
Serial.println(sensorMx); }
}
if (sensorM<10)
{i++; // DAC erhöhren
AnalogOutput1.setValue(i);
}// DAC schreiben und halten
if (sensorM<10){
i--; //DAC vom vorigen wert runterdrehen
AnalogOutput1.setValue(i); //DAC schreiben
}

}
}

void loop()
{}