Simulation of a code keyboard with a push button (with LEDs)
Use case
Your customer wants to start an action (e.g. turn on a lamp) when a specific numeric combination (e.g. 1234) is pressed on a four-fold push button (with LEDs). The correct combination has to be pressed within 4 seconds.
In this example a combination of four buttons is used. You can also use more buttons or a different numeric combination.
Procedure
Creating the controls and the devices
- Create a four-fold push button (PB1).
- Create a lamp (LAMP1).
- Create the virtual devices (VIRT1 to VIRT4):
- VIRT1: Button 1 of PB1 active
- VIRT2: Button 2 of PB1 active
- VIRT3: Button 3 of PB1 active
- VIRT4: Button 4 of PB1 active
Creating the routines
The correct numeric combination has to be pressed within 4 seconds.
- Create a custom routine (ROUT1) to activate VIRT1 with button 1 of the push button for 4 seconds. Use the following behaviour:
- Control that initiates the routine: button 1 of the push button (PB1).
- Devices that are part of the routine: VIRT1
- Start behaviour:
- VIRT1: Value = true, Delay = 0 s
- VIRT1: Value = false, Delay = 4 s
- Stop behaviour: leave empty
- Start behaviour:
- Create a custom routine (ROUT2) to activate VIRT2 with button 2 of the push button for 3 seconds. Use the following behaviour:
- Control that initiates the routine: button 2 of the push button (PB1).
- Devices that are part of the routine: VIRT2
- Start behaviour:
- VIRT2: Value = true, Delay = 0 s
- VIRT2: Value = false, Delay = 3 s
- Stop behaviour: leave empty
- Start behaviour:
- Create a custom routine (ROUT3) to activate VIRT3 with button 3 of the push button for 2 seconds. Use the following behaviour:
- Control that initiates the routine: button 3 of the push button (PB1).
- Devices that are part of the routine: VIRT3
- Start behaviour:
- VIRT3: Value = true, Delay = 0 s
- VIRT3: Value = false, Delay = 2 s
- Stop behaviour: leave empty
- Start behaviour:
- Create a custom routine (ROUT4) to activate VIRT4 with button 4 of the push button for 1 second. Use the following behaviour:
- Control that initiates the routine: button 4 of the push button (PB1).
- Devices that are part of the routine: VIRT4
- Start behaviour:
- VIRT4: Value = true, Delay = 0 s
- VIRT4: Value = false, Delay = 1 s
- Stop behaviour: leave empty
- Start behaviour:
Creating the conditions
The conditions below are a built-in safety precaution. When you press a wrong code within 4 seconds, the four virtual devices are not set to "true" at the same time.
- Create a condition (COND1) for pressing the correct code. The lamp is turned on. Use the following logic:
- IF (VIRT1: Value = true) and (VIRT2: Value = true) and (VIRT3: Value = true) and (VIRT4: Value = true)
- THEN LAMP1: Value = on
- ELSE leave empty
- Create a condition (COND2) for pressing a wrong code (the first button pressed is wrong). Use the following logic:
- IF [(VIRT2: Value = true) or (VIRT3: Value = true) or (VIRT4: Value = true)] and (VIRT1: Value = false)
- THEN VIRT1 to VIRT4: Value = false
- ELSE leave empty
- Create a condition (COND3) for pressing a wrong code (the first or second button pressed is wrong). Use the following logic:
- IF [(VIRT3: Value = true) or (VIRT4: Value = true)] and [(VIRT1: Value = false) or (VIRT2: Value = false)]
- THEN VIRT1 to VIRT4: Value = false
- ELSE leave empty
- Create a condition (COND4) for pressing a wrong code (the first or second or third button pressed is wrong). Use the following logic:
- IF (VIRT4: Value = true) and [(VIRT1: Value = false) or (VIRT2: Value = false) or (VIRT3: Value = false)]
- THEN VIRT1 to VIRT4: Value = false
- ELSE leave empty