Uso di Processing per la lettura di dati da p.seriale e creazione di un grafico.

Buona sera, sono un nuovo iscritto e mi sono appassionato da poco ad Arduino.
Sto sperimentando da poco l'uso di Processing e sto realizzando un sketch che in teoria dovrebbe creare un grafico che rappresenti i valori ricevuti da un microfono, collegato ad Arduino, attraverso un grafico.
Tuttavia non sembra funzionare perché producendo rumori di intensità diversa il grafico rappresenta una parte di valori che risultano costanti e un'altra parte che invece varia, è corretto che sia così? se si, cosa rappresentano i valori costanti?

Questo è il codice:

import processing.serial.*;

Serial port;
int valore;

int n=0,i=0, a=5;

void setup(){
size(1000, 500);
println(Serial.list());
//String arduinoPort = Serial.list()[1];
port= new Serial(this, "COM19"/*arduinoPort*/, 9600);
smooth();

background(204);

}

void draw(){
  fill(a);


valore=port.read();

if (valore !=(-1) && n != 1000){
  rect (n, 200, 5, valore);
  line(0,200, width , 200);

n +=5;
fill(a);
a++;
}
if (a==200){
  a=0;
}

else if(n==1000) {
  background(204);
  n=0;
  
}
println(valore);

}

Confido nel vostro aiuto.

Grazie!

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

Grazie delle indicazioni.

ciao
in processing manca un particolare, ma prima di dire cose sbagliate serve che posti anche lo sketch di arduino

Questo qui.

    const int analogPin = A0;  // pin analogico microfono.
    int sensorValue = 0;        
    void setup() {
      // comunicazione seriale a 9600 bps:
      Serial.begin(9600);
    }
    void loop() {
      // lettura valore.
      sensorValue = analogRead(analogPin);            
             
    if (sensorValue > 5) {
      
      
      
      
      Serial.print("sensor = " );   

        //stampa valore      
        
      Serial.println(sensorValue);
 
     }

        delay(5);                    
    }

Questo è il grafico che ottengo.

stai inviando in ascii
la ricezione per processing è diversa in questo caso.

guarda lo sketch processing che sta negli esempi di arduino

file-->esempi-->communication-->graph
oltre lo sketch di arduino c'è lo sketch processing