Brouw controller

Geplaatst op door

20160312-DSCN5546Een brouw controller kan een goede hulp zijn bij het brouwen om de temperatuur van het maischen netjes te regelen en om de tijden bij te houden. Tegenwoordig zijn hiervoor diverse op een Arduino gebaseerde systemen te vinden. Een kloon van een Arduino Nano kost tegenwoordig nog maar €3,50.

De meest gebruikte software is die van Open ArdBir. Ik heb zelf ook een soortgelijk systeem gemaakt, maar dan met eigen software.

20160317-IMG_20160317_174252De reden dat ik zelf een versie ging maken is dat ik ook het spoelwater wil laten regelen door de controller. Dit kan heel goed door deze ketel alleen van energie te  voorzien wanneer de brouwketel geen energie nodig heeft. Op die manier kun je twee ketels die 2000 Watt of meer gebruiken op een enkele 230 volt groep gebruiken. Dat beide ketels niet tegelijk aangezet kunnen worden is in de software en in de hardware beveiligd.

Ik heb er ook voor gekozen om twee 1-wire bussen te maken voor twee DS18B20 sensoren, de Nano heeft uiteindelijk genoeg I/O poorten. Je kunt die sensoren ook samen op één bus zetten maar dan moet je in de software de adressen van die sensoren opslaan. Dit kost vrij veel kostbaar programma geheugen. Twee bussen is makkelijker en bovendien kun je dan zonder problemen sensoren omwisselen.

Inmiddels is de software gereed om er mee te brouwen wat ook door diversen gedaan wordt.

 

De software.

De software is grotendeels opnieuw geschreven en is een stuk compacter dan de Open ArdBir software. Deze software kan ook gebruikt worden op andere hardware dan die ik gebruik, in de sketch moeten dan wel de poorten aangepast worden aan die hardware en het werkt. In de sketch kun je ook het gebruikt van een spoelwater ketel uitzetten. (#define USE_HLT false).

Verbeteringen en veranderingen ten opzichte van de originele versie:

  • Alleen voor elektra.
  • 20 x 4 displays worden alleen ondersteunt.
  • Tijdens de maisch stappen is de PID altijd in gebruik, er is geen vol gas methode als de temperatuur te ver af is.
  • De PID regeling heeft een ruimer instelbereik, P van 0 tot 2048, I van 0 tot 128 en D van 0 tot 32768. Ook een aantal decimalen achter de komma. Hierdoor werkt de PID zoals het hoort. De standaard waardes zijn: P = 150, I = 1,5 en D = 15000.
  • Maisch stappen setup is vriendelijker. Eerst bepaal je of een bepaalde maisch stap wel of niet doorlopen moet worden, en als het “aan” is dan pas kun je de temperatuur en tijd instellen.
  • Geen PID regeling tijdens koken. Verhitten naar de kook is altijd 100%. Als de kook temperatuur bereikt is kan dit minder zijn, dit is in te stellen. Als de temperatuur onder de kook temperatuur komt wordt weer 100% gebruikt.
  • Er zijn nu 4 Whirlpool fases mogelijk. De instellingen worden opgeslagen in het geheugen voor de recepten. Iedere whirlpool fase kan zijn:
    1. 88..100 Celcius, minimum temperatuur 93.
    2. 71..77 Celcius, minimum temperatuur 74.
    3. 60..66 Celcius, minimum temperatuur 63.
    4. Na de laatste koeling fase, geen minimum temperatuur.
  • Een conditionele define in de sketch voor de display taal. Standaard is dit Engels, Nederlands kan aangezet worden.
  • Een conditionele define om een extra SSR en DS18B20 sensor te gebruiken voor spoelwater. De verwarming gebeurt als er niet verwarmt wordt in de maisch ketel, dus het maximale stroomverbruik is die van de zwaarste ketel.
  • Verbeterde en meer robuuste uitlezing van de 1-wire sensoren.
  • Bij handbediening als de temperatuur voor de MLT bereikt is gaat er een klok lopen. Deze heeft geen functie maar is alleen een indicatie.
  • De code voor Automatic mode is nu State code. Dit scheelt geheugen en de code is beter te onderhouden.
  • De EEPROM opslag heeft een handtekening en versie markeringen. Hierdoor worden upgrades naar nieuwere versies eenvoudiger. Omdat dit nu zo is, worden de recepten van andere systemen (Open-Ardbir oa) gewist! Deze waren verkeerd opgeslagen.
  • Alleen gewijzigde waarden worden in EEPROM geschreven (update mode), dit moet de levensduur van de EEPROM aanzienlijk verlengen.
  • Het recepten menu is gebruiksvriendelijker. Het onthoud nu het laatst gebruikte recept. Ook is er nu een aparte Save en Save-as keuze.
  • Alleen nog Celsius.
  • De koel temperatuur wordt opgeslagen als een Auto/Recept instelling.
  • De timing wordt gedaan met een interrupt timer van de secTimer library. Dat werkt stukken beter als de oude millis() methode.
  • Een conditional define (USE_PumpPWM true/false) waarmee de pomp snelheid electronisch geregeld kan worden. Default false, dus voor relais. Indien true moet je zorgen voor een elektronische vermogens regeling.
  • De laatst gebruikte temperatuur in Manual mode wordt opgeslagen voor de volgende keer dat Manual mode gebruikt wordt.

De software en handleiding is te vinden op Github. Om de software te compileren in de Arduino IDE moet je de volgende extra bibliotheken installeren:

  • OneWire
  • PID
  • secTimer

 

Het Schema.

Een pdf bestand van het schema is hier te zien: MBSE-ArdRims-Schema.

Enkele opmerkingen. De schakeling rond de transistoren Q3, Q4 en Q5 sturen de pomp. Dit is een stroombegrenzer, de uitgang is dus kortsluitvast. De maximale stroom wordt bepaald door de waarde van R10. Deze is bij mij 0,5 Ω en moet 0,5 Watt zijn. De maximale uitgangsstroom is met deze waardes ongeveer 1,6 Ampère. Dit is voldoende voor een zogenaamde solar pomp. Ik had dit natuurlijk ook met een relais kunnen doen, maar ik heb dat bewust niet gedaan. Nu is het mogelijk om de pomp te regelen met een PWM signaal. De L1 rf-choke is een smoorspoel zoals je die ook in computer voedingen vind. Compleet met condensatoren dempt dit het meeste gepiep wat de pompmotor laat horen door het PWM signaal wat 1000 Herz is. Deze schakeling werkt, maar in de praktijk moet het allemaal nog blijken met brouwen. Ook in de software wordt hier nog geen gebruik van gemaakt.

Jumper LK1 (Buz) is om de buzzer aan of uit te zetten.

Jumper LK2 (Saf) is om de hardware beveiliging in te schakelen zodat nooit beide SSR’s tegelijk aangestuurd kunnen worden. Jumper eruit en je kunt wel beide SSR’s tegelijk aansturen. Als je met twee ketels werkt die samen meer dan 3600 Watt verbruiken zou ik die jumper erin laten.