Skip to content
Norbert Richter edited this page May 14, 2019 · 12 revisions

Table of Contents

Roof window (DFF) control with Arduino Uno and FS20-SM8

An Ardunio Uno controls with the help of relays up to 8 motors for windows and blinds. Simple control commands, in addition to the wall push buttons and the FS20 integration via the two FS20-SM8 receivers, make the operation of the control via network interface (the Ardunio Uno connected via its RS232 interface to a WIZ110SR RS232toEthernet converter and thus integrated into the home network). An optional rain sensor can be integrated via additional inputs. This closes the windows in the rain and can (optional) automatically restore windows to their original position after rain.

  • Connection of max. 4 electric DFF with electric blinds
  • Connection of 16 wall buttons (8 for each motor, one button each for "open" and "closed")
  • Radio control via FS20 with the help of two FS20-SM8 8-channel receivers
  • Rain sensor input to autom. Close the DFF in the rain
  • Remote control or integration into your own home automation via
Commands via the serial interface. A connection to the network is with the help of an Ethernet2Serial converter so easily.

Control of the motors

Arduino Uno controls

  • Max. eight 24V DC motors
    • 4 for the electrical DFF
    • 4 for the electric blinds.
Each motor requires two relays:
  • a relay switches the operating voltage on and off
  • the second relay switches the direction of rotation (polarity)
Thus, with appropriate wiring, of course, also AC tubular motors can be operated. Instead of the polarity you switch with the second relay, the operating voltage just to left or right.

Operation

Serve for operation by the user

  • 16 wall buttons, 8 for each motor, one button each for "open" and "closed"
  • 16 FS20-SM8 receiver (built with two ELV FS20 SM8 8-channel receiver modules) - as with the wall button - eight Pair, 2 channels each: one channel for "open" and a second channel for "close".

Wall switch operation

Touch the wall button to start the respective operating direction. Another tap of the same direction stops the engine. Tap the opposite direction starts the opposite direction immediately. Pressing both directions together also stops the motor, no matter in which direction it was running.

Auto-learn function

For the (optional) function of positioning the motors in a position between "open" and "closed", the controller must be informed of the approximate runtime of a window or roller blind. The runtime can be programmed using the auto-learn function. To do this, open or close a window / blind completely, press the wall button to open / close (in the opposite direction) and hold it firmly (longer than 10 seconds) until the window / blind has arrived in the opposite position. After releasing the button, the controller remembers the key time as the runtime for this window or blind. To accurately position the motor, this time should be very accurate. So that a motor completely closes and / or opens the respective window or the blind, each motor runs after a certain time with end commands such as "open" or "closed" (default 2 sec.).

The wall button operation has priority over the FS20 operation.

FS20 Operation

Controlled via FS20 we need two FS20 channels for each motor: one channel for the function "up" or "open", a second channel for the function "down" or "close".

If you switch on an FS20 channel, this starts the associated motor. Once again using the same FS20 channel, turns off the FS20 channel and stops the motor.

Network Inclusion

Simple Control Commands allow DFF control over the network.

Control elements

The controller consists of

The Arduino Uno controls over 16 relays a total of eight engines. The relays have the following function:
  • eight relays for motor on / off
  • eight relays for the direction of rotation

How the controller works

Two FS20 SM8 serve as FS20 receivers for roof window control (DFF). With Hilfer of two FS20-SM8 stand a total of 16 FS20 channels to disposal. Two each control an engine:

  • one channel controls 'open' (left-hand rotation)
  • one channel controls 'Close' (clockwise)
This allows a total of 4 roof windows, each with two 24V DC
 motors:
  • one motor to open / close the window
  • one motor for the blind
The UNO assumes the 'translation' of opening / closing on the engine conditions
  • Out
  • To open
  • Conclude
Each engine can be adjusted by parameter:
  • Window or blind (important for rain sensor)
  • Max. engine runtime
Since the process of the FS20 SM8 can only be intervened to a limited extent, the FS20 SM8 are only used as 'encoders'. The engine is controlled via the control program.

Wiring

Aurduino Uno

  • D3 goes to the INTA output of the MPC (they are all connected)
  • D4 is the rain sensor input (low-active)
  • D9 is the rain sensor enable input (low-active)
  • SDA / SCL go to the MPC (all interconnected)
  • VCC goes to all MPC Vcc and FS20 Vcc
  • GND goes to all MPC Gnd and FS20 Gnd
  • Rx / Tx / Vcc / GND of the serial interface go via a MAX232 converter to a WIZ100SR board (RS232 to Ethernet interface)

MPC2307

  • RESET will be connected to Vcc
  • VDD goes to VCC
  • VSS goes to GND
  • SDA / SCL to Arduino SDA / SCL
  • INTA goes to Arduino D3
  • A0-A2 according to the addresses:

