Skocz do zawartości
PawelL

Automatyczna Dolewka DIY na uC attiny13

Rekomendowane odpowiedzi

Chciałem wszystkim zaprezentować urządzenie, które obecnie jest automatyczną dolewką opartą na mikrokontrolerze attiny13. Urządzenie to cechuje prostota budowy, a zmiana np. czujnika poziomu cieczy, na termometr i zmiana oprogramowania, przerobi nasze urządzenie z automatycznej dolewki na np. cyfrowy termostat regulowany do włączenia grzałek czy wiatraków w naszym zbiorniku.

post-12887-0-53103000-1372182339_thumb.png

Teraz troszkę o schemacie, jak widać, na początku mamy TR1, zastosowałem tu transformator 6V 1.2AV, za którym znajduje się B1 mostek Greca w obudowie SMD, zresztą jak widzicie na po płytce większość elementów jest SMD, by było jak najmniej odwiertów w płytce. Kolejnymi elementami C1 i C2 są kondensatory elektrolityczne 100uF, pełnią one role filtra. Pomiędzy kondensatorami znajduje się stabilizator 5V. I tyle o zasilaczu.

Kolejnym elementem wręcz podstawowym tego urządzenia jest uC attiny13, który ma jak widzicie 6 portów. Pierwsza noga jest resetem, który podpięty przez rezystor 10k do zasilania +5V, 2 noga B3 podpięty przez diodę LED i rezystor 220ohm służy, jako sygnalizator pomiaru, 3 noga port B4 podpięty do środkowej nogi potencjometru, ustawiony jest jako przetwornik AC, którym robię pomiar jego ustawień. Potencjometr ten obie przeciwne nogi podpięte ma do zasilania i masy co w efekcie daje na środkowej nodze jakieś zasilanie, które potem ląduje na przetworniku. Przetwornik w programie zwraca nam wartość od 0 .. 1024, w zależności jak ustawiony jest potencjometr. Noga 5 i 6 jest odbiornikiem, który oczekuje na sygnał z czujnika. Jaki czujnik tu zastosujemy NO czy NC nie ma większego znaczenia, ponieważ jest to niewielka zmiana w oprogramowaniu, kwestia jest tylko raka czy będziemy reagować na zwarcie czy na przerwę z czujnika.

Na końcu został nasz moduł wykonawczy, zastosowałem tu optotriac MOC3041 i triak BT136, ponieważ ze wzglądu na małe rozmiary, i dodatkowo działa bezszelestnie, i świetnie sprawdza się, jako włącznik 600V 4A. By nie szaleć całość zabezpieczone jest bezpiecznikiem 2A, to jest najsłabsze ogniwo tego urządzenia. Całość sterowane jest z portu B2 .

Teraz jak zaprogramować nasze urządzenie. Do programowania takiego urządzenia używamy programatora ISP, którego koszt na allegro to ok. 20zł, programator musimy podpiąć do portu SV1, który ma 6 nóżek,

1. Zasilanie 5V

2. Masa

3. RESET

4. SCK

5. MISO

6. MOSI

czujnik

post-12887-0-97651200-1372173122_thumb.jpg

Płytka PCB góra i dół

post-12887-0-44155800-1372182362_thumb.pngpost-12887-0-44662200-1372182371_thumb.png

obraz poglądowy jak są umieszczone elementy

post-12887-0-34600700-1372182326_thumb.png

SOFT 2 wersje, dolewka_attiny13_.hex dla czujnika NC i dolewka_attiny13_rev.hex dla czujnika NO

dla źródła dla czujnika NC napisane w BASCOM

$regfile = "attiny13.dat"
$crystal = 1000000
$hwstack = 32
$swstack = 0
$framesize = 12
Config Portb.0 = Input									 'czujnik
Config Portb.1 = Input									 'czujnik
Config Portb.2 = Output									 ' wlacznik
Config Portb.3 = Output									 'led error
Config Portb.4 = Input									 'potencjometr p2
Config Adc = Single , Prescaler = Auto
Config Watchdog = 2048
Set Portb.0
Set Portb.1
Config Timer0 = Timer , Prescale = 64
On Timer0 Przerwanie
Enable Interrupts
Enable Timer0
Start Adc


