Arduino, кажется, не может получить правильный синтаксис - PullRequest
0 голосов
/ 11 апреля 2019

Температура воды должна оставаться между 24-27'c - если не печатает на ЖК-дисплее и не звучит зуммер. Уровень воды также контролируется и должен гореть соответствующими светодиодами.

Моя проблема в том, что при компиляции этого кода из цикла я всегда получаю сообщение об ошибке. Я бы предположил, что мне не хватает фигурных скобок или чего-то довольно простого, но я не могу на всю жизнь понять, где я иду не так.

Может кто-нибудь направить меня в правильном направлении. - Я согласен, что это может быть простым решением, но я не вижу дрова для деревьев.

        void loop()
        {

            WaterTemp = (sensors.getTempCByIndex(0));

            Serial.print(F(" Requesting temperatures..."));
            sensors.requestTemperatures(); // Send the command to get temperature
            Serial.println("DONE");

            Serial.print(F("Water Temperature is: "));
            Serial.println(WaterTemp);
            lcd.setCursor(9, 0);
            lcd.print(WaterTemp, 1);
            lcd.print(F(" "));
            lcd.print((char)223);
            lcd.print(F("C"));
            delay(1000);

        }

        if (WaterTemp <24)
        {
            tone(piezoPin,600, 200);
            delay(1000);
            lcd.print("TEMP LOW");
        }
        if (WaterTemp >27)
        {
            tone(piezoPin, 400, 200);
            delay(1000);
            lcd.print("TEMP HIGH");
        }
    }

    value = analogRead(read); //Read data from analog pin and store

    if (value<=390) {
        Serial.println("Water level: 0mm -Fill FISHTANK NOW!!!");
        digitalWrite (4, HIGH);
        digitalWrite (3, LOW);
        digitalWrite (2, LOW);
        tone(piezoPin,500, 400);
        delay(1500);
    }
    else if (value>450 && value<=529) {
        Serial.println("Water level: 10mm Fill Fishtank ASAP");
        digitalWrite (4, HIGH);
        digitalWrite (3, HIGH);
        digitalWrite (2, LOW);
    }
    else if (value>540 && value<=550) {
        Serial.println("Water level: 20mm Fishtank getting low!!");
        digitalWrite (4, LOW);
        digitalWrite (3, HIGH);
        digitalWrite (2, LOW);
    }
    else if (value>560 && value<=570) {
        Serial.println("Water level:30mm  Fishtank below optimum level");
        digitalWrite (4, LOW);
        digitalWrite (3, HIGH);
        digitalWrite (2, HIGH);
    }

    else if (value>580) {
        Serial.println("Water level:40mm Fishtank FULL");
        digitalWrite (4, LOW);
        digitalWrite (3, LOW);
        digitalWrite (2, HIGH);

    }

    delay(2000); // Check for new value every 3 sec
}

1 Ответ

1 голос
/ 11 апреля 2019

У вас есть '{' после заявления о задержке, которого там быть не должно. Имея это, он делает весь код за его пределами не в функции цикла, что может вызвать ошибку компилятора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...