Skocz do zawartości

Sterownik oświetlenia schodów LED - weryfikacja założeń


Pomocna odpowiedź

Cześć,

Jestem świeżo po zrobieniu kursów podstaw elektroniki + arduino i chciałbym zrobić swój pierwszy (dość prosty) projekt. W związku z tym chciałbym prosić o weryfikację poniżej opisanych założeń i pomysłów.

Cel projektu: sterowanie podświetlaniem schodów paskami LED z możliwością płynnego ściemniania, gdzie każdy stopień jest sterowany niezależnie. Z częścią softwarową nie powinienem mieć problemu, więc zależy mi głównie na weryfikacji części hardwarowej.

Sterownik (oparty na Arduino Uno rev3) ma się komunikować z domowym serwerem Home Assistant za pośrednictwem MQTT, skąd otrzyma informacje o wykrytym ruchu na górze lub na dole schodów (jeśli kogoś to interesuje, to czujki ruchu bezprzewodowe po zigbee, wykorzystane w Home Assistant też w innych celach).

Do sterowania jest 17 niezależnych pasków LED, każdy o długości 1m. Parametry paska to 12V DC, 4,8W/m. Paski są już zamontowane i wpięte (oczywiście równolegle) do zasilacza 12V/120W.

W tej chwili posiadam tylko zestawy do kursów, więc z tego co się nauczyłem 😉 i sam znalazłem muszę dokupić:

  1. Shield Ethernet (lub WiFi - jeszcze się waham, czy ciągnąć kabel)
  2. Shield dodający co najmniej 11 wyjść ze sprzętowym PWM, np. taki + zestaw złączy żeńskich (żeby łatwo wpiąć się do wyjść PWM z bazowego Arduino)
  3. Moduł z tranzystorem MOSFET i gotowymi złączami śrubowymi - 17 sztuk
  4. Trochę przewodów męsko-żeńskich

Do tej pory poza wspomnianymi kursami przetestowałem na płytce stykowej (taki PoC), że jestem w stanie sterować ściemnieniem jednego odcinka paska za pomocą tranzystora MOSFET BS170 (dołączonego do zestawu szkoleniowego), jednak ten mały tranzystor szybko się mocno nagrzał. Daje mi to jednak nadzieję, że jestem w stanie to zrobić 🙂

Poza tym planuję zabrać się teraz za kurs lutowania, bo będzie mi to potrzebne do zlutowania shielda z punku 2. (i tak chciałem się tego nauczyć 😉)

Pytania jakie mam na początek:

  1. Czy tak opisany zestaw będzie optymalny pod względem kosztów/jakości? W założeniach sterownik ma chodzić 24h/dobę (chociaż przez większość czasu oświetlenie będzie po prostu wyłączone).
  2. Czy mogę zasilać arduino z tego samego zasilacza co LEDy (12V)? Czy lepiej kupić osobny mniejszy zasilacz impulsowy (np. taki).
  3. W czym zamknąć cały sterownik? Są gotowe obudowy/puszki na takie zestawy? Całość nie musi być ani ładna, ani mała (będzie ukryta w szafie).

Z góry dzięki za pomoc!

Edytowano przez michal2
Link to post
Share on other sites
(edytowany)

@Treker, dzięki za zainteresowanie. Część sprzętu już mam, szczególnie podlinkowane moduły MOSFET. Teraz sterowanie jednym paskiem nie powoduje praktycznie żadnego grzania na tranzystorze. Testowo podłączyłem też zasilanie Arduino z tego samego zasilacza co LED i wszystko wydaje się działać.

Na ten moment mam takie wątpliwości:

1. Czy na dłuższą metę zasilanie arduino i LEDów z jednego zasilacza (jak na zdjęciu) będzie OK? Z samych parametrów wydaje się, że tak, ale martwi mnie ten dopisek "For LED module only". Co on może oznaczać?

2. Jak w praktyce "usztywnić" ułożenie elementów i zamknąć całość? Arduino i moduły MOSFET mają otwory do przykręcenia do podłoża. Co myślisz o przykręceniu wszystkich elementów do laminowanego panela podłogowego (mam jakieś tam resztki...), a następnie zamknięce w jakiejś obudownie uniwersalnej lub innym plastikowym pojemniku? Tutaj mam problem ze znalezieniem dużej obudowy uniwersalnej.

 

20210122_092312.jpg

Edytowano przez michal2
  • Pomogłeś! 1
Link to post
Share on other sites

@marek1707, dzięki za pomoc!

Czyli zasilacz z czarnej listy, można zamknąć temat... nie, żartuję 😉

Do arduino planuję dołożyć jakiś shield WiFi oraz dokładnie ten shield z PWM.

Arduino ma sterować tylko paskimi LED, bez żadnych dodatkowych wejść i wyjść. Czy w takim przypadku myślisz, że mogę zasilić je z tego wspólnego zasilacza co paski (ew. ze wspomnianym rezystorem), czy jednak kupić coś osobnego dla arduino i podłączyć do 230V równolegle z tym co mam?

Jeśli coś osobnego, to mam problem znaleźć na botland mały zasilacz dla arduino ale w formie montażowego (bez wtyczki).

Np. tutaj wszystkie są opisane jako dla LEDów właśnie.

Może taki tylko uciąć mu wtyczkę?

Link to post
Share on other sites

Wiesz, osobny zasilacz o odpowiedniej wydajności zawsze jest bezpieczniejszym rozwiązaniem niż popędzanie komputerka, radia i sporych obciążeń PWM z jednego źródła. Niemniej jednak, mając już taki zasilacz ja bym go nie skreślał, bo jednak pojedyncze pudełko jest wygodniejsze niż kilka zasilaczy, obcinanie wtyczek czy co tam jeszcze wymyślisz. Arduino ma swój stabilizator, ten ma na wejściu jakąś pojemność i po dodaniu opornika robi się prosty filtr. Układ filtra RC ma jednak tę wadę, że wprowadza straty i napięcie jakie będzie widziało Arduino na VIN będzie zależało od prądu jaki ciągnie cała część sterująca. Sam procesor i shield PWM to jakieś mA więc opornik w granicach 10-47Ω niewiele pogorszy a już zasilanie będzie dużo "spokojniejsze". Najbardziej obawiam się WiFi, bo to potrafi szarpać w złych warunkach łączności i kilkaset mA w krótkich impulsach.

Nie rób żadnej czarnej listy tylko zwyczajnie to sprawdź. Dokup WiFi, złóż cały zestaw, napisz jakiś prosty program do łączności i przetestuj. Jak będą zwiechy, resety albo połączenie będzie wyraźnie się rwać, to będziesz myślał co dalej. Zasilacz pasuje do największego obciążenia w systemie czyli do pasków LED i to jest najważniejsze. Być może trzeba tylko dopracować sposób zasilania tych delikatniejszych elementów.

A tak na marginesie, to nie wiem czy przy tak szerokiej ofercie fajnych płyteczek z natywnym WiFi na pokładzie, zmuszanie biednego UNO do gadania przez ten interfejs jest optymalne - tak kosztowo co i objętościowo. Nie potrzebujesz tu wielu pinów i sporej płytki jaką jest UNO a przecież z modułem generatora PWM równie dobrze może się dogadać jakieś ESP32 czy inne ESP8266. Kosztuje pewnie tyle samo i jak rozumiem jedynym argumentem "przeciw" jest to, że nie znasz tych komputerków. Może więc to dobra okazja, by je poznać? Jest tu paru speców w tym temacie (bo to nie moja działka) i na pewno pomogą.

  • Lubię! 1
Link to post
Share on other sites
(edytowany)

trochę kosztowna konstrukcja, koniecznie potrzebujesz robienie shielda - kanapki?

Zrób sobie płytkę pod swoje potrzeby, jak się zmieścisz w wymiarach 10x10cm to możesz mieć z chin za 5usd, albo za free (po kosztach przesyłki w ilości min. 10sztuk), albo połącz kabelkami wszystkie płytki na jakieś plexi, też będzie dobrze i ładnie, chyba że masz bardzo mało miejsca na sterownik.

Jeśli ma być 17 kanałów PWM to bym się pokusił o moduł z np 24 kanałami, a nie 16, żeby sobie uprościć zadanie.

np. https://www.aliexpress.com/item/4001023247877.html

obsługa TLC 594X w arduino jest całkiem prosta, są przykłady, animacje.

A zamiast 17 płytek z mosfetami do LED, zrobiłbym na jednej uniwersalnej, nawet bez złącz, przewody przylutowane do płytki, albo mosfeta.

Dużo taniej, taki sterownik jak już raz się zrobi to się go nie rusza i zapomina o nim, przynajmniej hardware, z firmware trochę inaczej.🙂

co do zasilacza, mam już kilka konstrukcji działających na tym:

https://www.aliexpress.com/item/32819181931.html

fajny bo niski profil, upychasz w rewizji, jest zimny i cichy.:)

zastanawiałeś się na czujnikiem światła? schody nie muszą się podświetlać w jasny dzień.

aa i zapomniałem, Wemos D1 mini działa stabilnie na np. tym 5V zasilaczu:

https://www.aliexpress.com/item/32668925116.html jeśli chcesz sobie rozdzielić zasilanie,

jeśli nie, to spokojnie możesz użyć:

https://abc-rc.pl/product-pol-7564-Modul-zasilania-mini-AMS1117-3-3V-800mA-Arduino.html

albo

https://abc-rc.pl/product-pol-7020-Przetwornica-DC-DC-Step-Down-Mini-360-1-8A-1-17V-mini-uklad-zasilajacy.html

dałbym też jakiś bezpiecznik za zasilaczem na 7.5A, taki samochodowy mini:

https://www.aliexpress.com/item/32902732357.html

Edytowano przez polihedron
  • Lubię! 1
Link to post
Share on other sites

@marek1707 dzięki za poradę o zasilaczu. Tak też planowałem sam zrobić, czyli najpierw przetestować jak to się sprawdzi i dopiero w razie potrzeby dodawać inne zasilanie. Dokładnie tak jak napisałeś: użycie jednego zasilacza będzie wygodniejsze. Uwaga o stabilności shielda WiFi bardzo cenna, będę wiedział na co zwracać uwagę.

Odnośnie wykorzystania ESP32 czy innego układu jak opisuje to @polihedron: też to rozważałem, ale doszedłem do takich wniosków:

1. Już mam arduino uno, które się "kurzy".

2. ESP32 sam wcześniej rozważałem, ale ono obsługuje tylko 16 PWM, a nie znalazłem informacji jak dodać więcej (dla arduino szybko znalazłem, żeby użyć shielda).

3. Od strony hardware jestem totalnie początkujący, więc żeby się nie zrazić i szybko uzyskać dobre efekty, wolę użyć rozwiązań nieco droższych ale "łatwiejszych".

Oczywiście nie wykluczam podmiany samego sterownika w przyszłości, jeśli np. dla arduino znajdę lepsze zastosowanie.

@polihedron, odnośnie czujnika oświetlenia, to jak najbardziej, ale planuję to zrobić w nieco inny sposób: sterownik ma obsługiwać tylko "tryby", np. wieczór, noc, dzień, demo... a sam tryb ma być ustawiany (przez MQTT) z poziomu Home Assistant (na podstawie różnych parametrów, nie tylko natężenia oświetlenia).

Link to post
Share on other sites
(edytowany)
6 godzin temu, michal2 napisał:

ESP32 sam wcześniej rozważałem, ale ono obsługuje tylko 16 PWM, a nie znalazłem informacji jak dodać więcej

[...] Na przykład podłączyć moduł sterownika 16 x PWM (na 9685, taki jak Twój shield, tylko bez tych śmiesznych pinów, na Aledrogo poniżej 20 PLN).

Uprzedzając pytania: mam, podłączyłem, chodzi bardzo dobrze na 400 kHz, aktualnie steruje 5 serwami i 3 ledami.

Edytowano przez Treker
PPF
Link to post
Share on other sites

Miało być łatwo i szybko a wyszło jak zwykle 😉

Główny problem na jaki trafiłem jest następujący:

dla testu kod programu jest maksymalnie uproszczony:

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

void setup() {
  pwm.begin();
  pwm.setPWMFreq(1600);

  pwm.setPin(0, 4096);
  //pwm.setPWM(0, 0, 4096);
  analogWrite(11, 255);
}

void loop() {}

Jeśli pasek LED jest podłączony przez moduł MOSFET do wyjścia 11 arduino, to świeci ładnie na 100%. Gdy jest podpięty do wyjścia 0 shielda PWM, pasek świeci tylko tak na ~20%. Miernikiem uniwersalnym zmierzyłem napięcie wyjść i z arduino jest to ~5V, podczas gdy z shielda ~3,5V.

Dopiero później doczytałem z opisu shielda:

Cytat

Posiada rezystory 220 Ω włączone szeregowo w obwody wyjść, dzięki którym można bezpośrednio sterować diodami LED.

Czy dobrze rozumiem, że to jest przyczyną? Raczej nic w sensowny sposób z tym nie zrobię i ten shield po prostu do tego celu się nie nadaje?

Poza tym głównym problemem same wtopy sprzętowe:

2. Shield WiFi tylko przez pierwsze kilka sekund po uruchomieniu jest w stanie wysłać dane, potem tylko odbiera, ale z tym mógłbym żyć, bo sterownik ma mieć same wyjścia. Później w komentarzach na angielskich stronach znalazłem różne opisy problemów tego shielda.

3. Podczas desperackich prób zdiagnozowania problemu 1. coś źle podłączyłem i na adruino spalił się (był dym 😉) ten element: obraz.thumb.png.2c6264a3e121701f6b9a9a4f666aa047.png

I już nie mogę się z nim połączyć po porcie COM, mimo że dostaje zasilanie z USB.

Podsumowując powyższe, skoro już nie mam arduino 🤣, to poważnie rozważam przejście na samo ESP32, z którego wykorzystałbym wszystkie 16 wyjść PWM, a ponieważ schody są zabiegowe, to ani z dołu, ani z góry nie są widoczne w tym samym czasie dwa środkowe stopnie, więc te dwa byłyby sterowane wspólnie, a animacja powinna wyglądać OK dla nieświadomych użytkowników 😉.

Tutaj jednak prosiłbym o potwierdzenie: czy na wyjściu PWM z ESP32 przy pełnym wypełnieniu sygnału dostanę 5V? (żeby wykorzystać przynajmniej moduły MOSFET, które już mam)

Link to post
Share on other sites
(edytowany)
9 godzin temu, michal2 napisał:

Tutaj jednak prosiłbym o potwierdzenie: czy na wyjściu PWM z ESP32 przy pełnym wypełnieniu sygnału dostanę 5V?

@michal2 Z ESP możesz mieć też sporo problemów, na początek AVR jest na pewno bardziej przyjazne i dopracowane. A co do pytania to nie, ESP ma 3,3V.

9 godzin temu, michal2 napisał:

coś źle podłączyłem i na adruino spalił się

Chyba spaliłeś tylko regulator, chyba. Trzeba by go wyrzucić i pomierzyć napięcia, bo on odpowiada za generowanie 5V z napięcia po złączu koncentrycznym od zasilacza.

Piszesz chyba o 2 różnych shieldach, z tym pierwszym nie ma raczej problemu, tylko to nie ma zasilania do pasków LED tu trzeba by inaczej pomyśleć. Narazie masz schemat ze strony Adafruit do przejrzenia ale to już podejmuj decyzje w jaką stronę idziesz 😉 

image.thumb.png.3fedf8a6b3b2d16a8d70fd595dd1b462.png

Edytowano przez Gieneq
Link to post
Share on other sites

Teraz to już nic nie rozumiem.

Kupiłem dokładnie ten shield: https://botland.com.pl/arduino-shield-kontrolery-silnikow-i-serw/2448-sterownik-serw-16-kanalowy-12-bitowy-pwm-i2c-shield-dla-arduino-adafruit-1411.html

W szczegółach produktu jest napisane:

Cytat

NAPIĘCIE ZASIL. OD: 5.0 

Ze schematu, który wrzucił @Gieneq wynika (jeśli dobrze go odczytuję) że wyjścia PWM też powinny dawać 5V, jednak z tego co sam zmierzyłem jest tam raczej 3,3V, a znalazłem jeszcze taki wątek: https://forums.adafruit.com/viewtopic.php?f=8&t=62013 z którego wynika, że autor wręcz oczekuje 3,3V, a wychodzi mu tylko 1V.

Ja tu czegoś nie rozumiem, czy coś tu jest nie tak?

Teraz też widzę, że napięcie wyjściowe 3.3V jest dużo bardziej popularne, sam już też znalazłem, że dla ESP32 jest to 3.3V. Na pierwszy rzut oka mógłbym użyć czegoś takiego: https://botland.com.pl/plytki-zgodne-z-arduino-adafruit/14406-metro-m4-express-airlift-wifi-zgodny-z-circuitpython-i-arduino-adafruit-4000.html juz bez żadnych shieldów, ale tutaj też wyjścia mają 3.3V.

@Gieneq masz na myśli jakiś konkretny sterownik AVR? To co sam znalazłem też ma raczej 3.3V na wyjściach, a już na pewno nie ma przynajmniej 16 wyjść PWM.

Link to post
Share on other sites
(edytowany)
14 godzin temu, michal2 napisał:

Jeśli pasek LED jest podłączony przez moduł MOSFET do wyjścia 11 arduino, to świeci ładnie na 100%. Gdy jest podpięty do wyjścia 0 shielda PWM, pasek świeci tylko tak na ~20%. Miernikiem uniwersalnym zmierzyłem napięcie wyjść i z arduino jest to ~5V, podczas gdy z shielda ~3,5V.

Dopiero później doczytałem z opisu shielda:

Cytat

Posiada rezystory 220 Ω włączone szeregowo w obwody wyjść, dzięki którym można bezpośrednio sterować diodami LED.

Czy dobrze rozumiem, że to jest przyczyną? Raczej nic w sensowny sposób z tym nie zrobię i ten shield po prostu do tego celu się nie nadaje?

Nadaje się, łączysz wyjścia sterownika z n-mosfetem, bramka do wyjścia PWM, dren do 12V i źródło do masy, jeśli nadal nie działa, to coś źle połączyłeś, albo sterownik nie działa prawidłowo, sprawdź/zmień program, sprawdź czy widzisz adres po i2c sterownika, szukaj, uruchamianie nie jest takie proste jak wgrywanie programu.:)

Do ESP32 potrzebujesz mosfeta, takiego z tagiem: Logic Level (np. IRLR024), gdzie parametr Gate-Source Threshold Voltage jest poniżej wartości napięcia stanu wysokiego MCU, czyli np. około 2V, bo przy VCC 3V3 dla mosfeta IRF520 włączenie będzie przypadkiem (zakładam, że sterownik PWM i MCU będą zasilane z 3V3).

Pomysł z ESP32 fajny, uprość sobie zadanie, zrób sobie go z sterownikiem PWM, ja wzorowałem się na tym poniżej i szczerze polecam, łatwy do ogarnięcia i rozbudowy:

http://technika-laika.blogspot.com/2013/10/sterownik-oswietlenia-schodow-na.html

 

 

Edytowano przez polihedron
Link to post
Share on other sites

Moduł MOSFET mam ten: https://forum.hobbycomponents.com/viewtopic.php?f=76&t=1872
Na tej stronie jest schemat oraz informacja:

Cytat

Input Switching Voltage: Suitable for 5V microcontrollers.

Podłączenie miałem takie:
wyjście PWM (z arduino lub z shielda) do SIG
GND do GND z zasilacza
VIN na + zasilacza
V-, V+ na pasek LED

54 minuty temu, polihedron napisał:

Nadaje się, łączysz wyjścia sterownika z n-mosfetem, bramka do wyjścia PWM, dren do 12V i źródło do masy, jeśli nadal nie działa, to coś źle połączyłeś, albo sterownik nie działa prawidłowo, sprawdź/zmień program, sprawdź czy widzisz adres po i2c sterownika

Dlaczego na dren miałbym podłączać 12V? Czy dren nie ma być podłączony z V- paska LED, dzięki czemu tranzystor steruje przepływem uziemienia?

Tutaj wkleiłem kod uproszczony, ale przy takim podłączeniu sprawdzałem też płynne przejścia (fade) i jeśli SIG było podłączone do wyjścia 11 arduino animacja była ładna od 0 do 100% (wartości 0-255), natomiast dla shielda tylko od 0% do może 20% (dla wartości 0-4096). Czyli komunikacja i2c działała prawidłowo.

Jeśli zmierzyłem napięcie na wyjściu arduino jako 5V a na wyjściu 0 z shielda jako 3,3V, to chyba tutaj jest przyczyna?

  • Lubię! 1
Link to post
Share on other sites
(edytowany)
55 minut temu, michal2 napisał:

Dlaczego na dren miałbym podłączać 12V? Czy dren nie ma być podłączony z V- paska LED, dzięki czemu tranzystor steruje przepływem uziemienia?

aa tak, racja, taki skrót myślowy, dren do minusa obciążenia.:)

 

55 minut temu, michal2 napisał:

Jeśli zmierzyłem napięcie na wyjściu arduino jako 5V a na wyjściu 0 z shielda jako 3,3V, to chyba tutaj jest przyczyna?

tak mi się wydaje, ten mosfet według dokumentacji ma: VGS(th) od 2 do 4V.

https://www.vishay.com/docs/91017/91017.pdf


tam nie masz zworki na sterowniku pwm VCC na 5V, albo 3.3V? jesteś w stanie sprawdzić jakie ma zasilanie sterownik?

pin 28 dla PCA9685

alternatywnie, żeby sprawdzić sterownik, zrób sobie jak masz BS170 prosty level shifter i połącz go między sterownikiem pwm, a płytką z mosfetem:

 

06PjX.jpg

Edytowano przez polihedron
Link to post
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

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!

Anonim
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...

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.