codage arduino

Bonjour,

je me lance dans le code arduino.
Je souhaite faire tourner un moteur cc 12v avec une carte L293D et un fin de course haut et un arduino nano.
le but le moteur dois tourner quand la nuit tombe et quand le jour se lève le moteur dois a nouveau tourner dans l'autre sens.
J'ai créer une séquence initialisation pour voir ou se trouve la porte avec le fdc.
mais je mouline sur le reste du codage je ne vois pas comment faire.

// Constants
const int fdchaut = 4; // Capteur fin de course haut
const int Motorpin1 = 5; // Déclaration broche IN1 L293D
const int Motorpin2 = 6; // Déclaration broche IN2 L293D
const int LuminositePin = A0; // Déclaration broche LDR


void setup(){
  Serial.begin(9600);
  pinmode(fdchaut, INPUT_PULLUP); // Déclaration entrée pull-up sur entrée Fin de course haut
  pinmode(Motorpin1, OUTPUT); // Déclaration de la sortie A- Moteur
  pinmode(Motorpin2, OUTPUT); // Déclaration de la sortie A+ Moteur
  
  Lance_initialisation();
  
}


void loop() {
  int valeur = analogRead(A0);
  Serial.println(valeur);
  delay(250);
  
}

void Lance_initialisation() {
  fermer();
}

void fermer(){
  digitalWrite(Motorpin1, HIGH);
  digitalWrite(Motorpin2, LOW);
}

void ouvrir(){
  digitalWrite(Motorpin1, LOW);
  digitalWrite(Motorpin2, HIGH);
}

void stop(){
  digitalWrite(Motorpin1, LOW);
  digitalWrite(Motorpin2, LOW);
}

c'est typiquement une définition de programme qui se prête bien à la programmation par machine à états (cf mon tuto éventuellement)

Bonjour,

Dans la section

// Constants

de votre programme, vous avez défini

const int fdchaut = 4; // Capteur fin de course haut

Il me semble qu'il manque une autre constante

fdcbas

qui permettrait de réaliser facilement une machine d'état à réaliser dans

loop()

La machine d'état se résume aux condition suivantes:

  • si "jour" et pas "en haut" alors "monter"
  • si "nuit" et pas "en bas" alors "descendre"
  • sinon "stop"