Arduino přestavba zavařovacího hrnce concept ZH0020

Seznam článků

Byl jsem požádán kolegou o přestavbu zavařovacího hrnce "Concept ZH0020" z několika důvodů. Jaké řešení použít? to je jasné použijeme Arduino! :-)

Původní verze hrnce

Nová verze hrnce

  • FREE (v příloze program FW1.0 hex pro Atmega 328)
  • DONATE (v příloze navíc deska spojů Eagle, Gerber, 3D data, STL, GCODE pro PET-G, zdrojový program pro Arduino)

Zavařovací hrnec má několik neduhů

  • časovač nesepne v okamžiku docílení nastavené teploty, ale ihned když ho nastavíme
  • výstupní plastový kohoutek po nějakém čase začne netěsnit, nebo naopak nejde vypustit voda z nádoby
  • při spínání topné spirály (při regulaci teploty) dochází k rušení ostatních spotřebičů v okolní síti
  • pouze orientační čas časovače s ohledem na použití to ale nejspíše nevadí (sem tam +- nějaká ta minuta)
  • regulace pomocí bimetalu nebude tak přesná jako s pomocí elektroniky

Řešení pomocí Arduina (deska Arduino UNO přenesená na plošný spoj Atmega 328)

  • přehledný LCD displej 16x2 znaků (s podsvětlením)
  • měření teploty a regulace teploty pomocí čidla DS18B20 (-127 až +127° Celsia)
  • nastavení teploty, času pomocí tlačítek v kroku +- 5° Celsia, +- 5 minut
  • signalizace stisknutí tlačítek, chyba čidla a ukončení programu (pomocí piezo pípáku)
  • řízení výstupu bezkontaktně pomocí triaku (spínání v "0") a možností PWM řízení.
  • ukládání nastavených údajů do paměti (EEPROM), teplota, čas a celkový čas (motohodiny)

!!!! POZOR zařízení pracuje s životu nebezpečným napětím 230V !!!!

Video ukázka z provozu hrnce


Deska spojů řídící části


Deska spojů silové části

Desky spojů

Pozor! uvedený chladič pro proud 8A nestačí a je nutné použít větší - viz níže!

Pokud není nalezeno čidlo teploty DS18B20


 


Fotografie z rozebrání hrnce (na obrázku je již kohout v provedení kov namísto plastu).

Teplotu lze nastavovat od 50 do 100 Stupňů a čas od 20 do 120 minut (případně se dá nastavit na trvalý provoz)

Made in P.R.C. (People's Republic of China) odpovídá kvalitě zpracování.

Snímač teploty a tepelná pojistka (teplota se přenáší na terčík a následně trubičkou do mechanického termostatu). Tepelná pojistka proti přehřátí je schovaná po terčíkem v bílém opředení - není mi jasné co tam dělají ty stahovací pásky (při kolizní teplotě se musí spolehlivě tavit - hořet?).

Pochvalou je použití všech vodičů v provedení s opředením. Chvála bohu :-) nikde jsem nenalezl tavnou hmotu (tolik využívanou v PRC).

Spínač uprostřed pouze odpojuje zvonek (lze vypnout zvukovou informaci).

Test na stole s novou elektronikou

Klema, která drží čidlo upevněné v horní části kruhového plechu (aby dno hrnce, které tlačí na snímač nezatlačilo čidlo)

!!!!!!! Uvedený chladič neuchladí triak !!!!! ověřeno při prvním pokusu -> použit větší chladič (dočasný - plech Al)

P=1.8 kW (změřený výkon souhlasí s uvedeným na štítku hrnce)

Výpis ze sériové linky (ladění, krok 5 sec)

Set = požadovaná hodnota

In = teplota z čidla DS18B20

Out = výstup z PID regulátoru v rozsahu 0-5000ms

Kp = zesílení odchylky

Ki a Kd není použito

Video z testu


