Witam,
Buduję sterownik pieca, który posiada dosyć nietypowy czujnik temperatury - nie ważne jaki, zasada jest taka: opór z czujnika jest tym większy im niższa jest temperatura. Sterownik ma za zadanie wyłączyć dmuchawę jeśli temperatura spadnie poniżej granicy jaką określa Rx . I teraz chciałbym do tego wykorzystać ATtiny2313 i jego komparator. Lecz komparator działa tak że jeśli AIN0 = AIN1 to wtedy podawane jest 0 na wyjściu i jeśli zbuduję układ jak na shemacie to procesor wyłączy mi układ jak opór z czujnika bedzie równy Rx. Taki układ bedzie mi dobrze działał w tej roli? Co trzeba zrobic żeby komparator realizował mi taki warunek AIN0 =< AIN1? Bo co jeśli temperatura bedzie spadać tak szybko że "przeskoczy" mi tą wartość Rx wtedy czujnik nie wyłączy dmuchawy.. Co powinienem zrobić? Proszę o pomoc każda podpowiedz jest cenna
[ATtiny2313] komparator analogowy
[ATtiny2313] komparator analogowy
- Załączniki
-
- schemat2.GIF
- (2.06 KiB) Pobrany 8160 razy
Kompaktor wbudowany w procka '2313 działa inaczej.
Do dyspozycji mamy dwa ośmiobitowe porty we-wy.
No prawie dwa. Port B jest kompletny (ośmiobitowy), natomiast w porcie D (jak pewnie już zauważyłeś) brakuje jednego bitu.
Jeśli będziesz chciał odczytać stan tego brakującego bitu, to odczytasz wartość wygenerowaną przez kompaktor analogowy.
Wartość ta będzie 1 jeśli AIN1<<AIN0, lub 0 jeśli AIN1>>AIN0 (albo całkowicie odwrotnie
). Przy podobnych napięciach należy sprawdzić, co dokumentacja mówi o nieliniowości kompaktora.
Mianowicie w zależności od wartości jednego z napięć, temperatury otoczenia, a nawet napięcia zasilania, należy uwzględnić wpływ rzędu kilku mV na wynik porównania.
Teoretycznie wartości wejściowe nigdy nie będą równe, więc na wyjściu kompaktora nie wystąpi stan pośredni pomiędzy 0, a 1.
Oczywiście do działania kompaktora musi być on włączony (można go programowo wyłączyć w celu oszczędzania energii), a piny wejściowe kompaktora ustawione jako wejścia (ustawienie ich jako wyjścia poda ten stan na wejścia kompaktora).
Możesz też załączyć rezystory pull-up, co nieznacznie zmieni wartości napięć badanych. Tak można sprawdzać kilka progów temperatury i zrealizować coś w rodzaju histerezy.
Do dyspozycji mamy dwa ośmiobitowe porty we-wy.
No prawie dwa. Port B jest kompletny (ośmiobitowy), natomiast w porcie D (jak pewnie już zauważyłeś) brakuje jednego bitu.
Jeśli będziesz chciał odczytać stan tego brakującego bitu, to odczytasz wartość wygenerowaną przez kompaktor analogowy.
Wartość ta będzie 1 jeśli AIN1<<AIN0, lub 0 jeśli AIN1>>AIN0 (albo całkowicie odwrotnie
Mianowicie w zależności od wartości jednego z napięć, temperatury otoczenia, a nawet napięcia zasilania, należy uwzględnić wpływ rzędu kilku mV na wynik porównania.
Teoretycznie wartości wejściowe nigdy nie będą równe, więc na wyjściu kompaktora nie wystąpi stan pośredni pomiędzy 0, a 1.
Oczywiście do działania kompaktora musi być on włączony (można go programowo wyłączyć w celu oszczędzania energii), a piny wejściowe kompaktora ustawione jako wejścia (ustawienie ich jako wyjścia poda ten stan na wejścia kompaktora).
Możesz też załączyć rezystory pull-up, co nieznacznie zmieni wartości napięć badanych. Tak można sprawdzać kilka progów temperatury i zrealizować coś w rodzaju histerezy.
Nie wiem gdzie ty takie rzeczy wyczytałeś.M@rek pisze:Jeśli będziesz chciał odczytać stan tego brakującego bitu, to odczytasz wartość wygenerowaną przez kompaktor analogowy.
Po spełnieniu warunku AIN0>AIN1 komparator generuje przerwanie i ustawia flagę co można sobie odczytać w rejestrach i zareagować na wystąpienie przerwania. Dodatkowo można sobie sterować Timerem1.
Aby komparator porównywał wartości analogowe trzeba ustawić bity w rejestrze DIDR na 1.
Żadnych pullupów nie włączaj. Jedynie ustaw piny AINx jako wejścia.
Tak w ogóle do zwykłego załączania wentylatora wystarczy TL061 plus jakiś przekaźnik na wyjściu
DS18B20 to byłoby najlepsze rozwiązanie, ale nie najprostsze. Z obsługą 1-wire jest trochę kombinowania (nie w Bascomie), chyba że są jakieś biblioteki gotowe.
Właśnie sam zaczynam podobny projekt. Sterowanie pompą, pomiar właśnie na dallasie, docelowo jeszcze przesyłanie danych (temp, stan pompy, tryb pracy) przez moduły 433MHz do urządzenia zamontowanego w mieszkaniu.
Właśnie sam zaczynam podobny projekt. Sterowanie pompą, pomiar właśnie na dallasie, docelowo jeszcze przesyłanie danych (temp, stan pompy, tryb pracy) przez moduły 433MHz do urządzenia zamontowanego w mieszkaniu.
U mnie raczej DS nie wchodzi w grę ponieważ czujnik mam wbudwany w piec i nie chcę go wymieniać a aż tak dokłdanej temperatury nie potrzebuję, chodzi tylko o to aby wyłaczyć dmuchawę kiedy zgaśnie ogień. Dodam że całość programu piszę w asm tak że obsługa tez nie za prosta by była. Gdybym dysponował czymś większym niż Attiny to bym zapewne zrobił to na przetworniku ADC
Może uda mi się to zrobić na tym komparatorze
snow, bardzo mi pomogłeś wielkie dzięki
snow, bardzo mi pomogłeś wielkie dzięki
Chyba włączyć dmuchawę kiedy temperatura spadnie poniżej zakresu dryfu (hiserezy). Bo jak zgaśnie ogień to już trochę po zabawie. Na komparatorze też się da zrobić przetwornik AC i to nawet niezły. Musisz tylko wykorzystać jedne z Timerów jako PWM do którego podłączysz obwód RC na którym w zależności od współczynnika wypełnienia będzie się zmieniać napięcie. To napięcie podasz na jedno z wejść komparatora i będziesz je porównywał z tym z czujnika, kiedy będą sobie równe to znaczy że wartość wpisana do PWMa jest wynikiem pomiaru takiego przetwornika. Dokładnie było opisane jak to zrobić na Mikroprocesorowej Oślej Łączce, właśnie na ATTiny2313.
Szczerze podziwiam cię. Ja jak bym miał coś robić przy piecu to kupił bym gotowy programowany sterownik z INTROLa za 300zł. I w jeden dzień wszystko by hulało.
Podaj jaki to jest typ czujnika, termopary i o jakiej charakterystyce
;
Szczerze podziwiam cię. Ja jak bym miał coś robić przy piecu to kupił bym gotowy programowany sterownik z INTROLa za 300zł. I w jeden dzień wszystko by hulało.
Podaj jaki to jest typ czujnika, termopary i o jakiej charakterystyce
No tak masz rację
sterownik juz działa ale chyba rzeczywiście bede musiał kupić tego dallasa bo chce bardziej podrasować ten sterownik. Chcę dodać do układu wyświetlacze 7seg zeby móc sprawdzać aktualną temp. Wiem czytałem o tym rozwiązaniu w EP w artykule "Rejestrator przebiegu analogowego do TV" tam właśnie było coś takiego zrealizowane na AT90S2313. Podziwiam tego człowieka który to wymyślił bo rzeczywiście trzeba miec łeb na karku żeby zrobić oscyloskop na procku bez ADC i to jeszcze do TV gdzie na wszystko jest tak mało czasu
Co do czujnika to nie wiem co to, jakiś termistor to chyba jest
Co do czujnika to nie wiem co to, jakiś termistor to chyba jest