Skocz do zawartości
gigipl

Arduino - Sterownik pomp i zaworu 3 drogowego + RS485

Pomocna odpowiedź

Napisano (edytowany)

Witam,

Postanowiłem zrobić sterownik zaworu 3-drogowego oraz sterowanie (włącz/wyłącz) pomp obiegowych do mojej instalacji CO w domu. Dodatkowo układ ma sprawdzać temperaturę przez DHT22 lub DS18B20. Całość ma wysyłać dane na podstawie swojej pracy przez RS485 i mySensors do centralnego punktu (do openhab aby tam generować statystki z tych danych). Jest to mój pierwszy tak zaawansowany projekt.

Mam pytanie, czy widzicie jakieś kardynalne błędy w tym projekcie uniemożliwiające mu działanie ? Zapewne nie jest zaprojektowany idealnie - pytanie czy byście coś zmienili ?

Wytłumaczę poszczególne bloki:
1. Sterowanie siłownikiem - wykonane na 74HC4051D - nie przyszło mi nic innego do głowy jak zrobić zabezpieczenie aby naraz napięcie nie zostało podane na X3-1 i X3-3. Zapewne da się to zrobić jakoś bardziej elegancko. Zastosowanie tego układu gdyż mam ich sporo luzem. Sterowanie sygnałem wysokim
2. Przyciski - po prostu sprawdzanie stanu poszczególnych przycisków - "zworki" aby ustawić np. ID płytki, dipswitche np aby zmienić wychylenie siłownika
3. Temperatura - wykonane na 74HC4051D (mam ich sporo) - po to aby można było podpiąć DHT22 (więcej niż jeden) - pytanie: czy rezystor 4.7k może być tak umiejscowiony czy powinien być na każdym wyprowadzeniu "Y" ?
4. Podłączenie czujników temperatury - wyprowadzenia pinów z 4051 do czujników
5. Pompa 1/2 - włącz / wyłącz pompy sygnałem wysokim z Arduino
6. Wyświetlanie LED - 4 ledy na płytce + 4 ledy na kablu
7. Wyprowadzenie I2C aby w razie czego można było podpiąć np. wyświetlacz.
8. Wyprowadzenie PWM (IN, OUT i 5V) i pytanie: Moje pompy obiegowe mają możliwość wysterowania ich sygnałem PWM. W załączeniu przesyłam wycinek z karty katalogowej. Pytanie czy jeżeli podam na "Signal ref." pompy +5V oraz będę czytał z OUTPUT długości impulsów (w Arduino pin A6 i A7) oraz samemu wysyłał sygnał PWM z pinu D3 i D4 w arduino na "INPUT" pompy to to zadziała?

Zrzut ekranu 2019-09-16 o 14.02.06.png

sterownik-pomp.png

Edytowano przez gigipl

Udostępnij ten post


Link to post
Share on other sites
Dnia 17.09.2019 o 14:03, gigipl napisał:

Temperatura - wykonane na 74HC4051D (mam ich sporo) - po to aby można było podpiąć DHT22 (więcej niż jeden)

DTH nie bardzo nadaje się do pomiaru temperatury, użyj DS18B20 i nie będzie problemu z ilością termometrów no może poza problemem tego, ze biblioteki Arduino nie sa zbyt doskonałe ale to można łatwo poprawić programowo.

4051 do dipSW też przesada. Zamiast tego daj większy mikrokontroler, będzie taniej i pewniej.

Dnia 17.09.2019 o 14:03, gigipl napisał:

będę czytał z OUTPUT długości impulsów (w Arduino pin A6 i A7)

Chcesz czytać programowo? Zły pomysł, użyj do tego przechwytywania licznika więc zapomnij o mega328 musisz wybrać większy mikrokontroler.

Udostępnij ten post


Link to post
Share on other sites

Hej,

Dzięki za odpowiedź.

Mam masę Arduino NANO kupionych do innego projektu, który nie wypalił (ponad 100kę). Wszystkie inne części mam na stanie także też nie muszę ich dokupować.

Ideą 8 wejść na temperaturę było to, żeby właśnie ominąć problem potrzeby programowania (na sztywno) w kodzie arduino konkretnych czujników. Łatwiej jest zaadresować magistralę niż za każdą zmianą czujnika zmieniać adresację w kodzie.

4051 tak jak pisałem mam pewnie ze 100 (tak jak arduino) także nie robi wykorzystanie go dla mnie problemu. Bardziej pytanie było o to, czy w układzie nie ma błędów logicznych i coś na 100% nie zadziała.

 

Udostępnij ten post


Link to post
Share on other sites
21 godzin temu, gigipl napisał:

Wszystkie inne części mam na stanie także też nie muszę ich dokupować.

Na siłę próbujesz znaleźć zastosowanie dla układów, które posiadasz zamiast użyć tego co byłoby najlepsze.

 

21 godzin temu, gigipl napisał:

