moteur pas a pas et capteurs infrarouges

Bonjour, j’ai un problème avec ce programme. Je vous explique le principe : c’est un ventilateur qui s’oriente en fonction de l’utilisateur.

En gros il est simple car je ne suis qu’en terminal et je suis pas très calé en programmation. Je commence par un delay de 10s pour calibrer les capteurs puis je rentre dans des boucles individuelles par 3 capteurs pour essayer de mieux le viser sur la personne. Problème il va toujours au même endroit et je commence à désespérer.

#include <Stepper.h>

int calibration_time = 10;
int tps = 6;
int finish =0;

int pas = 0;

Stepper moteur (200,2,3,4,5);

int cap1=8;
int etat1=LOW;
int val1=0;
int cap2=9;
int etat2=LOW;
int val2=0;
int cap3=10;
int etat3=LOW;
int val3=0;
int cap4=11;
int etat4=LOW;
int val4=0;
int cap5=12;
int etat5=LOW;
int val5=0;
int cap6=13;
int etat6=LOW;
int val6=0;

void setup() {

pinMode(cap1, INPUT);
pinMode(cap2, INPUT);
pinMode(cap3, INPUT);
pinMode(cap4, INPUT);
pinMode(cap5, INPUT);
pinMode(cap6, INPUT);

moteur.setSpeed (30);

Serial.begin(9600);

for(int i=0; i < calibration_time; i++)
{
delay(1000);
}

}
void loop() {

for (int t=0; t < tps; t++)
{

val1 = digitalRead(cap1);
val2 = digitalRead(cap2);
val3 = digitalRead(cap3);
val4 = digitalRead(cap4);
val5 = digitalRead(cap5);
val6 = digitalRead(cap6);

if (val1 == HIGH) {
etat1 = HIGH; }
else
{
etat1 = LOW;}

if (val2 == HIGH) {
etat2 = HIGH; }
else
{
etat2 = LOW;}

if (val3 == HIGH) {
etat3 = HIGH; }
else
{
etat3 = LOW;}

if (val4 == HIGH) {
etat4 = HIGH; }
else
{
etat4 = LOW;}

if (val5 == HIGH) {
etat5 = HIGH; }
else
{
etat5 = LOW;}

if (val6 == HIGH) {
etat6 = HIGH; }
else
{
etat6 = LOW;}

delay(1000);

}

finish = 0;
etat1 = LOW;
if (etat1 == HIGH) //6-1-2

{
if (etat2 && etat6 == HIGH)
{

moteur.step(pas);
delay(100);

moteur.step(-50);
delay(100);
pas = 50;

finish = 1;
}
if (finish = 0)
{
if (etat6 == HIGH)
{
moteur.step(pas);
delay(100);

moteur.step(-176.78);
delay(100);
pas = 17
6.78;
}
else
{
moteur.step(pas);
delay(100);

moteur.step(-1966.78);
delay(100);
pas = 196
6.78;
}
}
}

if (etat2 == HIGH) //1-2-3

{
if (etat1 && etat3 == HIGH)
{

moteur.step(pas);
delay(100);

moteur.step(-336.78);
delay(100);
pas = 33
6.78;

finish = 1;
}
if (finish = 0)
{
if (etat1 == HIGH)
{
moteur.step(pas);
delay(100);

moteur.step(-166.78);
delay(100);
pas = 16
6.78;
}
else
{
moteur.step(pas);
delay(100);

moteur.step(-506.78);
delay(100);
pas = 50
6.78;
}
}
}

else if (etat3 == HIGH) //2-3-4
{
if (etat2 && etat4 == HIGH)
{

moteur.step(pas);
delay(100);

moteur.step(-666.78);
delay(100);
pas = 66
6.78;

finish = 1;
}
if (finish = 0)
{
if (etat2 == HIGH)
{
moteur.step(pas);
delay(100);

moteur.step(-496.78);
delay(100);
pas = 49
6.78;
}
else
{
moteur.step(pas);
delay(100);

moteur.step(-836.78);
delay(100);
pas = 83
6.78;
}
}
}

else if (etat4 == HIGH) //3-4-5
{
if (etat3 && etat5 == HIGH)
{

moteur.step(pas);
delay(100);

moteur.step(-996.78);
delay(100);
pas = 99
6.78;

finish = 1;
}
if (finish = 0)
{
if (etat3 == HIGH)
{
moteur.step(pas);
delay(100);

moteur.step(-826.78);
delay(100);
pas = 82
6.78;
}
else
{
moteur.step(pas);
delay(100);

moteur.step(-1166.78);
delay(100);
pas = 116
6.78;
}
}
}

else if (etat5 == HIGH) //4-5-6
{
if (etat4 && etat6 == HIGH)
{

moteur.step(pas);
delay(100);

moteur.step(-1326.78);
delay(100);
pas = 132
6.78;

finish = 1;
}
if (finish = 0)
{
if (etat4 == HIGH)
{
moteur.step(pas);
delay(100);

moteur.step(-1156.78);
delay(100);
pas = 115
6.78;
}
else
{
moteur.step(pas);
delay(100);

moteur.step(-1496.78);
delay(100);
pas = 149
6.78;
}
}
}

if (etat6 == HIGH) //5-6-1
{
if (etat5 && etat1 == HIGH)
{

moteur.step(pas);
delay(100);

moteur.step(-1656.78);
delay(100);
pas = 165
6.78;

finish = 1;
}
if (finish = 0)
{
if (etat5 == HIGH)
{
moteur.step(pas);
delay(100);

moteur.step(-1486.78);
delay(100);
pas = 148
6.78;
}
else
{
moteur.step(pas);
delay(100);

moteur.step(-1826.78);
delay(100);
pas = 182
6.78;
}
}
}
delay (5000);
}

Merci de votre aide