Oświetlenie Akwarium

co i jak zrobiłem...
Marcin S.
Posty: 435
Rejestracja: piątek 12 wrz 2008, 10:11

Post autor: Marcin S. »

A filtrujesz odczyty? Np. filtrem 1-szego rzędu

x = a * x(k) + (1-a) * x(k-1)

x(k) - odczyt w bieżącym kroku
x(k-1) - odczyt w kroku poprzednim
a - współczynnik filtra z zakresu 0..1

Potem podstawiasz tylko x(k-1) = x i już.

Stosowałem do filtrowania temperatury, z założenia wolno zmiennej. A zmieniając a masz wpływ na stopień wygładzenia przebiegu.

Pozdrawiam
M.
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Tak stosuję uśrednianie 16 ostatnich elementów na zasadzie
T1 - 15 pomiarów
T=ADC
T1 = T1 + T
T = T1 / 16
T1 = T1 - T
T jest wyświetlane
Tylko, że chyba za często próbkuję...
Może odczyt zrobię z przerwaniu generowanym co 1 s...

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Komarek34
Posty: 456
Rejestracja: czwartek 26 sie 2010, 23:30
Lokalizacja: Rybnik

Post autor: Komarek34 »

Sterownik super.
Zacznij go sprzedawać na forum o morszczynie a zarobisz na tym taczkę kaski :mrgreen:
Pozdrawiam
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Komarek34 pisze:Sterownik super.
Zacznij go sprzedawać na forum o morszczynie a zarobisz na tym taczkę kaski :mrgreen:
Muszę go jeszcze dopracować... poza tym, jakoś nie chce mi się... ;)

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
ElSor
Site Admin
Posty: 5041
Rejestracja: niedziela 13 wrz 2009, 12:52
Lokalizacja: Ozimek

Post autor: ElSor »

Pyra pisze:Muszę go jeszcze dopracować... poza tym, jakoś nie chce mi się... ;)
Niech tylko dostaną cynk a nie będzie "że boli" albo się nie chce :razz:
Marcin S.
Posty: 435
Rejestracja: piątek 12 wrz 2008, 10:11

Post autor: Marcin S. »

Nie ma sensu probkowac częściej niż np. 10s. Jaka jest inercja akwarium, tzn. po jakim czasie od włączenia grzalki temperatura zaczyna się zmieniać - pewnie kilkadziesiąt sekund.

A filtr wypróbuj, lepszy niż zwykła średnia i zajmuje mniej kodu.

Pozdrawiam
M.
Awatar użytkownika
greg
Posty: 3535
Rejestracja: środa 08 paź 2008, 00:16
Lokalizacja: Wrocław
Kontakt:

Post autor: greg »

Marcin S. pisze:A filtr wypróbuj, lepszy niż zwykła średnia i zajmuje mniej kodu.
Z tym twierdzeniem "mniej kodu" to bym uważał. Masz tam mnożenie, w dodatku liczb zmiennoprzecinkowych :)
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Od rana (10:00 :mrgreen: ) robię próby, podłączyłem lampkę halogenową zamiast grzałki i ogrzewam nią kawałek aluminiowej rurki, do której wsadziłem czujnik temperatury.
Wskazania temperatury są normalne, a po położeniu na akwarium, znów jaja. Podejrzewam, że indukują się jakieś zakłócenia od świetlówek (dławiki)... :roll: Uśrednianie wyników mogło by nic nie pomóc, jedynym wyjściem w takiej sytuacji jest odrzucanie wyników różniących się za bardzo od średniej, tylko wtedy może się zdarzyć, że w określonych warunkach przestanie brać wyniki pod uwagę, musiał bym ten algorytm mocno rozbudować...
Marcin S. Przedstawiony przez Ciebie filtr jest wyliczaniem średniej z definiowaną wagą. W moim przypadku waga jest zdefiniowana z góry. Poza tym, jak wspomniał greg, dołożył bym sporo obliczeń zmiennoprzecinkowych a tego starałem się uniknąć. Cały numer polega na tym, że pracuję na granicy rozdzielczości zarówno ADC jak i czujnika.

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Marcin S.
Posty: 435
Rejestracja: piątek 12 wrz 2008, 10:11

Post autor: Marcin S. »

