Delay on "true" timer

I am looking for a “Delay on Make Timer” NODE. This is a common device used in HVAC industry. When a call for AC is initiated from the thermostat the timer then begins timing but does not turn on the AC. Once the delay time period has expired the timer then closes and remains ON or “True” and the AC comes on and runs until the call from the thermostat has ended. The delay ON allows for compressor protection.

I want to mix a batch of solution for my hydroponics system. When I begin I want to add water and run the dosing pump for part A for 75 seconds. Once 75 seconds have expired I want to turn on Part B dosing pump for another 75 seconds. After that turn ON Dosing pump for my Ph adjustment for 11 seconds. Finally the water is turned off by a float switch.

If I use two xod/core/delay nodes with a NOT node between I can get it to work like I want it. HOWEVER upon power up the NOT node sends a TRUE and turns on the pump for 75 seconds. This is not good as it causes the solution to be inaccurate.

In short I need a DELAY ON node that will allow time to pass once the input pin is TRUE before making the output pin TRUE, and will remain TRUE until the input pin is FALSE, which instantly makes the output pin FALSE. And of naturally the T pin is adjustable.

Thanks for your help


Doesn’t this do what you want?


Output is true only if input is true and timer has expired (timer starting when input changes to true).

This is the solution I was looking for!
The forum was great and provided an answer in a shorter than expected time frame.
I did notice a very short TRUE on the output pin during start up. In my case the pump run time is insignificant to the outcome of the Batch of solution.



Adjust pin T to achieve desired results.

If I understand correctly, do you want to achieve such an effect as on the screen? Are the pumps turned off by timer, FALSE and float? The float can also be added to the RST pin by the ANY node. Describe in detail your wishes. An approximate diagram on paper will facilitate understanding of the issue.

Hi. I tried delay(Micro) instead of the delay but it does not seem to work. The trace is measuring the led’s and as is seen no signal is being output from the activity output on the second delay.

The same setup works using delay.

The code in the delay blocks are different and shown below.

Can something be changed in delay(Micro) block to make it work like delay?


in delay(micro) no connect “set”

Yeah…what cesars said. You are missing link between 1st delay(micro)-DONE and 2nd delay(micro)-SET.

Thanks but I think that it may still be something else.
( I had included the set in the sketch but forgot it for the screen print. ) I tried again like below with same result of no output from the delay(Micro)

The only odd thing I see is the defer node that might cause it to skip some pulses. It is turning off both delay nodes when the 2nd node is done. Unless a 2nd pulse has already started on the 1st delay node, this should do nothing. Depending on timing, it could cause ever other pulse to get dropped before reaching the 2nd delay node.

I don’t see any reason for the 2nd delay node to never be active.

delay causes a freeze. use microseconds() function that has an overflow… nice endless slope you made :slight_smile:

Better you let the interupts . Set the interupts and detach after . jump to a function out of the loop set there the variable by value so it is changed when true happens.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.