Problème compréhension programme

Salut,

Je suis en terminale STI2D, mon projet est un détecteur d'apnée du sommeil qui mesure plusieurs paramètres comme le débit d'air, stimulation musculaire ,température corporelle .....

Je travaille sur l'EMG, plus précisément sur un capteur EMG v1.1 (module grove) et j'ai trouvé un programme arduino que je ne comprend pas beaucoup voir pas du tout ,je n'attend en aucun cas une traduction ou que vous me donniez les réponses, je voudrais que l'on m'aide, que l'on m'explique comment il marche . Je vous le laisse si dessous .

// Grove - EMG Sensor demo code
// This demo will need a Grove - Led Bar to show the motion
// Grove - EMG Sensor connect to A0
// Grove - LED Bar connect to D8, D9
// note: it'll take about serval seconds to detect static analog value
// when you should hold your muscle static. You will see led bar from level 10 turn to
// level 0, it means static analog value get ok

#include <LED_Bar.h>

LED_Bar bar(9, 8);

int max_analog_dta = 300; // max analog data
int min_analog_dta = 100; // min analog data
int static_analog_dta = 0; // static analog data

// get analog value
int getAnalog(int pin)
{
long sum = 0;

for(int i=0; i<32; i++)
{
sum += analogRead(pin);
}

int dta = sum>>5;

max_analog_dta = dta>max_analog_dta ? dta : max_analog_dta; // if max data
min_analog_dta = min_analog_dta>dta ? dta : min_analog_dta; // if min data

return sum>>5;
}

void setup()
{
Serial.begin(115200);

long sum = 0;

for(int i=0; i<=10; i++)
{
for(int j=0; j<100; j++)
{
sum += getAnalog(A0);
delay(1);
}

bar.setLevel(10-i);
}

sum /= 1100;

static_analog_dta = sum;

Serial.print("static_analog_dta = ");
Serial.println(static_analog_dta);
}

int level = 5;
int level_buf = 5;

void loop()
{

int val = getAnalog(A0); // get Analog value

int level2;

if(val>static_analog_dta) // larger than static_analog_dta
{
level2 = 5 + map(val, static_analog_dta, max_analog_dta, 0, 5);
}
else
{
level2 = 5 - map(val, min_analog_dta, static_analog_dta, 0, 5);
}

// to smooth the change of led bar
if(level2 > level)
{
level++;
}
else if(level2 < level)
{
level--;
}

if(level != level_buf)
{
level_buf = level;
bar.setLevel(level);
}

delay(10);
}

Voilà ,si quelqu'un peut m'aider ,je suis preneur de toute informations . Merci d'avance

ps : tout ce qui concerne Ledbar ne me concerne pas car je n'est pas ce petit indicateur .