porte de poulailler

encore merci J-M-L pour les indications !

j'ai modifié le code :

#define BRAKE 0
#define CW    1
#define CCW   2
#define CS_THRESHOLD 15  // Definition of safety current (Check: "1.3 Monster Shield Example").
short usSpeed = 150;  //default motor speed
unsigned short usMotor_Status = BRAKE;
#define PWM_MOTOR_1 5
#define MOTOR_1 0


// moteur
#define MOTOR_A1_PIN 7
#define MOTOR_B1_PIN 8

// contacts fin de course
#define contactFermee_PIN 9 // broche pour contact fin de course porte fermée
#define contactOuverte_PIN 10 // broche pour contact fin de course porte ouverte

const byte luminositePin = A0; // pin pour la photo résistance
int luminosite = 0; // variable de luminosite
int seuilJour = 200; // seuil de luminosité pour le jour
int seuilNuit = 100; // seuil de luminosité pour la nuit
int jour;
int nuit;


void setup() {
  // put your setup code here, to run once:
  // définition des PINs
    Serial.begin(9600);
    pinMode(MOTOR_A1_PIN, OUTPUT);
    pinMode(MOTOR_B1_PIN, OUTPUT);
    pinMode(luminositePin, INPUT);
    pinMode(contactFermee_PIN, INPUT_PULLUP);
    pinMode(contactOuverte_PIN, INPUT_PULLUP);

}

void loop() {
  // put your main code here, to run repeatedly:

  luminosite = analogRead(luminositePin); // lecture de la valeur de la photo résistance


  // pour ouvrir la porte
  if (luminosite > seuilJour && digitalRead(contactFermee_PIN)==HIGH)
  {
     jour = jour + 1;
     nuit = 0;
     delay(1000);
     if (jour > 15) 
     {
      jour = 0;
      ouverture();
     }
  }
  

  // pour fermer la porte
  if (luminosite < seuilNuit && digitalRead(contactOuverte_PIN)==HIGH)
  {
    nuit = nuit + 1;
    jour = 0;
    delay(1000);
    
    if (nuit > 15)
    {
      nuit = 0;
      fermeture();
    }
    
  }
  
}

void ouverture() {
  Reverse();
  while (digitalRead(contactOuverte_PIN)==HIGH)
  {
    
  }
  Stop();
  
}

void fermeture() {
  Forward();
  while (digitalRead(contactFermee_PIN)==HIGH)
  {
    
  }
  Stop();

}

void Forward()
{
  Serial.println("Forward");
  usMotor_Status = CW;
  motorGo(MOTOR_1, usMotor_Status, usSpeed);
}

void Reverse()
{
  Serial.println("Reverse");
  usMotor_Status = CCW;
  motorGo(MOTOR_1, usMotor_Status, usSpeed);
}

void Stop()
{
  Serial.println("Stop");
  usMotor_Status = BRAKE;
  motorGo(MOTOR_1, usMotor_Status, 0);
}



void motorGo(uint8_t motor, uint8_t direct, uint8_t pwm)         //Function that controls the variables: motor(0 ou 1), direction (cw ou ccw) e pwm (entra 0 e 255);
{
  if(motor == MOTOR_1)
  {
    if(direct == CW)
    {
      digitalWrite(MOTOR_A1_PIN, LOW); 
      digitalWrite(MOTOR_B1_PIN, HIGH);
    }
    else if(direct == CCW)
    {
      digitalWrite(MOTOR_A1_PIN, HIGH);
      digitalWrite(MOTOR_B1_PIN, LOW);      
    }
    else
    {
      digitalWrite(MOTOR_A1_PIN, LOW);
      digitalWrite(MOTOR_B1_PIN, LOW);            
    }
    
    analogWrite(PWM_MOTOR_1, pwm); 
  }

}

Je reçois la carte Motor Shield demain normalement, mais je vais faire des tests avec des leds cet après midi :slight_smile: