Skocz do zawartości

Automatyczny system podlewania - sprawdzenie schematu i PCB


opp34

Pomocna odpowiedź

Dzień dobry,

pracuję nad projektem automatycznego systemu podlewania. Projekt jest oparty na NodeMCU V2, który steruje elektrozaworami na 12 V (zawór główny oraz cztery zawory odpowiedzialne za poszczególne strefy). Do tego zastosowane zostały cztery analogowe pojemnościowe czujniki do pomiaru wilgotności ziemi, czujnik temperatury DS18S20 oraz czujnik ciśnienia atmosferycznego BMP280. Odczyt danych pomiarowych oraz sterowanie zaworami jest przeprowadzane za pośrednictwem utworzonej w tym celu aplikacji na Androida.

// informacje na temat schematu

Układ jest zasilany za pomocą stabilizowanego zasilacza 12V 3.15 A, który jest podłączony do zaworów oraz przetwornicy LM2596, której napięcie wyjściowe jest ustawione na 3.3 V. Wydajność prądowa przetwornicy to 2 A (3 A z zastosowaniem radiatora). Pobór prądu przez pojedynczy zawór wynosi ok. 350 mA (po ustabilizowaniu, w trakcie otwierania według producenta wynosi maksimum ok. 800 mA). Nie mierzyłem jaki jest pobór prądu pozostałych elementów, tym niemniej układ w takiej konfiguracji pracuje stabilnie. 

Do sterowania pojedynczym zaworem zastosowany został tranzystor mocy TIP120 o wzmocnieniu hFE = 2000 (odczytane z charakterystyki tranzystora dla założonego obciążenia wynoszącego Ic = 800  mA) i spadku napięcia Vbe = 1.4 V. Stąd wychodzi, że prąd przepływający przez bazę Ib = Ic / hFE = 0.0004 A a opornik na bazie to Rb = (Vcc – Vbe) / Ib = (3.3 V – 1.4 V) / 0.0004 A = 4750 ohm. Najbliższa standardowa wartość opornika to 4k7 ohm.

Wartość opornika podciągającego pull down dobrałem na podstawie opinii z internetu, według której wartość powinna być 10 razy większa od opornika na bazie lub 100k ohm.

O stanie wysterowania tranzystora informuje żółta dioda LED, której opornik obliczyłem na podstawie spadku napięcia na samej diodzie (założyłem, że wynosi ono ok. 8-10 mA, ponieważ wydajność prądowa pojedynczego wyjścia NodeMCU V2 wynosi według producenta 12 mA, a 1 mA pobiera sam tranzystor) równego około 2 V (odczytane z charakterystyki diody dla założonego poboru prądu). W takim przypadku Rd = (Vcc – Vd) / Id = (3.3 – 2V) / 0,008A = 162,5 ohm. Najbliższa standardowa wartość opornika to 160 ohm, dla którego Id = (3.3V – 2V) / 160 ohm = 0,0081A = 8,1 mA. 

Część 1:

1593408167_asp_schemat_cz1.thumb.png.d9c2c00f05dc4c065cbcf0e5b3a8a9f2.png

Część 2:

12706200_asp_schemat_cz2.thumb.png.e51c65bf3146ffe81174f665e957fcb0.png

// informacje na temat projektu PCB

Płytka została zaprojektowana w programie Eagle z zastosowaniem dwóch warstw. Jest ona podzielona na strefę zasilaną 12 V (zwierającą zawory) oraz 3.3 V (procesor, rejestr przesuwny 74HC595 oraz płytka z multiplekserem analogowym 74HC4051). Są one połączone za pośrednictwem przetwornicy napięcia. Masy obu stref są rozprowadzone za pomocą polygonów (po jednym na warstwie górnej i dolnej na jedną strefę) oraz zwarte w jednym punkcie za pomocą opornika R0.

Zasilanie jest poprowadzone ścieżkami o szerokości 32 mil, a sygnały 10 mil. Zastosowałem elementy do montażu przewlekanego, które poza pojedynczymi opornikami znajdują się na górnej warstwie. 

Warstwa górna i dolna, polygony włączone:

asp_pcb_2warstwy.thumb.png.32fe3b43af3e2d7b4044c1a02f13bbfe.png

Warstwa górna, polygony wyłączone:

asp_pcb_warstwa_top.thumb.png.a4e756a828c589243e11064c5dd8e439.png

Warstwa dolna, polygony wyłączone:

asp_pcb_warstwa_bottom.thumb.png.4096d7500e66f200e67880eeae7a496a.png

Proszę o sprawdzenie schematu oraz projektu płytki PCB (logika, poprawność podłączeń, estetyka), a także udzielenie odpowiedzi na poniższe pytania. Proszę o jakiekolwiek podpowiedzi - jestem początkującym elektronikiem, a zdaję sobie sprawę, że jeszcze zbyt wiele na temat mikrokontrolerów i projektowania płytek drukowanych to ja nie wiem... 

Pytania:

1. Płytka z czujnikiem ciśnienia atmosferycznego BMP280 oraz złącze śrubowe X3, do którego podłączany jest czujnik temperatury DS18S20 znajdują się w obszarze analogowym (tworzonym przez złącza śrubowe X2 oraz płytkę z multiplekserem analogowym 74HC4051). Magistrala i2c oraz 1 wire nie będą przeszkadzać w pomiarze analogowym? Złącze X3 oraz płytka BMP280 nie powinny znajdować się jak najbliżej mikrokontrolera?

Strefa analogowa (kolor pomarańczowy) oraz magistrale (i2c - kolor niebieski, 1 wire - brązowy):

asp_pcb_2warstwy_magistrale.thumb.png.ec9dc1661851bdae16162dc74d19d3d1.png

2. W projekcie dodałem parę przelotek o średnicy 23 mil, które łączą polygony masy znajdujące się na górnej i dolnej warstwie, żeby wyeliminować obszary, które są pozbawione wypełnienia masą. Powinienem ponadto dodać też przelotki rozmieszczone równomiernie po powierzchni płytki, żeby niejako skrócić ścieżki masy?

3. Czy analogowe czujniki ciśnienia powinny posiadać osobną analogową masę AGND (oraz przypisany jej polygon), która podobnie jak masa GND12 powinna być połączona z główną masą GND w jednym punkcie za pomocą opornika 0 ohm? 

4. Jakie powinny być właściwości tekstu znajdującego się na silkscreenie, żeby tekst został wydrukowany prawidłowo i był czytelny? Ja stosuję ratio 15%, font vector oraz size 39 mil w przypadku oznaczeń znajdujących się wewnątrz obrysu danego elementu lub size 50 mil we wszystkich pozostałych przypadkach.

5. Jaka jest dobra praktyka przy projektowaniu ścieżek? Grubość 32 mil dla ścieżek zasilania i 10 mil dla sygnałów jest wystarczająca? Dystrybucja zasilania zaworów jest prawidłowa czy też każdy zawór powinien posiadać osobne zasilane prowadzone z jednego punktu? O ile dobrze pojmuję, obecnie ścieżką zasilania idącą od diody D1 do D2 może przepływać w najgorszym przypadku prawie 2 A (przy założeniu, że wszystkie zawory są załączone jednocześnie).

Dystrybucja zasilania 12V (kolorami umownie oznaczone obciążenie):

asp_pcb_warstwa_top_dystrybucja_zasilania.thumb.png.092dfa5fd37a08299c12068020d894b3.png

6. NodeMCU powinno mieć podciągnięte zasilanie do wszystkich pinów 3V3 czy też tylko do jednego? Na tę chwilę doprowadziłem je do wszystkich pinów (pomimo tego, że są one wewnętrznie zwarte) na zasadzie podobieństwa do atmega328p (w tym przypadku znajduje się szereg poradników dot. minimalnego podłączenia, w których zasilanie jest podłączone do wszystkich pinów 5V). 

Pozdrawiam,
opp34

Link do komentarza
Share on other sites

Przepraszam, że trochę ten Twój post przeleżał bez odpowiedzi. Jakoś mi umknął pod warstwą kolejnych 🙂 Mam kilka uwag, ale pytań "pomocniczych" zadałeś dużo więc jak tylko trochę się ogarnę, to odpowiem szerzej.

Tak na szybko:

  1. Na razie nigdzie nie wysyłaj płytki.
  2. Multiplekser 4051 ma trzy piny zasilania: VCC, VEE i GND. To pierwsze musi być podłączone do najwyższego napięcia analogowego jakie przełączasz i jednocześnie jest zasilaniem części logicznej. To drugie musi być podłączone do najniższego napięcia jakie przechodzi przez układ a trzecie to wiadomo, poziom odniesienia dla sygnałów logicznych. Wszystkie musisz podłączyć. Jeśli nie przenosisz napięć ujemnych, VEE dajesz do masy. Jak rozumiem używasz jakiejś gotowej płyteczki z HC4051, a ponieważ nic o niej nie wiem, nie umiem ocenić czy dobrze ją podłączyłeś. To chyba nie jest zwykła przejściówka 1:1 ze scalaka, bo oryginał ma 16 pinów a tu jakoś więcej i nie wiadomo co z czym jest połączone. W każdym razie przejrzyj dokumentację scalaka jak i płytki albo po prostu kup 74HC4051 w DIL16 i po sprawie.
  3. Po wstawiłeś rejestr i będziesz musiał męczyć się z SPI, skoro masz tyle wolnych pinów na module ESP? 
  4. Ze wzmocnienia i prądu kolektora policzyłeś maksymalny opornik jaki może być w bazie. Twoje tranzystory muszą pracować w głębokim nasyceniu - w końcu robisz statyczne klucze a nie wzmacniacz audio, więc opornik szeregowy powinien być kilka razy mniejszy niż wychodzi z obliczeń. No chyba, że IC jaki przyjąłeś jest już kilkakrotnie większy niż rzeczywisty, pobierany przez zawory. Wtedy margines bezpieczeństwa (wejścia w nasycenie) masz tutaj.
  5. Dlaczego utrudniasz sobie pracę cyfrowym czujnikiem temperatury ze skomplikowanym interfejsem 1-wire? To może być fajne gdy chcesz podpiąć kilka/naście punktów pomiarowych, ale to chyba nie jest przypadek podlewaczki w pokoju? Mając analogowe wejścia możesz użyć jednego z dziesiątek tanich scalaczków oddających napięcie (MCP9700, LM35 a nawet termistor za 20gr itp). Skoro i tak nauczysz się używać ADC, to pomiar jeszcze jednego wejścia nie będzie problemem. Albo, skoro już zdecydowałeś się na I2C, to może czujnik temperatury także na tej samej szynie? Zmniejszasz liczbę złącz i jakoś to wygląda bardziej spójnie. Przecież i tak oba czujniki będą gdzieś koło siebie.
  6. Jakiego prądu spodziewasz się na 3.3V? I dlaczego wstawiłeś tak ogromnnego kloca na zasilanie ESP? Czy nie wystarczy tu LM317 ustawiony dwoma opornikami na 3.3V? Mniejsze, tańsze i nie śmieci tak strasznie. Skąd ta moda na te beznadziejne, przedpotopowe przetwornice? Próbujesz rozdzielać masy i zadbać o czystośś sygnałów, a wprowadzasz sobie lekką ręką kilkadziesiąt (kilkaset?) mV tętnień na zasilanie procesora i czujników. 
  7. Poczytaj o pracy anteny modułu ESP. Tego typu struktury RF wymagają miejsca wokół. Płytka modułu powinna mieć antenę albo wystającą poza obrys miedzi na płycie głównej, albo przynajmniej być na krawędzi (wtedy z wybraniem masy pod anteną). To nie jest magia tylko reguły projektowania elementów radiowych.
  8. Masa na płytce jest do poprawy. Prowadząc w ten sposób zasilanie +12V do złącz zaworów odciąłeś im skutecznie masę. 
  9. Naprawdę nie ma innego miejsca na rezystory podciągające I2C tylko pod modułem ESP? Skoro i takna płytce masz wysokie TO220 to spokojnie wszystkie oporniki możesz zrobić pionowe. 
  • Lubię! 2
Link do komentarza
Share on other sites

Po pierwsze – dziękuję za zainteresowanie tematem.

Na początku postaram się odpowiedzieć na powyższe punkty, a potem opiszę poprawki wprowadzone w projekcie płytki od czasu publikacji pierwszego postu.

// odpowiedzi

Na razie nie planuję przesyłać płytki do realizacji. Przedstawiony projekt jest jedną z pierwszych wersji, a tych z pewnością będzie jeszcze sporo.

Wejścia analogowe są podłączone do płytki firmy SparkFun. Według opisu znajdującego się na stronie producenta, płytka co prawda pozwala na stosowanie ujemnego napięcia, jednak wymaga to usunięcia zwory JP1. Domyślnie VEE jest bowiem zwarte z GND.

Rejestr przesuwny zastosowałem, ponieważ przy pierwszych testach doszedłem do tego, że zabraknie mi wejść/wyjść. Potem założenia ewoluowały. Innym powodem było to, że przy bezpośrednim podłączeniu tranzystorów w trakcie inicjalizacji programu wyjścia te były „przypadkowo” wystawiane na krótki czas. Na tym etapie prac procesor pracował na tyle niestabilnie, że resetował się co 3-4 godziny pracy i za każdym razem zawory niepotrzebnie się otwierały. Nie znalazłem przyczyny tego stanu – uprościłem program, pozostawiając wyłącznie obsługę wyjść tranzystorowych; podłączałem tranzystory pod inne piny. Po podłączeniu rejestru oraz przepisaniu programu procesor przestał się resetować, a przy resecie wyjścia tranzystorowe i tak pozostają zamknięte.

Przy obliczeniach opornika na bazie opierałem na informacji producenta (informującej, że w trakcie przesterowania zawór pobiera do 800 mA – prawdę powiedziawszy, nie traktuję tego za 100% pewne. Zawory pochodzą bowiem z Chin. Samemu nigdy nie zmierzyłem ponad 400 mA). Stąd też przyjęte obciążenie jest i tak z dużym buforem bezpieczeństwa. Nie potrafię ocenić, czy ten bufor jest zbyt duży – spotkałem się z opinią, że powinien on wynosić jedynie 10-20%.

W poprzednich projektach testowałem inne czujniki temperatury i doszedłem do tego, że DS18S20 - jako jedyny, który testowałem - spełnia oczekiwania. Jest sprzedawany w wodoodpornej obudowie, działa w trudnych warunkach atmosferycznych, a sam pomiar jest dosyć dokładny. Na przestrzeni projektów dopracowałem funkcję do jego obsługi, tak aby pomiar był przeprowadzany bez blokowania, za pomocą przerwań. Poza tym, jak pisałeś w swoim poście, jeśli będzie to potrzebne, dołożenie dodatkowego czujnika nie wymaga żadnych poprawek w projekcie PCB.

Powód zastosowania płytki z BMP280 jest trywialny – stosowałem inne czujniki ciśnienia i żaden nie działał poprawnie przez dłuższy czas.

Planuję, że czujnik ciśnienia BMP280 zostanie zamknięty w obudowie, a DS18S20 będzie podłączony przewodem o długości od kilku do kilkunastu metrów (jeszcze jeden powód, że cyfrowy DS18S20 powinien się sprawdzić).

Nie mierzyłem prądu dla obwodu 3.3V, jedynie dla zaworów. W wolnej chwili postaram się zmierzyć, jaki jest pobór. Przetwornica to jeszcze jeden element z poprzednich projektów, który sprawdził się w boju. Przetwornice jako takie polecano na stronach internetowych jako „prawidłowe” podejście do zasilania (w kontrze do powszechnie stosowanego przez początkujących stabilizatora LM7805) i tak to pozostało. Pobieżny opis zastosowanej przetwornicy znajduje się pod tym adresem.

Otwarcie przyznam, że pierwszy raz spotykam się z obwodem RF w płytce swojego projektu. Poczytam na ten temat, postaram się też tak poprzesuwać elementy, aby utworzyć pustą przestrzeń bezpośrednio pod anteną. Prawdopodobnie będzie to oznaczać obrócenie procesora – jego pozycja wyszła stąd, żeby był swobodny dostęp do złącza USB. Program jest na tyle duży, że nie jestem w stanie stosować OTA (brakuje pamięci).

Oporniki podciągające postaram się przestawić tak, aby znajdowały się na górnej warstwie. Nie wpadłem też na to, żeby ustawić je pionowo.

 // poprawki w projekcie PCB

Poprawki te zostały zrobione jeszcze zanim otrzymałem odpowiedź, stąd też nie biorą one pod uwagę Twoich opinii.

Poprawki sprowadzają się do poprzestawiania poszczególnych elementów (74HC4051, 74HC595), aby oddzielić strefę analogową od cyfrowej oraz skrócić ścieżki magistrali I2C oraz 1 wire. Wszystkie piny GND NodeMCU są teraz podłączone do polygonu masy, zmieniłem nieco dystrybucję zasilania 3.3V.  Dodałem otwory montażowe oraz opis do niektórych złączy.

Obie warstwy:
asp_pcb_v2_2warstwy.thumb.png.9b4a1064677c0a13321004e7ab743d8d.png

Warstwa górna, z wyłączonymi polygonami:
asp_pcb_v2_warstwa_top.thumb.png.492043ded54ed3611a0b9f49bfc13cf5.png

Warstwa dolna, z wyłączonymi polygonami:
asp_pcb_v2_warstwa_bottom.thumb.png.0a0d5ee5232530f5e7bec5d9f9e15bab.png

Obie warstwy, zaznaczone magistrale I2C (żółty, pomarańczowy) oraz 1 wire (niebieski):
asp_pcb_v2_2warstwy_magistrale.thumb.png.9ead73db127fb2f0bf1937aee635e49c.png

Dodatkowe pytanie za 10 punktów - nie będzie problemem przy realizacji płytki to, że obrys BMP280 wystaje poza obszar samego PCB czy też powinienem poprawić ten element w bibliotece?

Pozdrawiam,
opp34

 

Link do komentarza
Share on other sites

Naprawdę wolałeś kupować jakąś płytkę ze Sparkfuna niż wstawić gotowy (mniejszy i pewnie 10x tańszy) scalak?

https://www.tme.eu/pl/details/cd74hc4051e/dekodery-multipleksery-przelaczniki/texas-instruments/

Rejestr przesuwny - rozumiem zaszłość historyczną. Pamiętaj, że nie jest powiedziane, że rejestr wyjściowy (ten równoległy) w tym układzie "budzi się" w stanie wyzerowanym. Nie widzę tu żadnego mechanizmu który by wymuszał wyłączenie wyjść (i tym samym tranzystorów) po starcie zasilania. Jeśli chcesz mieć pewność, że cisza po włączeniu i brak nieprzyjemnego "strzału" na zaworach (zanim ruszy procesor i wyzeruje rejestr) nie jest dziełem przypadku, to masz dwa wyjścia: albo wyłącz wyjścia rejestru (sygnałem /G) do czasu pierwszego zapisu z SPI, albo użyj 74HC594 - to bliźniaczy układ, ale w tym samym miejscu ma pin RESET:

https://assets.nexperia.com/documents/data-sheet/74HC_HCT594.pdf

Wielkość przesterowania tranzystora nie podlega jakiejś regule. Każda opinia osoby która wie co robi jest do obronienia. Gdy ktoś mówi 10% - OK, powinno wystarczyć na rozrzuty technologiczne a jeśli UCEsat jest do przyjęcia w danej aplikacji (tj. godzisz się z wielkością mocy strat) to w porządku. Gdy z drugiej strony widzisz przesterowanie 200% - to też jest OK, komuś zależało na niskim napięciu nasycenia nawet kosztem zwiększonego (i marnującego się) prądu bazy (nie mówiąc o pogorszeniu parametrów dynamicznych klucza). Tutaj prądu bazy i tak dużego nie potrzeba, napięcie nasycenia Darlingtonów i tak poniżej 1.2V nie zejdzie, zrób jak uważasz. Moim zdaniem dla zaworów 30Ω margines dwukrotny prądu jest OK.

Obudowa jest ważnym argumentem, chęć bezbolesnego rozszerzenia w przyszłości do kilku czujników także. Gdyby chodziło o samo fizyczne wykonanie, to myślę, że czujników rezystancyjnych typu PT-100 (rodzajów wykonania) jest tak ze 100 razy więcej niż opcji dostępnych dla DS18S20.

Przetwornica - trudno mi dyskutować z tym co polecano "na stronach internetowych". Pozory mylą więc jeśli ktoś uważa, że najbadziewniejsza przetwornica jest pod każdym względem lepsza niż stabilizator liniowy, to może być w błędzie, przemyśl to. Robisz układ po części analogowy, separujesz masy, dajesz jakieś kondensatorki, przenosisz ścieżki aby były krótsze a czujnikom i modułowi ADC czy RF posyłasz śmieciowe zasilanie. Zastanów się dwa razy nad każdym elementem/modułem który robi sieczkę na zasilaniu, bo w jedną stronę jest łatwo, ale pozbyć się tego potem z wyników - bardzo trudno. Oczywiście nie jest to przyrząd pomiarowy tylko zabawka na parapet, ale sztuka cierpi (no i po co wtedy całe to zawracanie głowy np. z separacją mas).

Jeśli nie będziesz w ogóle używał WiFi, to oczywiście uwagi o antenie możesz puścić w niepamięć. A jeśli liczysz na łączność radiową, to poniżej masz trochę o antenie 2.4GHz na modułach. Innych, ale to nie ma znaczenia. Moduły z anteną "chipową" na to samo pasmo (np. maluchy z BT/BLE) mogą mieć tego miejsca trochę mniej, ale ona także jest bardzo czuła (może nawet bardziej) na odstrojenie i spadek sprawności, więc reguły są podobne.

https://www.espressif.com/sites/default/files/documentation/esp-wroom-02_pcb_design_and_module_placement_guide_0.pdf

https://www.st.com/resource/en/design_tip/dm00568296-ble-module-integration-design-guidelines-stmicroelectronics.pdf

https://www.st.com/resource/en/design_tip/dm00568296-ble-module-integration-design-guidelines-stmicroelectronics.pdf

Poza tym pomyśl: wysyłasz mocny sygnał 2.4GHz z nadzieją że zostanie odebrany przez oddalony router WiFi i zakładasz, że żadna ze ścieżek na Twojej płytce nie odbierze tego czegoś? Otóż każda to zassie, choć nie każdej to przeszkodzi w działaniu. Jeśli to będzie RESET - załatwi Ci procesor, jeśli coś analogowego - zniszczy pomiar, a jeśli I2C - może być powodem np. przekłamania bitu adresu. Zminimalizuj ten wpływ przez odpowiednie posadowienie modułu, odsunięcie masy i wszystkich ścieżek z obszaru anteny a za darmo zwiększysz niezawodność i zasięg.

Jak daleko masz od tej płytki do źródła zasilania? Bo nie widzę niczego co ograniczyłoby przenoszenie zakłóceń z tej nieszczęsnej przetwornicy do kabla zasilającego i dalej w powietrze. 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Zastosowałem płytkę z 74HC4051, ponieważ ją posiadałem, a samego układu nie. Pierwsza wersja schematu odpowiadała temu, co zastosowałem w trakcie testów. W nowszej, znajdującej się poniżej wersji, wstawiłem scalaka. Nie jestem pewien, czy tak pozostanie – po pobieżnych poszukiwaniach znalazłem tylko jedną stronę, które posiada go w ofercie.

Zabezpieczenie wyjść przed wysterowaniem było przeprowadzane programowo i w przypadku zastosowania rejestru przesuwnego oraz ustawiania pinów nim sterujących jako wyjścia i wyzerowanie ich na samym początku pracy programu przyniosło pożądany efekt. W przypadku bezpośredniego podłączenia tak nie było. W wolnej chwili przetestuję zabezpieczenie hardware’owe – na razie do schematu dodałem podłączenie pomiędzy procesorem a wejściem /G 74HC595 wraz z rezystorem podciągającym 100K.

Poprawiony schemat, część 1:
1017504435_asp_schemat_v2_cz1.thumb.png.f832d2ec556cd79272de52f406a1fb86.png

Poprawiony schemat, część 2:
1367828399_asp_schemat_v2_cz2.thumb.png.ab5244bd8feef8dcac547da793727649.png

W swoich pierwszych projektach stosowałem najprostsze stabilizatory napięcia. Dopytując na ich temat, otrzymywałem odpowiedzi, że stosując stabilizator, narażam się na dużą temperaturę wewnątrz obudowy i niepotrzebne straty mocy. O ile w przypadku niedużej rozbieżności pomiędzy napięciem wejściowym a wyjściowym to przejdzie, tak przy 12 V trzeba zastosować jakąś formę chłodzenia (a było to przy obwodach 5V). Do tego dochodzą artykuły typu ten i ten (pewnie jest to w jakimś stopniu promowanie swojego produktu, natomiast sam autor na 100% wie więcej niż ja, przeciętny amator).

