No title

 // Automatic Stairs Light with 2 IR Sensors, 8 Relays & Potentiometer

// By Umair's Project


#define sensor1 2   // پہلا IR سینسر (نیچے کی طرف)

#define sensor2 3   // دوسرا IR سینسر (اوپر کی طرف)


int relays[8] = {4, 5, 6, 7, 8, 9, 10, 11};  // ریلے ماڈیول کے لیے 8 چینلز

#define potPin A5   // پوٹینشیو میٹر کا پن


void setup() {

  pinMode(sensor1, INPUT);

  pinMode(sensor2, INPUT);


  for (int i = 0; i < 8; i++) {

    pinMode(relays[i], OUTPUT);

    digitalWrite(relays[i], HIGH); // شروع میں سب ریلے آف

  }

}


void loop() {

  int potValue = analogRead(potPin);         

  int delayTime = map(potValue, 0, 1023, 50, 1000);  


  // اگر نیچے والا سینسر ایکٹیویٹ ہو

  if (digitalRead(sensor1) == LOW) {

    turnOnForward(delayTime);   // 1 سے 8 تک آن ہوگا


    // اب تب تک ویٹ کرے گا جب تک sensor2 ایکٹیویٹ نہ ہو

    while (digitalRead(sensor2) == HIGH);  

    turnOffForward(delayTime);  // sensor2 ایکٹیویٹ ہونے پر آف ہونا شروع ہوگا

  }


  // اگر اوپر والا سینسر ایکٹیویٹ ہو

  if (digitalRead(sensor2) == LOW) {

    turnOnBackward(delayTime);  // 8 سے 1 تک آن ہوگا


    // اب تب تک ویٹ کرے گا جب تک sensor1 ایکٹیویٹ نہ ہو

    while (digitalRead(sensor1) == HIGH);  

    turnOffBackward(delayTime); // sensor1 ایکٹیویٹ ہونے پر آف ہونا شروع ہوگا

  }

}


// 🔹 ریلے آن 1 سے 8

void turnOnForward(int d) {

  for (int i = 0; i < 8; i++) {

    digitalWrite(relays[i], LOW);

    delay(d);

  }

}


// 🔹 ریلے آف 1 سے 8

void turnOffForward(int d) {

  for (int i = 0; i < 8; i++) {

    digitalWrite(relays[i], HIGH);

    delay(d);

  }

}


// 🔹 ریلے آن 8 سے 1

void turnOnBackward(int d) {

  for (int i = 7; i >= 0; i--) {

    digitalWrite(relays[i], LOW);

    delay(d);

  }

}


// 🔹 ریلے آف 8 سے 1

void turnOffBackward(int d) {

  for (int i = 7; i >= 0; i--) {

    digitalWrite(relays[i], HIGH);

    delay(d);

  }

}

Post a Comment

Previous Post Next Post

Contact Form