MPC2307 I2C Address 0b00 - Motor relay

  Port A (Output): Relay motor 1-8 ON / OFF   Port B (Output): Relay motor 1-8 direction of rotation

MPC2307 I2C Address 0b01 - FS20 SM8 Output

  Port A (Output): FS20-SM8 # 1 button 1-8 ("On" function)   Port B (Output): FS20-SM8 # 2 Button 1-8 ("To" function)

MPC2307 I2C Address 0b10 - FS20 SM8 Input

  Port A (Input): FS20-SM8 # 1 Status 1-8 ("On" Function)   Port B (Input): FS20-SM8 # 2 Status 1-8 ("To" function)   The FS20-SM8 outputs switch the signal to ground (0 = active)

MPC2307 I2C Address 0b11 - Wall button

  Port A (Input): Wall button ("On" function)   Port B (Input): Wall button ("To" function)

House wiring

Control cables (one Lapp cable 10x0.5mm 2) lead from the FS20-SM8 control box to the terminals of the DFF motors. Cable assignment proposal:

Control cable from wall switch / DFF motors (distributor box at the Drempel) to the control box

'color' 'port' - Brown br engine window + - White ws window motor - - Red rt blind motor + - Blue bl Blind Motor - - Pink rs Push Button Window - Violet vi Wall Push Button Window To - Gray gr wall button window mass - Yellow Wall-mounted blinds - Black sw Wall-mounted blinds mass - Green gn Wall-mounted blinds -

Motor control

The engines are completely controlled by the Arduino Uno, none of them Keys or FS20-SM8 outputs go to the motors. Each engine has two additional properties (TYPE):

  • Motor type: "Window" (WINDOW) or "Blinds" (JALOUSIE)
  • Motor runtime: Maximum running time of the motor
These properties can be determined using the default values DEFAULT_MOTORTYPE, MOTOR_WINDOW_MAXRUNTIME and MOTOR_JALOUSIE_MAXRUNTIME predefined, as well as later with help of the control commands MOTORTYPE and MOTORTIME. Windows type motors are activated when the rain sensor input is active automatically closed. Each motor is switched off at the end of its motor runtime.

Relay and motor protection

Two relays control one motor (one relay switches the direction of rotation, a second switches the voltage on / off).

For all relay circuits, their contact switching times (RELAIS_OPERATE_TIME) are taken into account. In addition, with the engine running and the direction of rotation required, to reduce motor induced induction voltages, an additional duty cycle (MOTOR_SWITCHOVER) is added.

Summarized:

  • The motor voltage is always switched on only after the directional relay has switched (RELAIS_OPERATE_TIME). This also applies if the engine is already running.
  • Similarly, taking into account the relay response times (RELAIS_OPERATE_TIME) with the engine running and direction reversal, the engine is first turned off, the direction changed and then the engine turned back on (MOTOR_SWITCHOVER).
Examples:

The engine runs left and should turn right. The relay steps are:

  1. Switch off motor voltage
  2. Wait RELAIS_OPERATE_TIME ms
  3. Switch the direction of rotation relay
  4. Wait MOTOR_SWITCHOVER ms
  5. Switch on motor voltage
The engine is off and intended to clockwise. The relay steps are:
  1. Switch the direction of rotation relay to the right
  2. Wait RELAIS_OPERATE_TIME ms
  3. Switch on motor voltage

Wall button

The buttons switch the input signal to ground (0 = active). The wall buttons have the following function:

Button on:
"Switch on", repeated pressure switches the motor off.
Key to:
"Switch on", repeated pressure switches the motor off.
Both buttons:
Turns off the engine.
Wall buttons have priority over SM8 control inputs. Perhaps active SM8 channels become active when the corresponding wall button is pressed turned on.

FS20-SM8

From the SM8, the channel outputs are used as the control input for the Engine control used. The SM8 channel inputs can be used with help another MPC controlled by the UNO. That's it possible, active SM8 channels, the z. B. activated by radio, switch. The following conditions are taken into account:

  • Simultaneously activated SM8 outputs (eg OPEN & CLOSE active) are decoupled, the last command given is activated, the associated channel to be decoupled is deactivated.
  • only the rising edge (0-> 1) of a channel activates the corresponding function.
  • the falling edge (1-> 0) of an SM8 channel switches off the respective function.
  • A motor that is switched off by a wall pushbutton or timeout also switches off the associated SM8 channel.

rain sensor

Rain sensor inputs

A rain sensor can be connected to the input RAIN_INPUT (Rain sensor control input). The level activity can help with constants RAIN_INPUT_ACTIVE.

The query of the rain sensor control input can be with help a second control input RAIN_ENABLE (level activity above set the constant RAIN_ENABLE_ACTIVE). Only if the control input RAIN_ENABLE is active or the control command RAIN ENABLE, the rain sensor Control input also queried, otherwise ignored.

