PB3: termistor, zapojit mezi piny 1 a 2+3 konektoru PB3
PB4: ovládání motoru, zapojit mezi piny 2 a 3 konektoru PB4
-Motory lze řídit i přes PWM (viz dokumentace Timer/Counter 1,
-pin PB1 je pak OC1A, pin PB4 je OC1B. Doporučuju T/C1 časovat z PLL clock
-na 32 MHz, čímž se získá PWM o frekvenci 256 kHz, což by mělo na plynulé
-řízení motoru stačit.
-
-Termistory jsou čitelné přes A/D převodník (PB2 je ADC1, PB3 je ADC2).
-Podle typu termistoru použít vhodnou napěťovou referenci ADC (asi interní 1.1V).
-Před vstupem PB0, PB2 a PB3 je low-pass filtr z 220nF kondenzátoru
-a 15k odporu, což by mělo ořezávat frekvence vyšší než cca 50 Hz.
-Tentýž kanál ADC tedy nemá smysl vyhodnocovat častěji.
-
-Možná půjde využít i vestavěný teploměr (viz dokumentace A/D převodníku).
Programování:
=============
"jen" 100_000 přepsání (pozor na to při logování do EEPROM, ať se
příliš často nepřepisuje ta stejná adresa, například při zacyklení programu).
+
+Řízení motorů čerpadel:
+=======================
+Motory lze řídit buďto posíláním logické 1 nebo 0 na výstupy PB1, PB4,
+anebo by mělo být možné i plynulé řízení přes PWM (viz dokumentace
+Timer/Counter 1, pin PB1 je pak OC1A, pin PB4 je OC1B. Doporučuju
+T/C1 časovat z PLL clock na 32 MHz, čímž se získá PWM o frekvenci 256 kHz,
+což by mělo na plynulé řízení motoru stačit. Je případně možné použít i
+64 MHz, což má o něco větší odběr v klidu (asi o 2 mA). Nebo PLL clock
+zapínat jen na dobu, kdy má jet čerpadlo. Pozor na dostatečně velkou
+střídu PWM, aby se motor vůbec roztočil.
+
+
+Analogové vstupy:
+=================
+Analogové vstupy PB2, PB3 (ADC1, ADC3) jsou vybaveny low-pass filtrem
+z 220nF kondenzátoru a 15k odporu, což by mělo ořezávat frekvence vyšší
+než cca 50 Hz. Tentýž kanál ADC tedy nemá smysl vyhodnocovat častěji.
+Mezi +5V a horní pin analogového vstupu je umístěn 300K odpor, dolní pin
+je zapojený na zem. Podle toho je třeba vybírat součástku, jejíž odpor
+budeme měřit:
+
+Nejlépe je použít měření A/D převodníkem proti interní
+1.1V napěťové referenci. ADC má rozlišení 10 bitů, takže chceme
+na napěťové děličce dělící +5V pomocí 300K odporu a odporu čidla mít rozsah
+napětí od 0.001 do 1.1 voltu, což dává rozsah odporů cca 60 Ohmů až 84 kOhmů.
+Podle toho je potřeba volit druh čildla.
+
+U termistorů tomu odpovídají například tyto NTC termistory s odporem 10kOhm
+při 25 stupních - tímto pokryjí teploty -15 až 150 stupňů:
+http://www.gme.cz/ntc640-10k-p118-042
+http://www.ges.cz/cz/ntc-0-2-10k-GES05303342.html
+
+U fotoodporů pro detekci pouze denního světla je to víceméně jedno - i velké
+odpory mají na denním světle pod 1 kOhm:
+http://www.ges.cz/cz/ldr-05-75-GES05100338.html
+http://www.gme.cz/vt83n2-p520-059
+
+
+Digitální vstup pro plovák:
+===========================
+Vstup na pinu PB0 je také vybaven low-pass filtrem jako analogové vstupy,
+mělo by sloužit k odfiltrování přechodových jevů při spínání a rozepínání
+kontaktu. Možná ale bude i tak třeba udělat SW test na to, aby změněný stav
+sepnutí vydržel aspoň nějakou dobu (50 ms).
+
+Pro vstup je třeba mít zapnutý interní pull-up rezistor (příslušný bit
+v registru PORTB nastavit na jedničku).
+
+
+Náměty:
+=======
+- Použít interní teploměr (ADC4) jako odhad teploty vzduchu
+ (podle toho, kde bude zařízení umístěno).
+- Časování dělat přes watchdog, například s rozlišením 16 s:
+ watchdog probudí CPU (viz firmware "step-up" na stránce tinyboard),
+ je potřeba potvrdit. Druhý příchod watchdogu bez potvrzení může
+ resetovat CPU (pro případ zacyklení)
+- Proudové nároky: běží-li čerpadlo, nemá cenu řešit. Jinak PLL clock
+ má asi 6mA v 64MHz režimu, 2mA v 32MHz režimu, ADC má asi 2mA,
+ CPU taky 2mA, nějaké mA sežerou napěťové děličky u analogových vstupů.
+- Osadit LEDku pro signalizaci napájení? Cca 2-10 mA podle typu.
+- Regulace termistor + fotoodpor: fotoodporem poznat den/noc, termistorem
+ na vstupu od kolektoru do nádrže řídit vypnutí (až začne příchozí
+ teplota klesat, vypnout čerpadlo).
+- Regulace 2x termistor: zapnout čerpadlo, pokud za pár vteřin nezačne
+ růst teplota příchozí vody do nádrže nad teplotu odchozí vody,
+ vypnout čerpadlo a počkat hodinu, dvě.
+- Dívat se na stav registru MCUSR (viz logging.c) a rozlišovat, jestli
+ jsme se probudili resetem, power-on, watchdog resetem, brown-outem,atd.
+- Mít uložené regulační proměnné v eeprom a při ladění upravovat jen EEPROM,
+ ne program samotný.
+- a už mě to nebaví, stejně to nikdo nebude číst :-)
+