Python Forum
time.sleep - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: time.sleep (/thread-26448.html)



time.sleep - mtnwinds - May-02-2020

Brand new to Python. If I want to pause the execution of my program for an hour, is sleep() the appropriate function to call? Do I have to express the value passed to sleep()in secs or can I use mins? I'm using a RPi 3B+ with a relay HAT. Thanks for helping.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)

GPIO.setup(32,GPIO.OUT)     #Pin 32 = Relay #1 (Pump)  20 Min 1200 Sec
GPIO.output(32,GPIO.HIGH)   #HIGH = OFF

GPIO.setup(36,GPIO.OUT)     #Pin 36 = Relay #2(Solenoid A) 45 Min, 2700 Sec
GPIO.output(36,GPIO.HIGH)

GPIO.setup(38,GPIO.OUT)     #Pin 38 = Relay #3(Solenoid B) 45 Min
GPIO.output(38,GPIO.HIGH)

GPIO.setup(40,GPIO.OUT)     #Pin 40 = Relay #4(unused)
GPIO.output(40,GPIO.HIGH)

while True:
    try:
        GPIO.output(36,GPIO.LOW)    #Open Sol A
        GPIO.output(32,GPIO.LOW)    #Pump ON
        time.sleep(1200)            #Flood bed A for 20 min
        GPIO.output(38,GPIO.LOW)    #Open Sol B
        GPIO.output(36,GPIO.HIGH)   #Close Sol A
        time.sleep(1200)            #Flood bed B for 20 min
        GPIO.output(32,GPIO.HIGH)   #Pump OFF
        GPIO.output(38,GPIO.HIGH)   #Close Sol B
        time.sleep(1800)            #Allow for complete drainage of beds
    except KeyboardInterrupt:



RE: time.sleep - Larz60+ - May-02-2020

sleep will pause for an hour, day or whatever if given the proper value.
It does not allow other processes take place (in same script) however.
A better way is to use an event which will create an event on timeout.
I have an example of this type of timer on this forum here: https://python-forum.io/Thread-Multi-threaded-Timer-Class?highlight=timer


RE: time.sleep - mtnwinds - May-02-2020

Thank you for your kind reply. I will study your example.


RE: time.sleep - mtnwinds - May-21-2020

Multi-threaded-Timer-Class

In your example you define 4 functions, each running in their own thread. Can I use a call to 'sleep' in 1 thread without halting the execution of the other threads?


RE: time.sleep - Larz60+ - May-21-2020

Quote:Can I use a call to 'sleep' in 1 thread without halting the execution of the other threads?
yes