Here is my code @AnalysIR. see if there any bug in my code
#define rep(a,b,c) for(int a = b;a<c;a++)
int sensors[5] = {0, 1, 2, 3, 4} ; // sensor arrays which are connected to 5 available analog pins
int sensor_reading = 0 ;
int sen[5] = {0};
double sensors_average = 0.00 ;
double active_sensor = 0.00 ;
double total_sensor = 0.00 ;
double sensors_sum = 0.00;
void sensors_read()
{
total_sensor = 0;
active_sensor = 0 ;
sensors_average = 1 ;
sensors_sum = 1 ;
rep(i,0,5)
{
sensor_reading = analogRead(sensors[i]) ;
Serial.print(sensor_reading);
Serial.print(" ");
delay(500);
if(sensor_reading>35)
{
active_sensor += 1 ;
sen[i] = 1 ;
}
else
{
sen[i] = 0 ;
}
//Serial.print(sen[i]);
//Serial.print(" ");
//delay(1000);
//total_sensor = total_sensor + sensor_reading[i] * (i+1) ;// calculate the weighted mean of sensor's reading, 1000 means nothing
total_sensor += ((i+1) * sen[i]); // calculate the weighted mean of sensor's reading,
/* to debug */
/*
Serial.print(sensors_average);
Serial.print(' ');
Serial.print(sensors_sum);
Serial.print(' ');
Serial.print(position1);
Serial.println();
delay(2000) ;
*/
}
if(total_sensor == 0 && active_sensor == 0)
{
total_sensor = 1;
active_sensor = 100000000;
}
sensors_average = total_sensor ;
sensors_sum = active_sensor ;
Serial.println();
//position1 = sensors_average / sensors_sum;
/*
Serial.println();
Serial.print(sensors_average);
Serial.print(" ");
Serial.print(sensors_sum);
Serial.print(" ");
Serial.print(position1);
Serial.print(" ");
delay(1000);
*/
}