Fotodokumentace instalace elektroniky do hrnce

Pro možnost ladění jsem na řídící desku přidělal převodník USB/UART pro další možné ladění programu...


Rámeček je vytištěn na tiskárně Pruša i3 MK3 z materiálu PET-G v provedení zelené barvy (jako hrnec).


  • Aktuální verze FW je 1.01 (k 22.5.2019)

Oprava - pokud je vadné čidlo DS18B20 hrnec nebude topit (LCD zobrazovalo správně, ale topení i přes chybu seplo)

  • Výchozí verze FW je 1.00 (k 13.5.2019)

Po zapnutí do zásuvky 230V se na LCD zobrazí reklama (pihrt.com a verze FW), následně pípnutí a volba z menu

a) RUČNĚ (nastavení teploty, času a start). Tlačítkem "sel" vybereme nastaveni teploty +- tl. (30-100 °C), tlačítkem "sel" vybereme nastaveni doby +- tl. (5-120 min), pomocí tlačítka "sel" odstartujeme.

b) SEZNAM (výběr z 33 položek a následně start). Pomocí tlačítek "nahoru, dolu" vybereme pokrm a pomocí tlačítka "sel" odstartujeme.

Následně hrnec změří teplotu, pokud je čidlo DS18B20 vadné, zobrazí se na LCD ve smyčce text "chyba cidla!" a 1 sec pípnutí. Hrnec nebude dále pokračovat!

Pokud je vše OK hrnec pípne a začne se předehřívat na požadovanou teplotu.

Při dosažení teploty 3 °C před nastavenou teplotu se spustí nastavený odpočet (nastavená doba).

Pokud je čas menší než minuta, tak se zobrazuje zbytek ve vteřinách.

Dohřátí na požadovanou teplotu trvá delší dobu (aby nenastal při topení "překmit" přes nastavenou teplotu). Pokud bychom čekali na teplotu přesně, tak by v celkovém čase hrnec zavařoval delší dobu než bylo v nastavení (zavařeniny jsou již ve vodě ponořeny a pokud budeme čekat dalších 10 minut na přesné donastavení teploty, tak bude celkový čas vaření zavařenin delší).

Příklad

Zapnu hrnec, nastavím program 90°C/120 minut.

Hrnec do 85°C topí na maximum (LED svítí nepřetržitě) - tato doba trvá cca 25 minut.

Od 85°C do 90°C se zmenšuje výkon do topení a dohřev z 85°C do 90°C trvá dalších cca 15minut (po této době navíc by se teprve spustil odpočet - tedy při dosažení 90°C, ale tím by se celková doba prodloužila o 15 minut co zabralo dostavení teploty na přesnou hodnotu a mohlo by dojít k rozvaření zavařenin).

Proto se odpočet spustí již 3°C před dosažením nastavené teploty. 15 minut se tedy započítá do doby zavařování.

Po ukončení odpočtu se hrnec vypne a zobrazí celkový počet naběhaných hodin (motopočítadlo). pro další zavařování se stejným programem stačí 3x stisknout tlačítko "sel" teplota a čas zůstává nastaven (historie), nebo si v menu zvolíme jiný druh zavařenin.

Hrnec reguluje teplotu pomocí PID regulátoru a spínání triaku topení (v rozmezí 0-5 sec dle teploty - odchylky).

Nepřesnost regulace je cca +- 0,5 až +-2°C (dle toho zda máme nastaveno například 60°C, nebo 100°C). Při testech s vodou se například nastavená teplota 80°C pohybovala od 78°C do 79,5°C.

 

Nastavení pojistek programátoru a Arduino IDE

Arduino IDE 1.8.8-1.8.9 www.arduino.cc, deska UNO (Atmega 328), verze: avr-gcc\\5.4.0-atmel3.6.1 AVR board 1.6.23
pojistky:  hfuse:0xDE lfuse:0xFF efuse:0xFD (07)