Dim Pot As Word
Dim Ms As Integer
Dim I As Byte
For I = 1 To 5
Portb.3 = 0
Waitms 10
Portb.3 = 1
Waitms 10
Next
Start Watchdog
Do
If Pinb.0 = 0 Or Pinb.1 = 0 And Portb.2 = 0 Then
Portb.2 = 1
End If
Pot = Getadc(2) + 1
Ms = Pot * 250
If Pinb.0 = 1 And Pinb.1 = 1 And Portb.2 = 1 Then
Portb.2 = 0
End If
Portb.3 = 0
Waitms Ms
Portb.3 = 1
Waitms 1
Loop
End
Przerwanie:
Reset Watchdog
Load Timer0 , 1
If Pinb.0 = 0 Or Pinb.1 = 0 And Portb.2 = 0 Then
Portb.2 = 1
End If
Return

jutro umieszczę źródła bo tam muszę komentarze napisać.

miłej zabawy wam życzę :)

dolewka_attiny13_.zip

Edytowane przez PawelL (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Widzę, że kolega to już prezentuje wyższą szkołę jazdy.... Przynajmniej jak dla mnie kompletnego laika w dziedzinie elektroniki. A te poszczególne elementy, tj. zasilacz TR1, płytki, moduł wykonawczy oraz uc anitty 13, to trzeba samemu przygotować, wytrawić- czy są do kupienia jako całość?

Projekt ciekawy i bezszelestny :), czekam na ciąg dalszy i poproszę o wyłożenie tematu jak dla osoby kompletne nie znającej się na elektronice.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli mogę - parę słów "krytyki":

1. Dolewka na jednym czujniku = kłopoty.

2. Gdzie jest filtracja Attiny (standardowo dławik 10uH + kondensator 100nF na zasilaniu), szczególnie przy korzystaniu z ADC?

3. Dla bezpieczeństwa proponuję dać bezpiecznik na stronie pierwotnej transformatora, w razie czego spali się tylko on a nie zabezpieczenie główne mieszkania.

Poza tym układ wygląda ciekawie.


8458_8701.png

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

a do czego właściwie jest potencjometr w dolewce ?

Prosty i szybki projekt dla ludzi, którzy chcą zmierzyć sie z mikrokontrolerami. W zasadzie sukces murowany bo prostota jest powalająca. Trudno o błędy.

Ja do zasilania zastosowałbym dowolny zasilacz USB, Brdzie dużo prościej.

W tej aplikacji dławik na ADC to nie wiem po co miałby być.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@rj1307 - spójrz jeszcze raz na schemat - jest bezpiecznik na zasilaniu całości

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ponieważ widzę tutaj duży ruch osób siedzących w tematach elektroniki to pozwolę sobie na małe pytanie pośrednio powiązane z tematem (mam nadzieję, że autor się nie obrazi). Mianowicie chodzi mi o czujnik poziomu cieczy i jego ewentualnego uszkodzenia w przypadku podłączenia bezpośrednio do pompy i zasilania (bez przekaźnika).

Wysłałem zapytanie do producenta jaki maksymalny prąd może przyjąć to urządzenie. Otrzymałem odpowiedź jak poniżej:

Specyfikacja:

Długość kabla: 30,5 cm

Maksymalne obciążenie: 50W

Max napięcie: 100V DC

Maksymalny prąd: 0,5 A

Maks. prąd obciążenia: 1.0A

Ocena Temperatura: -20 ° C - +80 ° C

I teraz mam pytanie do osób siedzących w tej tematyce- jeśli maksymalny prąd określono jako 0,5A i maksymalny prąd obciążenia jako 1A to czy podając zasilanie 5,7V i 0,7A spalę czujnik czy nie?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@rj1307 - spójrz jeszcze raz na schemat - jest bezpiecznik na zasilaniu całości

Spojrzałem i faktycznie jest, zwracam honor :blushing:

W tej aplikacji dławik na ADC to nie wiem po co miałby być.

Filtr LC daje znacznie lepsze parametry filtrujące niż sam kondensator. Ja zawsze stosuję, niezależnie od "wagi" projektu. Kiedyś poczytałem trochę not Atmela, np. http://www.atmel.com...ges/doc8414.pdf i tak zostało. Te dosłownie kilka groszy za dławik i kondensator nie podniosą kosztów projektu.

Wysłałem zapytanie do producenta jaki maksymalny prąd może przyjąć to urządzenie.

