Процесс конечного измерения HX711 с магнитным датчиком дверного замка

Я делаю программу, которая запускает процесс измерения, используя HX711, когда магнитный датчик дверного замка срабатывает, и завершает процесс измерения, когда магнитный датчик дверного замка включается.

if (analogRead(A0) > 50){
    scale.power_up();
    lcd.setCursor(0, 4);
    lcd.print("Peso: ");
    lcd.print(scale.get_units(), 3);
    Serial.print(scale.get_units(), 3);
    lcd.print(" kg");
    Serial.print("\t");   

    myRTC.updateTime();
    Serial.print(myRTC.dayofmonth);                                                                     
    Serial.print("/");                                                                                      
    Serial.print(myRTC.month);                                                                              
    Serial.print("/");                                                                                      
    Serial.print(myRTC.year);                                                                              
    Serial.print("  ");                                                                                     
    Serial.print(myRTC.hours);                                                                              
    Serial.print(":");                                                                                      
    Serial.print(myRTC.minutes);                                                                            
    Serial.println("");
    delay(3250);
    digitalWrite(pinR1, LOW);
    lcd.clear();
    lcd.setCursor(0, 1);
    delay(2000);

    if( analogRead(A0) < 50){
    lcd.print("   Peso Registado   ");
    delay(3500);
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print(" O planeta agradece ");
    lcd.setCursor(0, 2);
    lcd.print("    a sua ajuda!    ");
    delay(3000);
    lcd.clear();
    }  

    lcd.print("------TI-Trash------");
    lcd.setCursor(0, 1); 
    myRTC.updateTime();     
    lcd.print("   ");
    lcd.print(myRTC.dayofmonth); 
    lcd.print("/");                                                                                                                                                   
    lcd.print(myRTC.month);                                                                             
    lcd.print("/");                                                                                     
    lcd.print(myRTC.year);                                                                              
    lcd.print("  ");                                                                                   
    lcd.print(myRTC.hours);                                                                            
    lcd.print(":");                                                                                     
    lcd.print(myRTC.minutes);                                                                                                                                                
    lcd.setCursor(0, 4);
    lcd.print("LOADING...");
    delay(2500);
    lcd.setCursor(0, 4);
    lcd.print(">APROXIME SEU CARTAO");
    }
 }

Проблема в том, что я не знаю, как контролировать окончание процесса измерения, потому что процесс завершается через несколько секунд.

Как я могу контролировать окончание процесса измерения

, 👍-1


1 ответ


0

Вам нужна переменная для состояния двери. Если состояние двери closed и датчик показывает, что дверь открыта, это момент, когда вы обновляете состояние двери до open и начинаете измерение. Когда состояние двери open и датчик показывает, что она закрыта, это момент, когда вы меняете состояние двери на closed и прекращаете измерение.

,

Можете ли вы помочь мне с примерами кода, о котором вы говорите?, @Tiago Gonçalves