Dziękuję za przesłanie dokumentacji dotyczącej projektowania płytek (trzeci odnośnik jest niepotrzebny? Jest identyczny, jak drugi). Na ich podstawie wprowadziłem poprawki do PCB. Obróciłem procesor, żeby antena znajdowała się na obrzeżach płytki (jednocześnie odsunąłem go od pozostałych elementów, aby była opcja podłączenia się do USB za pomocą złącza kątowego). Przerobiłem obudowę procesora w bibliotece, teraz wymiary oraz położenie anteny odpowiada pomiarom zdjętym z rzeczywistej płytki (pozbyłem się też opisu przeszkadzających pinów). Przeprojektowałem obrys płytki, żeby bezpośrednio pod anteną była pusta przestrzeń. Polygony masy odsunąłem jeszcze dalej.

Poprawiony projekt płytki, obie warstwy:
(obrys płytki jest niezbyt widoczny, z jakiegoś powodu przy eksporcie obrazu kolor tła jest identyczny z kolorem płytki)
asp_pcb_v3_2warstwy.thumb.png.146903e01979a6aeaa3183c5b119a908.png
Poprawiony projekt płytki, warstwa górna:
asp_pcb_v3_warstwa_top.thumb.png.9948b081517777cf4276dc8249cde215.png
Poprawiony projekt płytki, warstwa dolna:
asp_pcb_v3_warstwa_bottom.thumb.png.67a09ae1b300ba9cf538debfbf2d0d95.png
Zbliżenie na umiejscowienie anteny:
(screenshot prosto z edytora)
asp_pcb_v3_antena.thumb.png.11a36777f344ec850554df889925d9b4.png

Pozdrawiam,
opp34

  • Lubię! 1
Link do komentarza
Share on other sites

Gość

Kilka lat temu stworzyłem podobne urządzenie.Jeśli mogę podpowiedzieć to pierwsze elementy,które bym zmienił to zawory na najnowszej generacji.Zawory dwustanowe sterowane impulsami .W tych zaworach istotny jest kierunek pola magnetycznego to znaczy jeśli załączenie ma kierunek "A" to wyłączenie ma kierunek przeciwny"~A"( ~ czytaj znak negacji). Zawory są amerykańskie ale ktoś mi powiedział,że podobno w Polsce ktoś też opracował podobny zawór i jest produkowany.Zastosowanie tego typu zaworu skutkuje dużymi oszczędnościami energii bo nie trzeba linii zasilającej lub dużych akumulatorów lecz trzech baterii 18650 połączonych szeregowo. U mnie taki impuls trwa 0,5sek i to wystarcza by otworzyć lub zamknąć zawór.Do sterowania zaworów zastosowałem  gotowe moduły  silników krokowych L298N za 8,5 zł(niestety na rynku jakoś nie mogłem znaleźć nowocześniejszej wersji) .W centralce sercem jest moduł arduino pro-mini,który obsługuje moduł nadawczo-odbiorczy,zegar czasu rzeczywistego oraz moduł LCD 4x20.Konstrukcja czujnika wilgotności oparta  jest na HC7414 a sam sensor to płytka laminatu dwustronnie miedziowanego o wymiarach ok.1cmx1cm z przylutowanymi przewodami.Płytka po przylutowaniu przewodów została trzykrotnie lakierowana.

Edytowano przez szymonw
Link do komentarza
Share on other sites

Dziękuję za podpowiedź. Nie spotkałem się z zaworami działającymi na zasadzie podobnej do wyświetlaczy w czytnikach elektronicznych. Do rozważenia w ewentualnych przyszłych wersjach projektu. W stosunku do poprzedniej wersji zaszło i tak dużo poprawek - inny procesor, utworzenie od podstaw aplikacji na androida, przeprojektowanie płytki PCB. Dużo jak na jedną osobę, nawet bezrobotną.  

Link do komentarza
Share on other sites

Przypomnę o sobie i sam sobie wytknę, że błędnie dobrałem wartości kondensatorów do 74HC595 oraz 74HC4051. W dokumentacji producent podaje ile powinno być kondensatorów oraz prawidłowy przedział ich wartości. Jest to opisane tutaj (power supply recommendations) oraz tutaj (layout guidelines). Na tej podstawie zmieniłem wartości oraz pozbyłem się kondensatora C4 (stosowanego, jeśli potrzebne jest napięcie VEE).

Poprawiony fragment schematu:
asp_schemat_v3.thumb.png.055aea4470e22542a3a9a8382cde2308.png

Link do komentarza
Share on other sites

Powrócę do innego tematu - przetwornicy oraz zasilania obwodu 3.3 V. Zmierzyłem, że w trakcie normalnej pracy pobór to ok. 80 mA, przy otwartych wszystkich zaworach dochodzi do 140 mA. W przypadku napięcia na wejściu 12 V, na wyjściu 3.3 V, moc, którą trzeba rozproszyć to P = (12 V - 3.3 V) * 0.14 A = 1.22 W. Z przeglądanych stabilizatorów wartość RthJA (thermal resistance junction-ambient) dla obudowy TO-220 wynosiła przynajmniej 50 oC/W (przykładowo dokumentacja LF33CV jest tutaj), a to przełożyłoby się na T = 1.22 W * 50 oC/W = 61 oC. W założeniach płytka znajdzie się w hermetycznej obudowie, a przewody zostaną doprowadzone przez dławiki kablowe. W zależności od zastosowania, istnieje opcja, że obudowa będzie znajdować się "na wolnym powietrzu". 

