2019-02-20 13:34:54 +01:00
# Dual magnetic stir controller
## Overview
2019-10-04 16:46:05 +02:00
This is the Arduino project to build a double magnetic stirrer based on 2 fans, a 1602 LCD display, a KY-040 encoder and an Arduino Nano and a special PCB designed in the Hobbybrauer-Forum.
2019-02-20 13:34:54 +01:00
< p align = "center" >
2019-10-04 16:47:01 +02:00
< img src = "https://github.com/micworg/stir/blob/master/images/stir+pcb.jpg" width = 700 >
2019-02-20 13:34:54 +01:00
< / p >
2019-10-04 17:05:03 +02:00
V2 supports dual voltage for the fans which increases the speed range.
2019-10-04 16:53:53 +02:00
In order to put the stirrer into operation you have to change the settings in stir.ino according to your setup (see below).
2019-02-20 13:34:54 +01:00
2019-10-04 17:13:03 +02:00
The stir V2 software is compatible with V1 hardware if you have used neither the RS232 Api nor the OFF0 and OFF1 relais pins.
2019-10-04 16:46:05 +02:00
## Part List
2019-10-04 16:47:39 +02:00
* 1x PCB "Stir V2.0"
* 1x Arduino Nano V3
2019-10-04 16:52:16 +02:00
* 1x Voltage regulator TE818 5-24V to 5V 3A step down buck converter
2019-10-04 17:45:22 +02:00
* 2x Relais Omron G5Q-1-EU 5DC switching printrelais 5 V/DC 5A
2019-10-04 16:47:39 +02:00
* 2x Diode 1N4148 Diotec
2019-10-04 16:52:16 +02:00
* 1x Electrolytic capacitor 1000µF/16V Yageo SE016M1000B5S-1015
2019-10-04 16:47:39 +02:00
* 2x Diode 1N5822 STMicroelectronics Schottky-Diode
2019-10-04 16:52:16 +02:00
* 4x Metal film resistor 10 KOhm 0,6 W
2019-10-04 17:45:22 +02:00
* 2x Fan BeQuiet SilentWings 3 120mm PWM Highspeed or Noctua NF-R8 Redux-1800 80mm PWM
* 1x Power supply 12V-16V DC / 2A
2019-10-04 16:52:16 +02:00
* 1x Built-in socket for plug-in power supply unit
2019-10-04 16:47:39 +02:00
* 1x I2C 16x2 Arduino LCD Display Module
2019-10-04 16:52:16 +02:00
* 1x Rotary encoder KY-040
2019-10-04 17:05:03 +02:00
* 2x Magnet mount (3D printed)
2019-10-04 16:52:16 +02:00
* 4x Neodymium magnet 20x10 mm (N52, 1 oder 2 mm dick)
2019-10-04 16:46:05 +02:00
2019-10-04 17:00:47 +02:00
In addition, a housing is required that can be individually designed according to possibilities and capabilities.
2019-10-04 16:46:05 +02:00
2019-04-30 08:04:20 +02:00
## Reference
2019-04-30 08:03:40 +02:00
2019-10-04 16:46:05 +02:00
This project was created based on an idea from the german Hobbybrauer-Forum and would not be possible without the ideas from there.
2019-04-30 08:03:40 +02:00
The forum: https://hobbybrauer.de/
The thread: https://hobbybrauer.de/forum/viewtopic.php?f=21& t=1456
2019-10-04 16:46:05 +02:00
Special thanks for development and testing:
* Herbert Schmid
* Adrian Sigel
* Jens Warkentin
* Bastian Werner
2019-02-25 19:20:47 +01:00
## Overview of Functions
2019-02-20 13:34:54 +01:00
All functions are controlled by the KY-040 encoder:
2019-03-20 10:24:55 +01:00
* **Short Press:** change between menu, stirrer 1 and stirrer 2
2019-02-20 13:34:54 +01:00
* **Turn when menu is selected**: change between menu items (SPEED, BOOST, BTIME, CATCH, CTIME)
2019-02-22 13:20:52 +01:00
* **Long press when menu is selected**: lock all functions (unlock also by long press)
2019-02-20 13:34:54 +01:00
* **When a stirrer is selected**:
* **SPEED**: turn sets speed, long press switches stirrer on or off.
* **BOOST**: turn sets boost speed, long press activates/deactivates the boost function (running time is shown in the display).
2019-03-20 10:24:55 +01:00
* **BTIME**: turn changes the boost time in minutes.
2019-02-20 13:34:54 +01:00
* **CATCH**: turn activates/deactivates the fishing function
2019-03-20 10:24:55 +01:00
* **CTIME**: turn changes the interval in minutes for the fish catching function
* **RTIME**: turn changes speed rise time in seconds (applies to power on, stirrer on, boost on and fish catching)
* **OTIME**: turn changes switch off time in hours (the timer activates immediately, 0 = switch off disabled)
2019-06-02 14:20:59 +02:00
* **RNVAL**: random value range (a random values in this range will be added to speed)
2019-03-29 13:44:32 +01:00
* **Other menu options**:
* **BRGHT**: LCD brightness
2019-02-20 13:34:54 +01:00
## Display Indicators:
* **Bottom Left**: Menu
2019-03-20 10:24:55 +01:00
* **Bottom Center/Right**: displays the set values for the stirrers depending on the selected menu item.
2019-02-22 13:20:52 +01:00
* **Top Center/Right**: displays the current stirrer speed (or 'OFF' or 'CAT' (Fishing)).
2019-03-20 10:24:55 +01:00
* **Top Left**: shows the remaining time of the boost or switch off function.
2019-02-20 13:34:54 +01:00
2019-02-20 16:47:53 +01:00
## Settings (in stir.ino)
2019-02-20 13:34:54 +01:00
2019-02-20 16:47:53 +01:00
|Value|Description|
|:----|:----------|
2019-03-11 09:16:11 +01:00
|`SPEEDINC`|increment of speed values when turning the encoder|
|`FANMIN`|fan minimum speed (should be a value at which the fan runs safely) (rpm)|
|`FANMAX`|maximum speed of the fan (it is important that this is the real maximum value of the fan) (rpm)|
2019-03-29 13:44:32 +01:00
|`BOFF`|if set boost off will also turn the normal mode off|
2019-03-29 13:46:55 +01:00
|`BINC`|boost time increment (min)|
|`CINC`|catch time increment (min)|
|`RINC`|rise time increment (sec)|
|`OINC`|off timer increment (hour)|
2019-03-11 09:16:11 +01:00
|`CATCHSTOP`|stop interval for stir fish catch function (ms)|
2019-03-29 13:46:55 +01:00
|`PWM0`, `PWM1` |PWM output pins for fan speed|
|`PWM2`|PWM output pin for LCD brightness control|
2019-03-11 09:16:11 +01:00
|`I0`, `I1` |interrupts for rpm measurement (2 and 3 for Leonardo and ProMicro / 0 and 1 for Uno)|
|`CLK`, `DT` , `SW` |pins for KY-040 encoder|
2019-10-04 16:46:05 +02:00
|`R0`, `R0` |voltage select relais pin|
|`RTHRES`|voltage switch threshold (rpm)|
2019-03-11 09:16:11 +01:00
|`RINTERVAL`|regulation interval (ms)|
|`RDELAY`|extra regulation delay when value changes (ms)|
|`RTOL`|regulation tolerance (rpm)|
2019-06-03 09:43:41 +02:00
|`RNDINTERVL`|randon value range change interval (ms)|
2019-03-11 09:16:11 +01:00
|`SINTERVAL`|speed measurement interval (ms)|
|`SAVERAGE`|speed measurement average|
|`SAVETAG`|parameter save identifier|
|`SAVEDELAY`|delay in seconds before parameter will be saved to EEPROM|
2019-03-29 13:44:32 +01:00
|`LCDB`|LCD brightness steps (10 values, 0=off, 255=max)|
2019-02-20 13:34:54 +01:00