In loop (), I read the data from the sensors every minute and print it out on the LCD. I have a delay between measuring different sensors so that the text on the display stays visible longer. The problem is that when using delay and therefore minute data, pressing the HIGH button does not work, because in loop () it is at the beginning and responds best outside the minute data when the sensors do not measure.
Can't the reaction of pressing the button be solved outside the loop, so that the pressing works without what happens in the loop? To work right away without any circumstances?
The solution is to remove delay() and instead track elapsed time using millis() so the rest of loop() can keep doing useful things. It is a common pitfall. There is even an example in the IDE - BlinkWithoutDelay (File->examples->02.digital->BlinkWithoutDelay)
Look in the several things at a time tutorial to see how different things can be done at their own times. Those delay() calls mess up the millis() timing. Get rid of delays completely.
LCD has its own scanning circuitry and display controller. The display will be showing the users data all the time without any interruption. So, there is no need to insert any time delay at all.