Problema codice

Grazie delle risposte! @docdoc il mio problema è che voglio i dati esattamente ogni 40 ms, putroppo è questa la maggiore difficoltà. Ho cambiato il codice e lavoro tramite un pulsante, cioè fintantochè viene premuto acquisisce mentre se il suo valore scende a zero no. ora sono riuscito ad abbassare fino ">= 20" ma mi serve qualcosa tipo "=="

#define PULSANTE 9 
#include <HX711.h>
#include <SD.h>
#include <SPI.h>

HX711 cell(5,4);
File myFile;
int pinCS = 10;

boolean STATO = LOW;
int potentiometerPin = A0;
int value = 0;
int potentiometer = 0;
int spostamento = 0;
int delta_spostamento = 0;
int spostamentoprec = 0;
unsigned long referenceMillis = 0;
unsigned long currentMillis = 0;
unsigned long previousMillis = 0;
unsigned long targetMillis = 0;
long zero;
long lecture;
long attuale;

void setup(){
  Serial.begin(9600);
  pinMode(pinCS,OUTPUT);
  pinMode (PULSANTE, INPUT_PULLUP);  
    if (!SD.begin()) { // Initialize SD card
    Serial.println("Could not initialize SD card."); // if return value is false, something went wrong.  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  
  }

  if (SD.exists("test.txt")) { // if "file.txt" exists, fill will be deleted
    Serial.println("test exists.");
    if (SD.remove("test.txt") == true) {
      Serial.println("Successfully removed file.");
    } else {
      Serial.println("Could not removed file.");
     
    }
  }
  zero = cell.read();
  potentiometer = analogRead(potentiometerPin);
}

void loop(){
  STATO = digitalRead(PULSANTE);
  if(STATO == 1) {
    currentMillis = millis();
    if ( currentMillis - previousMillis >= 20 ) {
    value = analogRead(potentiometerPin);
    attuale = cell.read();
    lecture = attuale - zero;
    if ( value - potentiometer >= 0 ){
      spostamento = spostamento  + (value - potentiometer);
      delta_spostamento = spostamento - spostamentoprec;
      if ( lecture < 0 ){
        lecture = lecture*(-1);
        }
      }
     else {
        spostamento = spostamento + (potentiometer - value);
        delta_spostamento = spostamento - spostamentoprec;
        if ( lecture < 0 ){
        lecture = lecture*(-1);
        }
    }
    potentiometer = value;
    spostamentoprec = spostamento;
    zero = attuale;
    
    Serial.println(millis());
    myFile = SD.open("test.txt",FILE_WRITE);

      if (myFile) {
              
         myFile.print(millis());
         myFile.print(",");
         myFile.print(delta_spostamento);
         myFile.print(",");
         myFile.println(lecture);
         myFile.close(); // close the file
            
       }else {
              
              Serial.println("error opening test.txt");
        } 
    
  }
  }
}

come faccio ad avere intervalli "regolari"?