Basement ventilation system - control unit [140432]

This is the second part of our version of the project presented in the original posting from Tueftler, see http://www.elektor-labs.com/project/feuchtegesteuerte-kellerl-ftung-humidity-basement-ventilation-140154.13770.html.
This is the second part of our version of the project presented in the original posting from Tueftler, see http://www.elektor-labs.com/project/feuchtegesteuerte-kellerl-ftung-humidity-basement-ventilation-140154.13770.html. The main reason for redesigning the complete project is that we designed lots of PCB’s with a microcontroller, LCD and switches before, and that our Platino board was already designed to be a universal (Arduino) board for many applications. We presented the CC2A humidity/temperature BoB earlier (http://www.elektor-labs.com/project/cc2a-humidity-sensor-bob-140154.14269.html), as a replacement for the more expensive HYT-939 used in the original project. In this design we will build the central control unit for the ventilation system. The Platino board will read relative humidity and temperature values form two CC2A BoB’s. It calculates the absolute humidity (in g/m3) inside and outside, and provides logic signals for opening/closing a window and switching a fan on/off to keep the humidity in the basement as low as possible. The power drivers for controlling the window (motor + gear) and the fan will follow later. Tueftler uses the following criteria for the system:
- H²O in g/m³ inside < outside , fan off & window closed
- H²O in g/m³ inside > outside , fan on & window open
- error in measurement (e.g. sensor missing): fan off & window open
- relative humidity inside < 65%: fan off (save power) & window open
- Temperature inside < 3°C : fan off & window closed (frost protection)
Since the measurements are taken every 10 minutes (except in situations where the values appear to be faulty, like when a sensor is missing), it’s not really necessary to add hysteresis to the system. But maybe it's a good idea to make some of the parameters/thresholds in the system adjustable, like the temperature threshold for activating frost protection. Ideas, suggestions and comments are appreciated…
Discussion (3 commentaire(s))
Lucky il y a 10 ans
There's not much extra hardware needed to control the window actuator and fan for our ventilation system, hardly enough to design a tailor-made PCB for the second part of this project. That's why we designed a shield for the Platino not only for this project, but also for future development and prototyping with our Versatile Board for AVR Microcontrollers. It's designed to fit and to be mounted on the processorboard, connecting all four Arduino Uno expansion connectors plus the eight PortA I/Os and PC6/7 for larger controllers (ATmega164/324/644/1284) to this prototyping board. There's also a PCB mounted barrel jack connected to the voltage regulator on the Platino board, a hole to adjust the LCD's contrast trimmer and some larger pads to accomodate three 2-way terminal blocks.
For the window actuator we have one relay for driving its DC motor for opening and a second relay for closing the window, the fan only needs one relay to switch it on/off.
The two temperature/humidity sensors are simply connected to 4-pin headers (two I2C lines and two for power supply). CAT5 network cable will do fine for reliable communication with several meters bus length.
For the end switches for the window actuator we added some simple R/C filtering to suppress spikes/noise on the switch inputs. It is also recommended to use shielded cable to connect the switches. The ventilation system's software also supports actuators that switch off automatically without any feedback to the processor board. In this case a user adjustable time-out is implemented after which the microcontroller will release the control lines for the motor. This time-out is also used for actuators with feedback, as safeguard to switch the motor off in case of failure of the end switches.
140433 Top and Bottom in black for DTP.pdf (66kb)
140433 Compositions in colour for DTP.pdf (91kb)
BOM-140433-1 Basement ventilation motor V1.0.zip (10kb)
Lucky il y a 10 ans
Although the power stages for these devices will be dealt with in a separate project, it is important to consider the number of control lines we need to drive the power stages.
The fan control is easy, a logic level (i.e. one Arduino port pin) for switching on/off will do.
However, the window actuator is a different story. A search on the internet learned that there are many different types commercially available, and of course: there will always be people who want to build their own mechanical construction. All in all it will be difficult to consider all possible actuators in the logic control system we are designing now.
Most of the actuators I found have a 12V or 24V DC (or even 36V) motor for driving some mechanics for opening and closing. This means that two logic lines (one for CW, one for CCW rotation) will do under all (??) circumstances.
Every actuator has some means of detecting both 'open' and 'closed' position.
In many cases there will be two (micro-) switches that will be actuated as soon as either position is reached, the feedback from these switches (i.e. two more logic levels) will signal to the controller that the motor must be switched off.
Other actuators have built-in end point detection, mostly based on current protection if the motor shaft is jammed (end of mechanical range). These devices do not provide any feedback to the controlling hardware, which means that the controller should have a time-out after which the actuator is assumed to have reached the Open (or Closed) position. The motor control signals should be switched off then.
And last but not least there are actuators with one built-in detector, and one feedback switch for the other side of its mechanical range.
All these options will be covered in the control software, a one-time adjustment procedure that must be made on first power-up, and will be stored in the Arduino’s internal EEPROM. If necessary it can be changed by keeping the rotary encoder switch pressed during reset.
Lucky il y a 10 ans
Tueftler il y a 9 ans
Errni il y a 9 ans
Tueftler il y a 9 ans
Errni il y a 9 ans
Lucky il y a 10 ans
KellerAssel il y a 10 ans
Tueftler il y a 10 ans
Lucky il y a 10 ans
KellerAssel il y a 10 ans