Часы с боем

Тема в разделе "Arduino & Shields", создана пользователем Владимир70, 1 фев 2017.

  1. Оригинал1.jpg Привет! Необходимо разработать скетч для ардуино, управление тяговыми электромагнитами как в ролике.



    HTB1ZKtGOpXXXXaAXVXXq6xXFXXX8.jpg HTB1c2TjNXXXXXbwXXXXq6xXFXXXC.jpg HTB1Obf.OXXXXXXPaXXXq6xXFXXX7.jpg s-l1600 (1).jpg
     
    Последнее редактирование: 1 фев 2017
  2. С этим скетчем проблема, сразу срабатывают все реле, а этого не должно быть.

    Код (C++):
    int relayPin1 = 3;
    int relayPin2 = 4;
    int relayPin3 = 5;
    int relayPin4 = 6;
    int relayPin5 = 7;

    void setup()
    {
      pinMode(relayPin1, OUTPUT);
      pinMode(relayPin2, OUTPUT);
      pinMode(relayPin3, OUTPUT);
      pinMode(relayPin4, OUTPUT);
      pinMode(relayPin5, OUTPUT);

    }


    void loop()
    {
      Serial.println("starting");
      digitalWrite(relayPin1, LOW);
      delay(100);
      digitalWrite(relayPin1, HIGH);
      delay(1000);

      Serial.println("starting");
      digitalWrite(relayPin2, LOW);
      delay(100);
      digitalWrite(relayPin2, HIGH);
      delay(1000);

      Serial.println("starting");
      digitalWrite(relayPin3, LOW);
      delay(100);
      digitalWrite(relayPin3, HIGH);
      delay(1000);

      Serial.println("starting");
      digitalWrite(relayPin4, LOW);
      delay(100);
      digitalWrite(relayPin4, HIGH);
      delay(2000);

      Serial.println("starting");
      digitalWrite(relayPin4, LOW);
      delay(100);
      digitalWrite(relayPin4, HIGH);
      delay(1000);

      Serial.println("starting");
      digitalWrite(relayPin2, LOW);
      delay(100);
      digitalWrite(relayPin2, HIGH);
      delay(1000);

      Serial.println("starting");
      digitalWrite(relayPin1, LOW);
      delay(100);
      digitalWrite(relayPin1, HIGH);
      delay(1000);

      Serial.println("starting");
      digitalWrite(relayPin3, LOW);
      delay(100);
      digitalWrite(relayPin3, HIGH);
      delay(2000);

      Serial.println("starting");
      digitalWrite(relayPin1, LOW);
      delay(100);
      digitalWrite(relayPin1, HIGH);
      delay(1000);

      Serial.println("starting");
      digitalWrite(relayPin2, LOW);
      delay(100);
      digitalWrite(relayPin2, HIGH);
      delay(1000);

      Serial.println("starting");
      digitalWrite(relayPin3, LOW);
      delay(100);
      digitalWrite(relayPin3, HIGH);
      delay(1000);

      Serial.println("starting");
      digitalWrite(relayPin4, LOW);
      delay(100);
      digitalWrite(relayPin4, HIGH);
      delay(2000);

      Serial.println("starting");
      digitalWrite(relayPin4, LOW);
      delay(100);
      digitalWrite(relayPin4, HIGH);
      delay(1000);

      Serial.println("starting");
      digitalWrite(relayPin2, LOW);
      delay(100);
      digitalWrite(relayPin2, HIGH);
      delay(1000);

      Serial.println("starting");
      digitalWrite(relayPin1, LOW);
      delay(100);
      digitalWrite(relayPin1, HIGH);
      delay(1000);

      Serial.println("starting");
      digitalWrite(relayPin3, LOW);
      delay(100);
      digitalWrite(relayPin3, HIGH);
      delay(2000);

      Serial.println("starting");
      digitalWrite(relayPin5, LOW);
      delay(100);
      digitalWrite(relayPin5, HIGH);
      delay(3000);

      Serial.println("starting");
      digitalWrite(relayPin5, LOW);
      delay(100);
      digitalWrite(relayPin5, HIGH);
      delay(3000);

      Serial.println("starting");
      digitalWrite(relayPin5, LOW);
      delay(100);
      digitalWrite(relayPin5, HIGH);
      delay(3000);
    }
     
  3. mcureenab

    mcureenab Гуру

    У вас в каком состоянии пины перед переключением в OUTPUT? HIGH? LOW?

    Код (C++):
    void setup()
    {
      pinMode(relayPin1, OUTPUT);
      pinMode(relayPin2, OUTPUT);
      pinMode(relayPin3, OUTPUT);
      pinMode(relayPin4, OUTPUT);
      pinMode(relayPin5, OUTPUT);

    }
     
     
  4. при первом включении загораются все светодиоды на плате реле с 1 по 5, дальше надо подождать когда пройдет полный цикл и после этого программа дальше работает так как надо.
     
  5. ну и что мешает выключить их в сетапе после pinMode?