The rain sensor control input will only operate in automatic mode (s.u. Control command RAIN). Using the interface RAIN commands (except for RAIN AUTO) polls the rain sensor control input first off. The rain sensor control input is triggered either by the Control command RAIN AUTO or by changing the Control input RAIN_ENABLE re-enabled.

If rain message is activated (control input RAIN_INPUT or control- Command SchnittstelleRAIN ON), all engines of the type "window" (see engine control) closed. In addition, you can set with RAIN RESUME that the restored to the previous window positions after the end of the rain should be.

Control command "RAINSENSOR"

The two inputs can be overridden via control commands RAIN: RAIN ON | OFF

Simulates the rain sensor input: ON = Active, OFF = Inactive
RAIN ENABLE | DISABLE
Simulates the rain sensor query: ENABLE = query active, DISABLE = query inactive
RAIN AUTO
When using one of the o.a. If the automatic mode command (i.e., the rain sensor hardware input query) is turned off, the polling of the rain sensor hardware inputs can be re-enabled. The set simulation values ​​have no meaning as long as they are not used again.
RAIN RESUME <s> / FORGET
When RESUME is used, all motors of the type "window" are automatically opened to their previous position after the end of the rain. The value <s> determines (in seconds) how long to wait after the end of Regen before the DFF positions are restored. The restore function can be switched off with RAINSENSOR FORGET.

Command interface

The control program provides a command interface via the serial interface of the Arduino Uno. This is connected to the intranet via a WIZ110SR RS232-to-Ethernet Interface.

The following commands are available:

HELP [<cmd>|ALL]
Print command help
<cmd>
command for getting help
ALL
print full help
INFO
Print version
LOGIN [<password> [<timeout>]]
Login
<password>
use <password> to login
<timeout>
logout after <timeout> sec
LOGOUT
Logout
ECHO [ON|OFF]
Get/Set local echo
ON|OFF
set local echo ON or OFF
TERM [CR|LF]
Get/Set command terminator
CR|LF
set terminator to CR or LF
STATUS [ON|OFF]
Get/Set status messages
ON|OFF
set status messages ON or OFF
UPTIME [<uptime> [<h>]]
Get/Set system uptime
<uptime>
set uptime (in ms since start)
<h>
set operation hours
LED [<len> [<count> [<normal> [<rain>]]]]
Get/Set LED control
<len>
pattern bit time in ms
<count>
pattern bit count [1..32]
<normal>
normal blink pattern
<rain>
rain blink pattern
MOTOR [<m> [[T]OPEN|[T]CLOSE|TOOGLE|[GOTO ]<pos>|OFF|SYNC|STATUS]
Get/Set motor control
<m>
motor number [1..8]
<cmd>
can be
OPEN
start motor opening
CLOSE
start motor closing
TOPEN
toogle opening
TCLOSE
toogle closing
TOOGLE
Toogle anyway
[GOTO] <p>
goto position <p> (in %, 0-100)
OFF
stop motor
SYNC
set motor in a defined state
STATUS
get the current status
MOTORNAME [<m> [<name>]
Get/Set motor name
<m>
motor number [1..8]
<name>
motor name
MOTORTIME [<m> [<sec> [<overtravel>]]
Get/Set motor runtime
<m>
motor number [1..8]
<sec> maximum runtime [s]
<overtravel> overtravel time [s]
MOTORTYPE [<m>][WIN|JAL]
Get/Set motor type
<m>
motor number [1..8]
WIN|JAL
motor type
FS20 [<ch>]
Get/Set FS20 status
<ch>
FS20 channel number [1..(2*8)]
ON|OFF
set <ch> ON or OFF
PRG
set <ch> into programming mode
PB [<b>]
Get/Set pushbutton status
<b>
pushbutton number [1..(2*8)]
ON|OFF
set <b> ON or OFF
RAIN [AUTO|ENABLE|DISABLE|WET|ON|DRY|OFF|RESUME]
Rain sensor function
<cmd> can be
AUTO
rain detection enabled from input signals
ENABLE
enable rain detection
DISABLE
disable rain detection
WET|ON
start raining
,DRY|OFF
stop raining
RESUME
<s> auto-resume window position after rain was gone.
<s> is the delay (in sec) before resume starts.
FORGET
do not resume window position
Note: ON|WET, OFF|DRY, ENABLE or DISABLE disables AUTO mode
BACKUP
Create backup from EEPROM
RESTORE <addr> <data>
Restore data into EEPROM
<addr>
4-digit hex destination address
<data>
hex data to restore
FACTORY
Reset to factory defaults
REBOOT
Restart controller
PASSWD <current> <new> <retype>
Set password
<current>
old password
<new>
new password
<retype>
retyped new password

Links

Devices

Hardware

Software