Aiuto per programma , Perfavore entrate

#include <SoftwareSerial.h>
#define SerialIn 2
#define SerialOut 7
#define led1 1
#define led2 2
#define led3 3
#define led4 4
#define led5 5
#define led6 6
#define wDelay 900
int inPin = 5;
int val = 0;
SoftwareSerial mySerialPort(SerialIn, SerialOut);
void setup()
{
pinMode(SerialOut, OUTPUT);
pinMode(SerialIn, INPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);

mySerialPort.begin(19200);

mySerialPort.print("vv");
mySerialPort.print("xxxx");
delay(wDelay);
mySerialPort.print("----");
delay(wDelay);
mySerialPort.print("8888");
delay(wDelay);
mySerialPort.print("xxxx");
delay(wDelay);

Serial.begin(9600);
}

void loop()
{
val = analogRead(inPin);
Serial.println(val);
dispData(val);
val = map(val, 1, 100, 1, 2048);
tone(9,val,10);
delay(15);

if (val>100 && val<=200)
{
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
}
if (val>201 && val<=300)
{
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
}
if (val>301 && val<=400)
{
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
}

if (val>401 && val<=500)
{
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
}
if (val>501 && val<=600)
{
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(led5,HIGH);
digitalWrite(led6,LOW);
}
if (val>601 && val<=700)
{
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(led5,HIGH);
digitalWrite(led6,HIGH);
}
}
void dispData(int i)
{
if((i<-999) || (i>9999))
{
mySerialPort.print("ERRx");
return;
}
char fourChars[5];
sprintf(fourChars, "%04d", i);
mySerialPort.print("v");
mySerialPort.print(fourChars);

}

Riuscireste a dirmi le istruzioni che cosa fanno, in poche parole la spiegazione delle istruzioni che devo presentare agli esami...per esempio i fourchars non so cosa vogliano dire ...aiutatemi pls :smiley:

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare.
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

Quello è vettore/array di 5 caratteri (quindi una stringa, occhio non una String ).
La sprintf serve per "stampare" dentro a quel vettore, tipo la printf() del C:
http://www.cplusplus.com/reference/cstdio/snprintf/?kw=snprintf

Sarebbe meglio usare la snprintf() che tra i parametri chiede quanto è grosso quel vettore, in modo da essere sicuri di non scrivere fuori da esso.

#include <SoftwareSerial.h>
#define SerialIn 2
#define SerialOut 7
#define led1 1
#define led2 2
#define led3 3
#define led4 4
#define led5 5
#define led6 6

#define wDelay 900

int inPin = 5;
int val = 0;

SoftwareSerial mySerialPort(SerialIn, SerialOut);

void setup()
{
  pinMode(SerialOut, OUTPUT);
  pinMode(SerialIn, INPUT);
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
  pinMode(led4,OUTPUT);
  pinMode(led5,OUTPUT);
  pinMode(led6,OUTPUT);
  mySerialPort.begin(19200);
  mySerialPort.print("vv");

  mySerialPort.print("xxxx");
  delay(wDelay);
  mySerialPort.print("----");
  delay(wDelay);
  mySerialPort.print("8888");
  delay(wDelay);
  mySerialPort.print("xxxx");
  delay(wDelay);

  Serial.begin(9600);

}


void loop()
{

 val = analogRead(inPin);

 Serial.println(val);
 dispData(val);
 val = map(val, 1, 100, 1, 2048);
 tone(9,val,10);
 delay(15);
 if (val>100 && val<=200)
{
  digitalWrite(led1,HIGH);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  digitalWrite(led5,LOW);
  digitalWrite(led6,LOW);
  }
  
  if (val>201 && val<=300)
{
  digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  digitalWrite(led5,LOW);
  digitalWrite(led6,LOW);
  }
  
    if (val>301 && val<=400)
{
  digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led4,LOW);
  digitalWrite(led5,LOW);
  digitalWrite(led6,LOW);
  }
  
    if (val>401 && val<=500)
{
  digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led4,HIGH);
  digitalWrite(led5,LOW);
  digitalWrite(led6,LOW);
  }
  
      if (val>501 && val<=600)
{
  digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led4,HIGH);
  digitalWrite(led5,HIGH);
  digitalWrite(led6,LOW);
  }
  
     if (val>601 && val<=700)
{
  digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led4,HIGH);
  digitalWrite(led5,HIGH);
  digitalWrite(led6,HIGH);
  
  }
}



void dispData(int i)
{
   if((i<-999) || (i>9999))
 {
   mySerialPort.print("ERRx");
   return;
 }
 char fourChars[5];
 sprintf(fourChars, "%04d", i);

 mySerialPort.print("v");
 mySerialPort.print(fourChars);
  
}

così va bene?

MarcoMolle:
così va bene?

No, dovevi modificare il primo reply aggiungendo li il code TAG.
Ciao Uwe