Czytając na ten temat w internecie, znalazłem opinię, że w przypadku tak dużej różnicy pomiędzy napięciem na wejściu i wyjściu (i stosunkowo dużym poborze prądu) powinno się stosować przetwornice. Jeśli jednak stanowi ona problem, jakie są pozostałe opcje? Zastosowanie radiatora przy stabilizatorze, wentylacja obudowy? Zastosowanie w szeregu przetwornicy (np. 12V na 5V) i stabilizatora liniowego (5V na 3.3V) - tego typu podejście się w ogóle praktykuje, jest o co kruszyć kopie?

Link do komentarza
Share on other sites

(edytowany)

Ponownie o sobie przypomnę, odświeżając stan projektu. Od ostatniego czasu testowałem podłączenia czujników analogowych - podłączenie bezpośrednio pod jedyne wejście analogowe, poprzez 74HC4051 oraz za pośrednictwem zewnętrznego przetwornika ADS1015. Było to powodowane tym, że przeczytałem opinię, że działające połączenie WiFi potrafi przeszkadzać w prawidłowej pracy wbudowanego przetwornika. Ostatecznie w trakcie testów się to nie przydarzyło, a pomiar z zastosowaniem ADS1015 nie usprawiedliwia jego ceny, toteż pozostałem przy poczciwym 74HC4051.

Zastanawiałem się też nad pracą przy braku połączenia z internetem, doszedłem do tego, żeby zastosować zegar RTC DS3231 z interfejsem I2C oraz SPIFFS, w którym przechowuję ostatnio wprowadzone ustawienia oraz odczytuję je w chwili utraty połączenia z siecią. Wymagało to przestawienia konfiguracji, dotychczas bowiem nie stosowałem SPIFFS w ogóle, a to doprowadziło do problemów z pamięcią...

Poprawiony schemat:
Część 1:
 414642318_asp_schemat_v4_cz1.thumb.png.be6fa26c0c08fdd56edc01b581919d83.png

Część 2:
1373992329_asp_schemat_v4_cz2.thumb.png.11cb023b3d7fa3a346c009b3cd6a3905.png

Poprawiony projekt płytki:
Dwie warstwy:
asp_pcb_v4_2warstwy.thumb.png.ea050363fb5b771aebf2deb4f25e887e.png

Warstwa górna:
asp_pcb_v4_warstwa_top.thumb.png.697964fd2f7d1fc0aabf593430e27615.png

Warstwa dolna:
asp_pcb_v4_warstwa_bottom.thumb.png.5d140a68868b4c22428780e0a2c1cc3b.png

Jako nowalijka pozwolę sobie podzielić się pierwszymi rzutami z aplikacji:
device-2021-03-14-180609.thumb.png.2f5f28899fe70cfca7d3e11f89a37b10.pngdevice-2021-03-14-191533.thumb.png.fd02eb9cada1480a0e3bc26d6dfe4727.pngdevice-2021-03-15-162721.thumb.png.3140d71030d50b4d04b26e8abd525af8.pngdevice-2021-03-15-163504.thumb.png.f7440a602e664274e7edfddf531aa8ef.png

Edytowano przez opp34
  • Lubię! 1
Link do komentarza
Share on other sites

Interesujące...

Zastanawia mnie tylko czemu THT, ale pewnie jeszcze nie doszedłeś do "epoki SMD" w Twoim życiu projektanta... Powiem tylko, że SMD jest znacznie wygodniejsze w przechowywaniu, ale to już kwestia gustu. Kiedyś i tak będziesz do tego zmuszony 😉 

W aplikacji (jako UX designera i programistę) boli mnie trójkąt nachodzący na "strefa 3" i ciut małe marginesy na stronach, ale to też kwestia gustu...

A co do samego pomysłu to myślałem o czymś podobnym, ale aktualnie czasu brak (praktycznie na wszystko)... i za gorąco dla mnie - rano (11-12) z zasłoniętymi roletami i otwartym oknem mam 33*C... Wieczorem spada do 30... Dodać do tego rozgrzaną lutownicę i drukarkę 3D i byłoby ze 40 (warsztat mam na 12m2 upchany)...

W każdym razie życzę powodzenia...

Link do komentarza
Share on other sites

Po prawdzie to poprzednia wersja projektu była oparta o elementy do montażu powierzchniowego. Ich lutowanie przyszło mi z trudem - nie posiadam odpowiedniego sprzętu, odpowiedniej praktyki w samym lutowaniu a do tego te elementy są tak małe, że w tej wersji przeszedłem z powrotem na elementy przewlekane. 

