Обучение: как оптимизировать цикл Arduino - PullRequest
0 голосов
/ 26 августа 2018

Недавно я купил модуль ESP12E и узнал о его возможностях. Я начал учиться кодировать на Lua и дошел до того, что не могу понять, как получить лучший код. Проблема, которую я получил, состоит в том, что когда я отправляю ping на устройство, оно имеет очень высокую задержку (потому что я думаю, что код перегружен). Что может быть лучше, чтобы сделать следующее? Я использую все условные условия, но я думаю, что это может быть сделано лучше. Код должен включать зеленый светодиод, если все в порядке, мигать красным светодиодом, если есть перегрев, или включать этот красный светодиод (статический), если происходит сбой при считывании датчика.

`

void loop() {

  if (digitalRead(boton) == LOW) {
    WiFiManager wifiManager;
    wifiManager.resetSettings();
    Serial.println("Wi-Fi RESETEADO");
    delay(2000);
  }

  Serial.println("Mandando comandos a los sensores");
  sensorDS18B20.requestTemperatures();  
  int promedio = (sensorDS18B20.getTempCByIndex(0)+sensorDS18B20.getTempCByIndex(1))/2;
  if (promedio > 28 ) {
    Serial.println("SOBRETEMPERATURA! ABORTAR!");
    digitalWrite(green, LOW);
    bool state = digitalRead(red);
    digitalWrite(red, !state);
    delay(200);
    }
  else {
    digitalWrite(red, LOW);
    digitalWrite(green, HIGH);
    if (promedio < 0) {
      Serial.println("Sensor esta fallando!!");
      digitalWrite(green, LOW);
      digitalWrite(red, HIGH);
    }
    else {
      if (digitalRead(green) == HIGH) {
        Serial.println("TODO BIEN");
      }
      else{
        digitalWrite(blue, LOW);
        digitalWrite(red, LOW);
        digitalWrite(green, HIGH);
      }
    }
  }
  Serial.println(promedio); 
}

`

...