Witam,
daj sobie spokój z tym przerzutnikiem, nie jest Ci do niczego potrzebny. Zakładam, że masz BB, przyjrzyj się dokładnie rozdziałowi z Projektem Wielozadaniowym.
Jest już późno, więc w skrócie:
1. _delay_ms(750), nie jest w pętli głównej do niczego potrzebny.
2. Niepotrzebnie wywołujesz funkcję DS18X20_start_meas( DS18X20_POWER_EXTERN, NULL ) w kółko.
3. Masz timer programowy, użyj go właściwie. Wyrażenie sekundy%x oznacza resztę z dzielenia sekundy przez x, czyli tak jak masz w kodzie poniżej, dla parzystych sekund będzie pomiar, dla nieparzystych interpretacja ( uruchamianie tej pompy ).
4. Coś co jest większe od 49 jest też i większe od 46, poprawiłem warunek. Domyślam się, że pewnie chciałeś histerezę dla pompy, tak ?
5. Do tego pinu, do którego masz podłączone wejście przerzutnika D, podłącz bezpośrednio ten rezystor od anody diody optotriaka.
Poniżej kod z poprawkami:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Pozdrawiam, QuadMan.