Besoin d'aide pour un programme

Bonjour je me présente, je m’appelle Steven et je suis en terminale Sti2d en SIN, j’ai donc à projet à réaliser tout au long de l’année et à ce moment je me retrouve bloqué…

Mon programme consiste à faire monter et descendre les pales d’un volet roulant en continu grâce à deux capteurs ILS qui capte si l’embout magnétique est arrivé tout en bas ou tout en haut.

J’ai déjà plus ou moins créé mon programme mais je reste bloqué à un stad, mon volet monté et descends mais je suis obligé de laisser un delay de 6,1s pour qu’il est le temps d’arriver à l’autre capteur mais ça ne me convient pas, je voudrais qu’il effectue une action (monter ou descendre) jusqu’à temps qu’il arrive à l’autre capteur.

PS: Je débute sous Arduino ainsi que sur tous les logiciels d’encodage soyez indulgent, Merci :smiley:

Bonjour,
il faut mettre ton code entre balises, voir ici.
Un fichier .png ne donne aucune envie de regarder ce qui ne va pas.
@+

const int enable = 3; //la broche qui autorise l'alimentation du L293D
const int in1 = 2;    //les broches de signal
const int in2 = 4;
int CapteurHaut = 0; // Configurer CapteurHaut à l'état 0
int CapteurBas = 0; // Configurer CapteurBas à l'état 0

void setup()
{
    pinMode(enable, OUTPUT);  //Enable est une sortie
    pinMode(in1, OUTPUT);  //int1 est une sortie
    pinMode(in2, OUTPUT);  //int2 est une sortie
    pinMode(9, INPUT); //CapteurHaut en entrée
    Serial.begin(9600); // créer la communication
    pinMode(10, INPUT); //CapteurBas en entrée
}
 

void loop() {

  CapteurHaut = digitalRead(9); // lire la valeur

  Serial.println(CapteurHaut);      // écrire la valeur
  
  CapteurBas = digitalRead(10); // lire la valeur 

  Serial.println(CapteurBas);      // écrire la valeur

  delay(6100);
  
  digitalWrite(enable, HIGH); //Autorisation de l'alimentation du moteur
    digitalWrite(in1, HIGH); //Descente
    digitalWrite(in2, LOW);
  
  if (CapteurHaut == 1)
  {digitalWrite(enable, HIGH); //Autorisation de l'alimentation du moteur
    digitalWrite(in1, HIGH); //Descente
    digitalWrite(in2, LOW);
    }
    
    if (CapteurBas == 1)
    {digitalWrite(enable, HIGH); //Autorisation de l'alimentation du moteur
     digitalWrite(in1, LOW); //Monter
     digitalWrite(in2, HIGH);
     }
}

bonjour,
quel est le moyen de faire monter ou descendre le volet?
par un bouton, automatiquement (monte descend sans arrêt)?

Bonjour a vous :smiley: , alors pour être précis je veux seulement que mon volet monte et descende seulement grâce au programme Arduino sans aucun bouton.

OkennTeKen:
Bonjour a vous :smiley: , alors pour être précis je veux seulement que mon volet monte et descende seulement grâce au programme Arduino sans aucun bouton.

donc, il va monter descendre sans arrêt tout seul, c’est bien ca?
aucune instruction pour le début ou la fin du programme.

il faut bien commencer pour un coté (haut/bas) pour donner un sens de marche.

debut prog
on fait monter le volet
si capteurhaut activé => on inverse et on descend le volet
si capteurbas activé => on inverse et on monte le volet

utilises un flag pour ca

boolean sens = true;

void loop
 CapteurHaut = digitalRead(9); // lire la valeur

 Serial.println(CapteurHaut);      // écrire la valeur

 CapteurBas = digitalRead(10); // lire la valeur

 Serial.println(CapteurBas);      // écrire la valeu

if( CapteurHaut == HIGH) sens = true;
if( CapteurBas == HIGH) sens = false;

 if (sens == true)
 {digitalWrite(enable, HIGH); //Autorisation de l'alimentation du moteur
   digitalWrite(in1, HIGH); //Descente
   digitalWrite(in2, LOW);

   }



 if (sens == false)
 {digitalWrite(enable, HIGH); //Autorisation de l'alimentation du moteur
   digitalWrite(in1, HIGH); //Descente
   digitalWrite(in2, LOW);

   }

Merci :smiley: ! Je ne savais pas que l’on pouvais créer un sens dans un circuit sous arduino, vous m’avez fait gagner un temps fou, cela fait plusieurs heure que je me casses la tête sur ce programme.

Encore Merci et au plaisir de ce recontacter sur ce forum :smiley:

OkennTeKen:
Merci :smiley: ! Je ne savais pas que l'on pouvais créer un sens dans un circuit sous arduino, vous m'avez fait gagner un temps fou, cela fait plusieurs heure que je me casses la tête sur ce programme.

Encore Merci et au plaisir de ce recontacter sur ce forum :smiley:

ca s'appelle de la recherche personnelle aussi.
apparemment pas trop ton fort.