Trochę błędne rozumowanie. Jeżeli dane urządzenie pobiera np. 0.5A prądu, to nawet jeśli zasilacz będzie mógł dać 5A to i tak urządzenie dalej pobierze 0.5A. Ważne jest napięcie zasilania danego urządzenia, w podanej specyfikacji napięcie 100V to jest chyba maksymalne napięcie na jego stykach, nie ma nic o napięciu zasilania samego czujnika . Napisz proszę nazwę tego czujnika, a najlepiej daj link do jego danych.

Edytowane przez rj1307 (wyświetl historię edycji)

8458_8701.png

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dla osób które chcą wykonać powyższy układ warto dodać parę informacji.

Przedstawiony schemat ma troche bledow i warto je poprawic zanim powierzy sie temu ukladowi pilnowanie dolewki.

1. Uklad zasilania jest zle zaprojektowny - brak kondensatorow filtrujacych ( patrz nota LMow )

2. rezystory dla diod led ma zla wartosc - wiekszosc LED ma pobor pradu 20mA i spadki napiecia okolo 2-2,2V

3. Uklad wykonawczy MOC tez zalaczany jest zlym ograniczeniem pradowym tym bardziej ze tam w szeregu pracuje dioda + MOC 15mA

( proponuje zapoznac sie z Datasheet http://kubuntu.free..../fp/moc3041.pdf )

4. Dolewka na 1 plywaku to wczesniej czy pozniej jedynie niezla awaria. Uklad dolewki powinien pracowac na 2 plywakach

Co do samego ukladu wykonawczego ja bym zastosowal mini/micro przekaznik. Nie potrzebujemy tutaj triaka bo nie bedziemy sterowac wyjscie a jedynie zal/wyl.

Przy układach Atmel i współpracy z wewnętrznymi ADC, należy zapewnić prawidłowe filtrowanie zasilania samego zasilania mikrokontrolera

To tak na szybko

Edytowane przez sledzik-wawa (wyświetl historię edycji)

350l SPS tank, 4xTunze 6095 + Tunze7096, ATI Powercone 200i, Profilux 3ex + ext. module

ATI mod 4xT5 39W + LED Cree 162W, DASTACO II Ca reaktor, NP Biopellets

Kupuje uszkodzony sprzęt GHL, Tunze etc...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Poniżej link do czujnika. Poza danymi, które powyżej napisałem i tymi w linku nic więcej nie umiem powiedzieć. Generalnie to próbuję ustalić czy rzeczywiście potrzebny jest przekaźnik przed czujnikiem jeśli zasilanie ma tylko 5,7V i 0,7A. W opisie budowy mojej dolewki koledzy jednoznacznie wskazywali, że powinien być przekaźnik bo dojdzie do spalenia czujnika.

http://allegro.pl/cz...3256003016.html

PS. jeśli to nie problem to poproszę o odpowiedź w moim temacie (dział DIY- dolewka za 40zł) bo nie chciałbym nadużywać gościnności autora tego tematu :)

