diff --git a/README.md b/README.md index dffbcf1..11758ff 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,21 @@ In order to put the stirrer into operation you have to change the settings in st ## Reference -This project was created based on an idea from the Hobbybrauer-Forum and would not be possible without the ideas from there. +This project was created based on an idea from the german Hobbybrauer-Forum and would not be possible without the ideas from there. The forum: https://hobbybrauer.de/ The thread: https://hobbybrauer.de/forum/viewtopic.php?f=21&t=1456 +Special thanks for development and testing: + +* Herbert Schmid +* Adrian Sigel +* Jens Warkentin +* Bastian Werner + +Successor project of: https://github.com/micworg/stir + ## Overview of Functions All functions are controlled by the KY-040 encoder: @@ -61,8 +70,8 @@ All functions are controlled by the KY-040 encoder: |`PWM2`|PWM output pin for LCD brightness control| |`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| -|`OFF0`, `OFF1`|these pins will be set if the fan is off| -|`OFFSTATE`|off state (LOW/HIGH)| +|`R0`, `R0`|voltage select relais pin| +|`OFFSTATE`|voltage switch threshold (rpm)| |`RINTERVAL`|regulation interval (ms)| |`RDELAY`|extra regulation delay when value changes (ms)| |`RTOL`|regulation tolerance (rpm)| @@ -73,71 +82,3 @@ All functions are controlled by the KY-040 encoder: |`SAVEDELAY`|delay in seconds before parameter will be saved to EEPROM| |`LCDB`|LCD brightness steps (10 values, 0=off, 255=max)| -## API commands - -Commands are colon separated an can be send via USB/Serial - -|Command|Description| -|:------|:----------| -|`info`|returns a colon separated string with all parameters (see below)| -|`version`|returns the software version| -|`on:<0/1>`|switch stirren on| -|`off:<0/1>`|switch stirren off| -|`bon:<0/1>`|switch boost mode on| -|`boff:<0/1>`|switch boost mode off| -|`speed:<0/1>:`|set stirrer speed (FANMIN-FANMAX rpm)| -|`bspeed:<0/1>:`|set stirrer boost speed (speed-FANMAX rpm)| -|`btime:<0/1>:`|set boost time (0-60)| -|`con:<0/1>`|switch catch mode on| -|`coff:<0/1>`|switch catch mode off| -|`ctime:<0/1>:`|set catch mode interval (60-240 min)| -|`rtime:<0/1>:`|set speed rise time (0-240 sec)| -|`rnval:<0/1>:`|set randon value range (0-1000 rpm)| -|`otime:<0/1>:`|switch stirrer off after time in hours (1-99 hour, 0 deactivates switch off)| - -All commands return a colon separated string with all current parameters: - -|Element|Stirrer|Variable in stir.ino|Description| -|:------|:------|:-------------------|:----------| -| 0|0|`F[0]` |state (0=on, 1=off)| -| 1|0|`v[0]` |speed (rpm)| -| 2|0|`b[0]` |boost speed (rpm)| -| 3|0|`rpm[0]` |rpm| -| 4|0|`xpm[0]` |averaged rpm| -| 5|0|`r[0]` |regulation value| -| 6|0|`bstate[0]`|boost state (0=on, 1=off)| -| 7|0|`btime[0]` |boost time (min)| -| 8|0|`cat[0]` |fish catch mode state (0=on, 1=off)| -| 9|0|`ctime[0]` |fish catch time interval (min)| -|10|0|`rtime[0]` |speed rise time (sec)| -|11|0|`otime[0]` |switch off time (hour)| -|12|0|`rnval[0]` |random value range (rpm)| -|13|0|`rnd[0]` |current random value (rpm)| -|14|0| |boost remain (sec)| -|15|0| |off timer remain (sec)| -|16|1|`F[1]` |state (0=on, 1=off)| -|17|1|`v[1]` |speed (rpm)| -|18|1|`b[1]` |boost speed (rpm)| -|19|1|`rpm[1]` |rpm| -|20|1|`xpm[1]` |averaged rpm| -|21|1|`r[1]` |regulation value| -|22|1|`bstate[1]`|boost state (0=on, 1=off)| -|23|1|`btime[1]` |boost time (min)| -|24|1|`cat[1]` |fish catch mode state (0=on, 1=off)| -|25|1|`ctime[1]` |fish catch time interval (min)| -|26|1|`rtime[1]` |speed rise time (sec)| -|27|1|`otime[1]` |switch off time (hour)| -|28|1|`rnval[1]` |random value range (rpm)| -|29|1|`rnd[1]` |current random value (rpm)| -|30|1| |boost remain (sec)| -|31|1| |off timer remain (sec)| -|32| | |software version| -|33| | |uptime (ms)| -|34| | |0=ok, 1=error| - -## Schematics - -

- - -

diff --git a/images/.DS_Store b/images/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/images/.DS_Store differ diff --git a/nanoshield/images/.DS_Store b/nanoshield/images/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/nanoshield/images/.DS_Store differ diff --git a/stir.ino b/stir.ino index 9e7b895..14d6f2f 100644 --- a/stir.ino +++ b/stir.ino @@ -381,8 +381,11 @@ void slcd(int x,int y, int l,String s) { /////////////////////////////////////// } void calcramp(int i) { ///////////////////////////////////////////////////////////// calculate speed ramp value - xb[i]=b[i];if (bstate[i]) xb[i]=cut(((b[i]-v[i])/(rtime[i]*1000.0)*(MS-bts[i]))+v[i],v[i],b[i]); - xv[i]=v[i];xv[i]=cut(((v[i]-FANMIN)/(rtime[i]*1000.0)*(MS-vts[i]))+FANMIN,FANMIN,v[i]); + xb[i]=b[i]; + int rt=rtime[i]?rtime[i]:1; + if (bstate[i]) xb[i]=cut(((b[i]-v[i])/(rt*1000.0)*(MS-bts[i]))+v[i],v[i],b[i]); + xv[i]=v[i]; + xv[i]=cut(((v[i]-FANMIN)/(rt*1000.0)*(MS-vts[i]))+FANMIN,FANMIN,v[i]); if (rnval[i]>0 && xv[i]>=v[i]) xv[i]=cut(xv[i]+rnd[i],FANMIN,FANMAX); }