Valore Fotoresistenza

Ciao a tutti,
ho una fotoresistenza che mi da dei valori sul monitor seriale per esempio per 10 secondi e vorrei al termine del tempo che mi venga stampato il valore più alto che ha trovato, pensavo di farlo comparando ogni volta il valore ottenuto con quello precedente, ma non so come...spero possiate aiutarmi.
Grazie.

Ciao,

cosa intendi "mi da dei valori sul monitor seriale per 10 secondi"....a raffica?...ogni tot inetrvallo?...salvi il valore letto in qualche array o semplicemente leggi e scrivi?

Metto il codice che sto facendo così si capisce di più:

int Red = 9;      
int Green = 10; 
int Blue = 11;    
int Delay = 1;       
int Pulsante = 7;               
int val = 0;
int Foto = A0; 
int VLed = 0;

void setup() {
  Serial.begin(9600);
  pinMode(Green, OUTPUT);
  pinMode(Blue, OUTPUT);
  pinMode(Red, OUTPUT);
  pinMode(Pulsante, INPUT);
  pinMode(Foto, INPUT);
}

void loop() {
  val = digitalRead(Pulsante);
  Foto=analogRead(A0);
  if (val == HIGH){
  for(int i=0; i*10<255; i++) {
    analogWrite(Red, i*10);
    analogWrite(Green, 255-i*10);
    analogWrite(Blue, 0);
    delay(Delay);
    VLed=analogRead(A0);
    delay(Delay);
  
    
    Serial.print("G  ");
    Serial.println(255-i*10);
    Serial.print("R  ");
    Serial.println(i*10);
    Serial.print("FOTO  ");
    Serial.println(VLed);
  }

 
  for(int i=0; i*10<255; i++) {
    analogWrite(Red, 255-i*10);
    analogWrite(Green, 0);
    analogWrite(Blue, i*10);
    delay(Delay);
    VLed=analogRead(A0);
    delay(Delay);
    Serial.print("R  ");
    Serial.println(255-i*10);
    Serial.print("B  ");
    Serial.println(i*10);
    Serial.print("FOTO  ");
    Serial.println(VLed);
  }

 
  for(int i=0; i*10<255; i++) {
    analogWrite(Red, 0);
    analogWrite(Green, i*10);
    analogWrite(Blue, 255-i*10);
    delay(Delay);
    VLed=analogRead(A0);
    delay(Delay);
        Serial.print("B  ");
    Serial.println(255-i*10);
    Serial.print("G  ");
    Serial.println(i*10);
    Serial.print("FOTO  ");
    Serial.println(VLed);

    
  }
 
    analogWrite(Red, 0);
    analogWrite(Green, 0);
    analogWrite(Blue, 0);
    delay(Delay);


    }
}

in pratica un led RGB al premere di un pulsante si accende e cambia automaticamente colore fino a che si spegne dopo aver finito il ciclo, la fotoresistenza prende il valore ogni volta che il led cambia colore per tutta la durata del ciclo e vorrei che alla fine mi stampi il valore ottenuto.

ciao,

permettimi di dire, come suggerimento, che scrivere una cosa del genere non ha senso:

int Foto = A0;

void setup(){
pinMode(Foto, INPUT);
}
void loop(){

Foto = analogRead(A0);
}

cioè hai dichiarato una varibile int come A0 , l'hai usata per impostare A0 come input..che è superfluo...non serve... e poi la usi per leggere A0.

poi hai creato un'altra variabile, int VLed, che anch'essa legge da A0...un doppione che non ha senso.

poi questo:

for (int i = 0; i * 10 < 255; i++)

la condizione è un po' ingarbugliata ... cioè scrivere la condizione come i<26 sarebbe stato lo stesso.

detto questo potresti usare la funzione max(a,b) che ritorna il maggiore di due "numeri" che ci metti.
In questo modo se crei una variabile int maxVal e la usi così:

maxVal = (maxVal, analogRead(A0));

se il analogRead è maggiore, del valore che maxVal ha, maxVal assume il nuovo valore...altrimenti mantiene quello che già ha.

Io il for lo scriverei così:

for (int i = 0; i < 255; i += 10)

Evitando di moltiplicare poi per 10 ogni volta.