Ideą 8 wejść na temperaturę było to, żeby właśnie ominąć problem potrzeby programowania (na sztywno) w kodzie arduino konkretnych czujników. Łatwiej jest zaadresować magistralę niż za każdą zmianą czujnika zmieniać adresację w kodzie.

Nie w kodzie bo tak robią tylko amatorzy a w konfiguracji. Jeśli już koniecznie chcesz mieć każdy termometr na osobnej magistrali to użyj 8 wyprowadzeń mikrokontrolera a nie na siłę wstawiasz miltiplekser bo go akurat masz.

Czemu służą Q4 i Q5? Zabezpieczenie przed włączeniem US3 i US4 razem nie wymaga multipleksera, wystarczy podłączyć je w przeciwfazie do dwu portów mikrokontrolera.

  • Nie zgadzam się! 1

Udostępnij ten post


Link to post
Share on other sites

Problem jest taki, że nie tłumaczysz mi dlaczego nie powinienem tego zrobić. Tylko mówisz, że nie powinienem i już. Równie dobrze, mogę kupić gotowy sterownik za kupę kasy i także będzie ok - ale chyba nie o to chodzi? Powyższy układ ma być wyjściem do jeszcze kilku dodatkowych (mam dość rozbudowaną instalację CO i automatyki domowej).

Nie widzę potrzeby zakupowania kolejnych urządzeń, jeżeli mam stare i mogę je wykorzystać. Nie widzę żadnego plusu z większej atmegi w tym przypadku (podaj mi choć jeden, bo narazie napisałeś, żebym wziął większy mikrokontroler bez żadnego argumentu przemawiającego za tym).

Tak samo nie widzę problemu z wykorzystania 4051 do badania dipswitchy. Nie ma znaczenia, czy w kodzie czy w konfiguracji. Fizycznie musisz to wgrać do mikrokontrolera a tego chce uniknąć i móc zmienić adres za pomocą dipswitcha bez ingerencji. Także nie napisałeś dlaczego nie powinienem tego robić (a ja nie potrafię znaleźć argumentu na nie).

Tak jak pisałem w opisie, wydaje mi się, że układ nie jest optymalny (szczególnie w przypadku US3 i US4) i dlatego go wstawiłem. Niestety nie mogę znaleźć nigdzie informacji jak powinno to wyglądać z przeciwfazą tak jak to piszesz.

Udostępnij ten post


Link to post
Share on other sites
59 minut temu, gigipl napisał:

Nie widzę żadnego plusu z większej atmegi w tym przypadku (podaj mi choć jeden, bo narazie napisałeś, żebym wziął większy mikrokontroler bez żadnego argumentu przemawiającego za tym).

Jeden układ zamiast kilku = mniej elementów, mniejsze urządzenie, większa niezawodność, więcej RAM którego w NANO jest niewiele, prostszy program, który napiszesz szybciej, niższa cena urządzenia. Wystarczy argumentów?

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
44 minuty temu, RFM napisał:

Jeden układ zamiast kilku = mniej elementów, mniejsze urządzenie, większa niezawodność, więcej RAM którego w NANO jest niewiele, prostszy program, który napiszesz szybciej, niższa cena urządzenia. Wystarczy argumentów?

Co do ilości elementów, zgodzę się - ale tu tych elementów nie ma nie wiadomo ile - także branie większego Arduino tylko po to aby zastąpić 4051 bo do tego Twój argument się sprowadza? Naprawdę uważasz, że kod będzie dużo bardziej skomplikowany tylko z powodu, że dodatkowo będę sterował 4051 (Twój argument: RAM i prostszy program)?

Arduino nie będzie wykonywał nie wiadomo czego aby mu go zabrakło - a napewno nie z powodu sterowania 4051. Ma to co odczyta przekazać po RS485 i tyle + reagować na to co dostanie (włącz/wyłącz poszczególne elementy). Program będzie praktycznie miał 4 linijki więcej aby wysterować bitowo 4051 w pętli i odczytać dane (które odrazu zostaną wysłane do OpenHABa i to on podejmuje decyzje co dalej).

Argument o niższej cenie chyba nie w tym przypadku - elementy ze schematu mam, to co proponujesz muszę zakupić, czyli wydać kolejne pieniądze (gdzie widzisz oszczędność?).

Mój post zamieściłem aby zweryfikować to co zaprojektowałem. Nie chce się kłócić, także chyba nie ma sensu dalej prowadzić tej dyskusji - bo nie wnosi nic merytorycznego dla mnie. Zadałem merytoryczne pytanie na temat przeciwfazy - niestety nie dostałem odpowiedzi tylko atak dlaczego nie chce zrobić po Twojemu i nie używać 4051.

Edytowano przez Treker
Usunąłem zbędne przejścia do nowej linii
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
1 godzinę temu, gigipl napisał:

Zadałem merytoryczne pytanie na temat przeciwfazy - niestety nie dostałem odpowiedzi