Ech, Panowie - kto by tam takie obliczenia na double robił :-)
Pozdrawiam
M.
Awatar użytkownika
greg
Posty: 3535
Rejestracja: środa 08 paź 2008, 00:16
Lokalizacja: Wrocław
Kontakt:

Post autor: greg »

Odnośnie pomiaru temperatury.
Ja bym sugerował użyć termometr 1-wire DS18B20. Transmisja cyfrowa, całkowicie odporna na zakłócenia na takiej długości przewodzie jak w Twojej aplikacji. Dokładność gwarantowana przez producenta ±0,5°C od -10°C do +85°C. Rozdzielczość programowalna 9-12 bitów, czyli max 0,0625°C.
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Dzięki, zapoznam się. Robiłem swego czasu próby z DS1820, ale rozdzielczość mnie nie zadowalała, i stabilność też nie była rewelacyjna, ten widzę jest dokładniejszy.
Może się przesiądę, jak zmiany dotychczasowego układu nic nie przyniosą.

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
No tak, procesory algorytmy, PWMy.... i człowiek zapomniał o pięknej sztuce tworzenia układów analogowych. :-|
Rozwiązaniem okazał się kondensatorek 100n włączony na wejściu wzmacniacza sygnału z czujnika. W związku z tym, że był włączony z szeregowym rezystorem 10k, stworzył się filtr RC doskonale wygładzający przypadkowe impulsy.

Obrazek

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Stabilność pomiaru temperatury jest na zadowalającym poziomie, próbowałem robić pomiary w przerwaniach, ale jak się okazało, częstotliwości pomiarów były na tym samym poziomie.
Aktualnie zmagam się z innym problemem, który pojawia się sporadycznie, ale jednak. Podczas załączania lub wyłączania (oświetlenie świetlówkami ze statecznikami elektromagnetycznymi, dławikami) na wyświetlaczu pojawiają się poruszające się "krzaczki". Pomaga wejście w menu i wyjście, gdyż wykonana jest wtedy komenda CLS. Normalna procedura wyświetlania informacji po prostu modyfikuje zawartość wyświetlacza przez nadpisanie odpowiednich znaków w konkretne miejsca, więc nie potrafi sobie z tym poradzić, a CLS trwa zbyt długo i jej zastosowanie powoduje miganie wyświetlacza podczas normalnej pracy. Wszystkie elementy są odsprzężone kondensatorami ceramicznymi 100nF. Problem może tkwić w długości przewodów do LCD, około 5 cm.
Zaznaczam, ze dzieje się tak tylko przy świetlówkach, przy LED wszystko działało prawidłowo, więc podejrzewam zakłócenia elektromagnetyczne.
A może umieszczę komendę CLS po włączeniu lub wyłączeniu oświetlenia...

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
eshaton
Posty: 6
Rejestracja: piątek 17 sie 2012, 14:08
Lokalizacja: Kielce

Post autor: eshaton »

Ja robiłem sterownik Skalar do akwarium.
Wszystkie przewody muszą być ekranowane np do czujnika temp, sterowania ledami, sterowania świetlówkami.
Przewody do wyświetlacza mogą być i do 2 metrów ale ekranowane dobrej jakości.
U mnie w lampie musiałem uziemić odbłyśniki oraz stateczniki bo bardzo siały przy odczycie sondy ph.
Co do błędów na wyświetlaczu może za blisko to stoi stateczników.
Choć w skalarze i wyświetlacz zaekranowany z tyłu.
Chcesz to poczytaj o robieniu skalara i problemach ludzi. Sporo pomysłów jest, ale i czytania 150stron. Wymaga chyba zalogowania. LINK
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
eshaton pisze:Ja robiłem sterownik Skalar do akwarium.
Wszystkie przewody muszą być ekranowane np do czujnika temp, sterowania ledami, sterowania świetlówkami.
U mnie przewody do czujnika temperatury są ekranowane, aby zmniejszyć wrażliwość mam w samym czujniku wzmacniacz operacyjny podnoszący wartość sygnału pomiarowego i po dodadaniu kondensatorów tam gdzie powinny być, nie ma z tym żadnych problemów.
Krzaczki pojawiają się raz na kilka dni, a elektronika praktycznie stoi nad dławikiem.

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
ODPOWIEDZ