Edytowane przez Przemek78 (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak sobie czytam te tematy o dolewkach... i się zastanawiam czy nie lepiej było by zastosować rozwiązanie które jest od dawna stosowane w przemyśle... a tutaj aż się prosi skoro ktoś wysilił się aby zaprzęgnąć do dolewki uc...

Skoro już mamy takie możliwości w postaci uc to co stoi na przeszkodzie żeby stosować dolewki na 1 czujniku ??

Zakładając że na dobę wyparowuje nam z akwarium 1l wody (zakładając!) oraz że mamy pompę o wydajności 100ml/min to zasadniczo porcję wody do dolewania można podzielić na mniejsze części.

I tak przypuśćmy że chcemy aby dolewka dolewała wodę 1 raz dziennie np o godzinie 10 kiedy nie ma nas w domu i nie będzie nas wkurzać brzęczenie pompki...

- podzielmy więc naszą porcję wody do dolania na 10 części po 100ml.. czyli działanie pompy 1 min. (oczywiście to tylko przykład)

- teraz sprawdzamy warunek czy konieczne jest dolanie wyparowanej wody do akwarium

- zakładamy że tak (kontroler dolewa 100ml wody) - jeżeli nie nic się nie dzieje i odkładamy sprawdzenie np na 6h

- po dolaniu 1 porcji 100ml sprawdzamy czy konieczne jest dolanie 2 porcji wody

- jeżeli tak to dolewamy...

ale jeżeli nasz czujnik poziomu przez kolejne np. 20 cykli (2L) nadal będzie podawał sygnał zbyt niskiego poziomu wody to możemy zakończyć dolewanie i odłożyć je na następne 6H (ewentualnie włączyć alarm) i jeżeli wtedy po 10 cyklach nadal będzie podawał sygnał zbyt niskiego poziomu wody zapalamy alarm...

Wiem że te wartości dla większości systemów będą znacznie różne ale założenie jest takie że dolanie dodatkowych 2 L na dobę nie przeleje 100L zbiornika. Oczywiście zaraz mogą pojawić się komentarze że można dolewać częściej, albo z inną wydajnością... ale mnie chodzi o to że nie włączamy dolewki wtedy gdy poziom wody spadnie i czujnik go zasygnalizuje tylko wyłączamy dolewkę wtedy kiedy czujnik zasygnalizuje prawidłowy poziom wody, a uruchamiamy ją przykładowo albo raz dziennie albo co jakąś określoną liczbę godzin. Nie musimy się martwić o zacięty pływak bo jeżeli zaprogramujemy uc żeby nie dolewał więcej niż 10 porcji na cykl to się nie włączy więcej razy...

Napiszcie co sądzicie o takim rozwiązaniu...

Pomijając wszystkie moje uwagi zupełnie nie mogę zrozumieć dlaczego nie stosuje się takiego czujnika http://www.e-automatyka24.pl/produkt,38,cm24-3012nc-npn-no-nc-12mm-6-36-vdc-m24-czujnik-pojemnosciowy-.html zamias 2 zwykłych ??? wiem że może jest minimalnie droższy ale zupełnie eliminuje kontakt z wodą, czyli odpada tworzenie się na nim skorupy z soli, nie ma mechanicznych elementów więc się nie zacina, nie włażą na niego żadne morskie żyjątka...

Edytowane przez cepelia (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

W moim sterowniku został wolny tylko jeden PIN a ze koledze u któego on stoi zależy na dolewce wymyśliłem to tak:

Sprawdzam warunek. Jeśli pływak sygnalizuje niski poziom wody to zalaczam dolewke na czas ustawiany z menu w sekundach.

Jeśli podczas pracy pompy czujnik pokaże poziom OK to niezaleznie od tego ile jeszcze miało się lac wylaczam zasilanie pompy.

Za kilka godzin kolejny taki sam scenariusz.

Idea jest taka, że nawet maksymalna dawka wody nie sposoduje przelania.

Poza tym waży jest sam czujnik i wykorzystane styki.

tak się w Automatyce przyjęło, żę ważne obwody się rozwiera (mówi się o nich że są to obwody na prąd ciągły, np wszystkie wyłaczniki awaryjne w maszynach).

Wybów czujnika ze stykami NC pozwala także kontrolować obwód na obecność nieporządanych przerw.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie będę tu was cytował.

filtry w zasilaczu, faktycznie jest to prosta konstrukcja zasilacza z 2 kondensatorami, do działania attiny wystarczy,

Dlaczego nie użyłem prostego zasilacza USB? jest problem,w tym że było by to zewnętrzne i dodatkowe urządzenie, które wymagało by dodatkowego zewnętrznego zasilania. to urządzenie świetnie się mieści w obudowie Z-27

dlaczego nie ma dławika, jak używam ADC, faktycznie nie ma, ponieważ nie używam tego układu jako woltomierz-a gdzie jest ważnie że jak robisz pomiar 5V to ma być 5V, ADC używany jest tylko i wyłącznie do pomiaru ustawienia na potencjometrze, który decyduje o kolejnych pomiarach. podejrzewam że pomiar pływa ale tu to też nie ma znaczenia, bo czy dolewka nam doleje kolejną dawkę za godzinę, czy godzne 05, to chyba nie ma tu znaczenia, chyba że kolega szuka precyzyjnego urządzenia, to niestety, ta dolewka się nie sprawdzi

Zabespieczenia

  1. bezpiecznik jest jak już ktoś zauważył
  2. dolewka jest dla 2 pływaków, wyprowadzenie X3-1 do X3-3, 1 to masa, 2 i 3 to jeden i drugi pływak, ewentualnie jak ktoś się chce bardziej zabezpieczyć to można w wiele pływaków szeregowo podpiąć. czujniki które tu stosuje post-12887-0-97651200-1372173122_thumb.jpg.
  3. zabezpieczenia programowe, dodatkowo w programie użyłem Watchdog-a, który powinien zrestartować dolewkę, w momencie gdyby się układ zawiesił
  4. co ko kondensatora 100n, dziś go zaraz go dołożę do schematu i umieszczę na druku, jak buduje dolewkę to go stosuję, na tym schemacie go zabrakło, dodany

co do pytania, czy to się kupuje czy buduje, postaram się przygotować filmik, jak wykonać tą konkretną płytkę metodą termo transferu, myślę że jak ktoś lubi majsterkować to zrobi to sam

3. Uklad wykonawczy MOC tez zalaczany jest zlym ograniczeniem pradowym tym bardziej ze tam w szeregu pracuje dioda + MOC 15mA

( proponuje zapoznac sie z Datasheet http://kubuntu.free..../fp/moc3041.pdf )

ten układ skopiowałem z gotowego rozwiązania AVT2328T, który już się umnie sprawdza od kilku lat, zmienione

Edytowane przez PawelL (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zakładając że na dobę wyparowuje nam z akwarium 1l wody (zakładając!) oraz że mamy pompę o wydajności 100ml/min to zasadniczo porcję wody do dolewania można podzielić na mniejsze części.

I tak przypuśćmy że chcemy aby dolewka dolewała wodę 1 raz dziennie np o godzinie 10 kiedy nie ma nas w domu i nie będzie nas wkurzać brzęczenie pompki...

- podzielmy więc naszą porcję wody do dolania na 10 części po 100ml.. czyli działanie pompy 1 min. (oczywiście to tylko przykład)

- teraz sprawdzamy warunek czy konieczne jest dolanie wyparowanej wody do akwarium

- zakładamy że tak (kontroler dolewa 100ml wody) - jeżeli nie nic się nie dzieje i odkładamy sprawdzenie np na 6h

- po dolaniu 1 porcji 100ml sprawdzamy czy konieczne jest dolanie 2 porcji wody

- jeżeli tak to dolewamy...

ale jeżeli nasz czujnik poziomu przez kolejne np. 20 cykli (2L) nadal będzie podawał sygnał zbyt niskiego poziomu wody to możemy zakończyć dolewanie i odłożyć je na następne 6H (ewentualnie włączyć alarm) i jeżeli wtedy po 10 cyklach nadal będzie podawał sygnał zbyt niskiego poziomu wody zapalamy alarm...

Wiem że te wartości dla większości systemów będą znacznie różne ale założenie jest takie że dolanie dodatkowych 2 L na dobę nie przeleje 100L zbiornika. Oczywiście zaraz mogą pojawić się komentarze że można dolewać częściej, albo z inną wydajnością... ale mnie chodzi o to że nie włączamy dolewki wtedy gdy poziom wody spadnie i czujnik go zasygnalizuje tylko wyłączamy dolewkę wtedy kiedy czujnik zasygnalizuje prawidłowy poziom wody, a uruchamiamy ją przykładowo albo raz dziennie albo co jakąś określoną liczbę godzin. Nie musimy się martwić o zacięty pływak bo jeżeli zaprogramujemy uc żeby nie dolewał więcej niż 10 porcji na cykl to się nie włączy więcej razy...

Napiszcie co sądzicie o takim rozwiązaniu...

myślałem o czymś podobnym jakieś 2 miesiące temu, jak miałem powódź w domu.

ja mam filtr RO doprowadzony pod akwarium, i miałem tego pecha że wypadł mi wężyk z sumpa, woda się lała parę godzin aż nas sąsiedzi zaalarmowali. jedynym szczęściem moim jest to że mieszkam na parterze, a zalany został jedynie korytarz piwnicy.

można by było tak przerobić program, że np potencjometrem ustalali byśmy tą ilość dolewanej wody, tylko tyle że u każdego to oznacza coś innego, bo to jest uzależnione od pompy i sposobu dolewania, wiec sterowali byśmy maksymalnym czasem dolewania, który byłby przerywany przez sygnał czujnika, dolewanie mogło by się wykonywać raz na godzinę wiec zapobiegli byśmy częstemu załączaniu się pompy, i ewentualnym zalaniem mieszkania.

Edytowane przez PawelL (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Ten wątek jest dość stary. Należy rozważyć rozpoczęcie nowego wątku zamiast ożywienia tego.

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.


  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wchodząc do serwisu Nano-Reef, zgadzasz się na warunki Warunki użytkowania.