Z przyjemnością zapoznam się z opiniami na temat aplikacji - jest to pierwsza aplikacja na Androida, którą sam stworzyłem, posiadam też niewielkie obycie z projektowaniem interfejsu użytkownika. W przypadku trójkąta, jest to Floating Action Button, który jest scalony z Action Bar (paskiem na górze z nazwą aplikacji oraz statusem użytkownika. Swoją drogą, jego kolor - niebieski, żółty lub zielony - zmienia się w zależności od ustawionego trybu pracy). Oba te elementy są stałe i nie poruszają się, a aplikacja jest złożona z jednego podłużnego okna, które jest przewijane. To też jest jedną z przyczyn tego, że aplikacja nie jest w pełni płynna na starszych telefonach (wszystkie przyciski i inne elementy są przypisane do jednego okna; jeśli zastosowałbym zakładki, wykonywany byłby tylko ten program, który jest przypisany do obecnie wyświetlanej zakładki oraz jej sąsiądów - człowiek uczy się na błędach. Nie bez powodu aplikacje typu LinkedIn posiadają podział na zakładki). Po naciśnięciu trójkąta pojawiają się dodatkowe przyciski typu FAB, które służą na przykład do logowania lub zainicjowania odczytu z czujników. Stąd też to, że trójkąt akurat zasłonił strefa 3 to tylko przypadek przy robieniu zrzutu. 

Co powinienem poprawić z marginesami? O które marginesy chodzi? Ogólnie starałem się, żeby wszystkie przyciski (oznaczone pogrubionym tekstem lub kolorem, jak te do wprowadzania terminów podlewania) znajdowały się po lewej stronie lub na środku (z powodu obsługi prawą ręką). Otwartym pozostaje pytanie, czy takie oznaczenie przycisków jest czytelne dla nowego użytkownika (ja sam przecież dobrze wiem, co jest gdzie i jak działa). 

Link do komentarza
Share on other sites

8 minut temu, opp34 napisał:

Z przyjemnością zapoznam się z opiniami na temat aplikacji - jest to pierwsza aplikacja na Androida, którą sam stworzyłem, posiadam też niewielkie obycie z projektowaniem interfejsu użytkownika.

Naczelna zasada to taka, by użytkownik nie musiał przesuwać palca dalej niż o 1/3 ekranu 😉 (taki "rule of thumb" dla UX), bo potem strasznie go to męczy i usuwa aplikację. [Ta zasada nie dotyczy okienek w aplikacjach, które zarabiają z reklam].

9 minut temu, opp34 napisał:

aplikacja jest złożona z jednego podłużnego okna, które jest przewijane

To nie jest problem o ile rozwiążesz to w dość sprytny sposób i użyjesz techniki cullingu - ukrywasz to, czego użytkownik nie może zauważyć. Przykład z Idle Fish Aquarium - akwaria, których nie widzisz są całkowicie wyłączone i symulowane równaniem matematycznym 😉 

11 minut temu, opp34 napisał:

Co powinienem poprawić z marginesami? O które marginesy chodzi?

Marginesy po bokach są imo ciut za wąskie, przez co na ekranie telefonu bez ramek może to wyglądać tragicznie 😉 

12 minut temu, opp34 napisał:

Ich lutowanie przyszło mi z trudem - nie posiadam odpowiedniego sprzętu

Wystarczy zwykła (grotowa) lutownica i trochę RMA223 😉 Ja ostatnio lutowałem 260-pinowe złącze DDR4 (rozstaw pinów 0.5mm), więc te kilka układów to nie problem 😉
Btw. lutowane bez mikroskopu czy lupy, ale w posiadaniu mam Zeno Vizor H7, która czasem się przydaje (0402-). Elementy 0805 można bez problemu lutować bez niczego najprostszą lutownicą grotową (z transformatorem daleko się nie zajedzie). Tak samo wszystkie obudowy klasy SO(P)[8/16/...]. 0603 też się da bez niczego, ale do tego trzeba już mieć ciut więcej cierpliwości. Nie zniechęcaj się, SMD jest dużo wygodniejsze niż THT, tylko potrzeba chwili na przyzwyczajenie się i opanowanie sztuczek.

18 minut temu, opp34 napisał:

Ogólnie starałem się, żeby wszystkie przyciski (oznaczone pogrubionym tekstem lub kolorem, jak te do wprowadzania terminów podlewania) znajdowały się po lewej stronie lub na środku (z powodu obsługi prawą ręką).

To akurat bardzo dobre rozwiązanie 😉 

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Informację o małych marginesach dopiszę do listy z punktami do zrobienia. Nie jest to aż tak prosta poprawka do wprowadzenia, ponieważ wymagałoby to też przesunięcia innych elementów - na załączonych zrzutach tego nie zaobserwujecie, w rzeczywistości jest jeszcze jedna opcjonalna kolumna, w której pojawiają się wartości, które zostały wprowadzone przez użytkownika, a nie zostały jeszcze odczytane przez procesor (jako informacja, że program wciąż pracuje w oparciu o stare ustawienia. W bazie danych są dwie identycznie struktury - wejściowa, do której trafiają wartości wpisane przez operatora, oraz wyjściowa, do której procesor przepisuje wartości, które obecnie przechowuje w swojej pamięci. Aplikacja porównuje te wartości i jeśli są rozbieżne, pojawia się stosowna informacja). 

W przyszłej wersji projektu, ewentualnie przy większym zainteresowaniu bieżącą wersją, zapewne przeprojektuję płytkę i przejdę na SMD. Przy ostatnim podejściu stosowałem elementy w obudowie 0802 i 0805, lutowałem je prostą, tanią lutownicą grotową z regulacją temperatury (nie przypomnę sobie nazwy). Samo ustawienie ich na pozycji za pomocą pęsety to było utrapienie.  

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.