Bonjour,
Je suis nouveau ici et je découvre toutes les possibilités de l'arduino, c'est assez fou.
Mon projet doit être assez simple et je suis presque au bout de mon proto mais je dois avoir une erreur dans mon code de programmation.
Le projet : créer une porte pour poulailler avec ouverture automatique qui se déclenche en fonction de la luminosité extérieur. Pour cela, j'utilise un arduino uno, un powersupply modul, un micro controler L293D, un relai, un moteur 9v, une photoresistance et un capteur magnetique ( detection de la position haute de la porte).
J'ai un problème au niveau de ma condition if, car une fois le moteur lancé, ça ne s’arrête plus ( que la lumière diminue ou que le capteur magnetique soit désactivé).
J'aimerai que le moteur s’arrête de tourné une fois que le capteur magnétique est déclenché.
int lightPin = 0;
int inputPin = 2;
#define ENABLE 5
#define DIRA 3
#define DIRB 4
byte leds = 0;
int val = 0 ;
void setup() {
//---set pin direction
pinMode(ENABLE,OUTPUT);
pinMode(DIRA,OUTPUT);
pinMode(DIRB,OUTPUT);
pinMode(inputPin, INPUT) ;
Serial.begin(9600);
}
void loop() {
val = digitalRead(inputPin) ;
digitalWrite(ENABLE,HIGH); // enable on
Serial.println(val);
int reading = analogRead(lightPin);
int numLEDSLit = reading / 57; //1023 / 9 / 2
// Serial.print(numLEDSLit);
if (numLEDSLit > 3 && val==LOW) {
digitalWrite(DIRA,HIGH); //one way
digitalWrite(DIRB,LOW);
val==HIGH;
}
else{
digitalWrite(ENABLE,LOW); // disable
}
}
Merci pour votre aide.