Ja zadałem meroteryczne pytanie o Q4 i Q5 i też nie dostałem odpowiedzi.

SSR połącz anodę jednego z katodą drugiego i na odwrót, całość przez rezystor do dwóch portów uC. Jak byś nie sterował to statycznie nie wymusisz włączenia obu. Dynamicznie, to i zabezpieczenie, które zrobiłeś nie zadziała.

Udostępnij ten post


Link to post
Share on other sites
45 minut temu, RFM napisał:

Ja zadałem meroteryczne pytanie o Q4 i Q5 i też nie dostałem odpowiedzi.

Dostałeś odpowiedź nawet dwukrotnie:

Dnia 17.09.2019 o 14:03, gigipl napisał:

1. Sterowanie siłownikiem - wykonane na 74HC4051D - nie przyszło mi nic innego do głowy jak zrobić zabezpieczenie aby naraz napięcie nie zostało podane na X3-1 i X3-3. Zapewne da się to zrobić jakoś bardziej elegancko. Zastosowanie tego układu gdyż mam ich sporo luzem. Sterowanie sygnałem wysokim.

 
3 godziny temu, gigipl napisał:

Tak jak pisałem w opisie, wydaje mi się, że układ nie jest optymalny (szczególnie w przypadku US3 i US4) i dlatego go wstawiłem. Niestety nie mogę znaleźć nigdzie informacji jak powinno to wyglądać z przeciwfazą tak jak to piszesz.

Jak mogę odpowiedzieć na coś bardziej merytorycznie jak nie mam wiedzy/pomysłu ?

Rozumiem, że chodzi o coś takiego jak na schemacie poniżej? To rodzą się mi 2 pytania:

1. Czy rezystory są potrzebne? Zgodnie z notą katalogową G3MB-202P te SSRy mają wbudowane rezystory?

2. Niby arduino może mieć 20mA na wyjściu a SSR w normalnej pracy pobiera około 10mA. Czy nie lepiej dodać tu jakiś tranzystor jednak aby nie sterować bezpośrednio SSRami z pinów arduino ?

Faktycznie taki układ zadziała zgodnie z moimi założeniami - nie pomyślałem o nim wcześniej - jednak boję się prądów zgodnie z punktem drugim...

 

Zrzut ekranu 2019-10-5 o 16.45.02.png

Udostępnij ten post


Link to post
Share on other sites
2 godziny temu, gigipl napisał:

Czy rezystory są potrzebne? Zgodnie z notą katalogową G3MB-202P te SSRy mają wbudowane rezystory?

Może tak, może nie. Zależy to od tego jawa jest wartość tego rezystora, jak jest minimalny/maksymalny prąd diody, jakim napięciem sterujesz.

2 godziny temu, gigipl napisał:

Niby arduino może mieć 20mA na wyjściu a SSR w normalnej pracy pobiera około 10mA. Czy nie lepiej dodać tu jakiś tranzystor jednak aby nie sterować bezpośrednio SSRami z pinów arduino ?

Sterujesz prądem 2 razy mniejszym niż trzeba i boisz się, ze będą problemy? Jak tak bardzo sie obawiasz ogranicz prad dodatkowym rezystorem do minimum. Jakie jest szukaj w nocie SSR, może to 3mA, może 1?

Udostępnij ten post


Link to post
Share on other sites
3 godziny temu, RFM napisał:

Może tak, może nie. Zależy to od tego jawa jest wartość tego rezystora, jak jest minimalny/maksymalny prąd diody, jakim napięciem sterujesz.

Rezystor ma 440 ohm zgodnie z notą dla G3MB-202P 5V. Czyli prąd dla tego SSR przy 5V to około 11mA. Dobrze liczę ? Również zgodnie z notą, minimalne napięcie wyzwolenia tego SSR z OFF na ON to 4V. Czyli przy prądzie 11mA mogę dać maksymalnie 90 ohm aby przy napięciu 5V przekaźnik przeszedł z OFF na ON. Dobrze liczę ? Wydaje mi się, że nie ma sensu dawać tego rezystora ?

3 godziny temu, RFM napisał:

Sterujesz prądem 2 razy mniejszym niż trzeba i boisz się, ze będą problemy? Jak tak bardzo sie obawiasz ogranicz prad dodatkowym rezystorem do minimum. Jakie jest szukaj w nocie SSR, może to 3mA, może 1?

Wszystkie informacje jakie znalazłem na ten temat piszą aby sterować tranzystorem i dopiero po tym SSR a nie bezpośrednio stąd to pytanie. W nocie niestety nie ma wypisanego prądu - jedyny prąd jaki jest podany to przy tym jak nie ma rezystora wbudowanego i wtedy jest to 5mA (minimalny prąd potrzebny do "uruchomienia" diody).

Rozumiem, że ten rezystor ograniczający powinienem podpiąć równolegle do SSRa (i jego wbudowanej diody) ?

 

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...