Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Sklep ElwronSklep Elwron
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Arduino] Projekt modułu do świateł dziennych z "bajerami"

11 Lut 2012 18:48 14648 31
  • Poziom 8  
    Witam,

    Jestem laikiem w elektronice. Właściwie byłem, bo od dwóch tygodni się wdrażam by zrealizować swój projekt. Jakieś niezbędne minimum zaczynam więc rozumieć.

    Moduł oparty ma być na Andruino Nano 3.0. Programowanie wykonam bez problemu sam. Potrzebuję jednak pomocy w schemacie płytki. Późniejsze zaprojektowanie PCB i wykonanie komuś zlecę.

    Funkcje i parametry:
    -zasilanie z akumulatora 11-15V
    -włączanie modułu przekaźnikiem sygnałem ze stacyjki lub kierunkowskazu
    -moduł utrzymuje się w stanie włączonym i sam odcina zasilanie przekaźnika włączającego (sterowane softem)
    -moduł otrzymuje 4 sygnały sterujące 12V
    -moduł obsługuje 6 lamp LED SMD 12V 150mA z użyciem PWM
    -moduł odcina zasilanie żarówek pozycyjnych i kieruje prąd przez rezystory do masy (aby uniknąć błędów CANBUS)
    -moduł ma dodatkowe wyjście sterujące 5V (jeden zewnętrzny przekaźnik)

    Mój schemat:
    [Arduino] Projekt modułu do świateł dziennych z "bajerami"

    Użyte elementy:
    -Arduino Nano 3.0
    -stabilizator 12V LM2940 (LDO)
    -transoptor PC847 (poczwórny)
    -2x darlington ULN2003
    -tranzystor TIP122
    -przekaźnik SPST (?)
    -przekaźnik DPDT (?)
    -3 diody (?)
    -4 rezystory przed transoptorem (?)
    -2 rezystory 5W do emulacji żarówek pozycyjnych (?)
    -2 kondensatory przed i za stabilizatorem: 0.47 i 22µF (?)

    (?) - w doborze tych elementów potrzebuję pomocy.


    Chciałbym rozbudować układ o dwa elementy:
    1. Sygnał pracy silnika. Może znajdę sygnał w skrzynce bezpieczników; jeśli nie, to chcę wykryć napięcie >13V. Jak? Diodą Zenera 13V z transoptorem?
    2. Test sprawności LED. Chciałbym jakoś mierzyć jaki prąd pobierają LEDy. Każda lampa składa się z 60 diód łączonych w szereg po 3. W razie uszkodzenia 1 diody, jeden szereg się wyłączy. Powinno to spowodować spadek pobieranego prądu ze 150 do około 142mA, prawda? Jak to wykryć?

    Załączam plik Eagle.
    Z góry dziękuję za pomoc :)
  • Sklep ElwronSklep Elwron
  • Poziom 39  
    Fajnie, tylko nie za bardzo rozumiem, dlaczego do prostego modułu załączania świateł dziennych, gdzie wystarczy przekaźnik i tranzystor a jak chcesz mieć wypas to jeszcze dwa tranzystory do schmitta, chcesz użyć komputera Arduino? Jakie zalety ma tego typu rozwiązanie wobec klasycznego?
  • Poziom 8  
    No tak - nie napisałem ważnej rzeczy. Jasność każdej lampy LED ma być sterowana niezależnie. Do tego dochodzą "animacje" i już użycie Arduino przestaje być dziwne.
  • Użytkownik usunął konto  
  • Poziom 39  
    YoonassH, wydaje mi się, że nie uwzględniłeś w swoich założeniach projektowych jednej istotnej rzeczy - otóż lampy do świateł dziennych nie mogą być jakie bądź, muszą posiadać homologację do tego zastosowania. Tak więc samodzielna ich budowa odpada bo to nie przejdzie na przeglądzie, policja również lubi się czepiać niehomologowanych lamp i wygrażać odebraniem dowodu rejestracyjnego. Toteż Twój moduł musi umieć współpracować z lampami fabrycznymi a tam w większości są przetwornice elektroniczne do zasilania LEDów i sterowanie ich jasnością jest niemożliwe. Tak więc radzę, abyś na początek zrobił przegląd lamp homologowanych dostępnych na rynku i zastanowił się czy są takie które pasowałyby do twojego modułu.
  • Poziom 8  
    To ryzyko wezmę na siebie. Jak mi odbiorą dowód po raz trzeci, to zrezygnuję ;) Przeróbka wygląda na prawdę bardzo profesjonalnie. Kolega nie mógł uwierzyć, że sam to zrobiłem. (mówię o prototypie lampy)
    Zresztą rozmowa o tym jest nie na temat. Szukam pomocy przy module elektronicznym, a nie porady prawnej ;)

    ps.
    @jamrose - zedytowałem tytuł wątku
  • Poziom 8  
    Wciąż pracuję nad projektem. Szkoda, że póki co nikt nie pomógł. Mam nadzieję, że teraz otrzymam jakąś pomoc. Bardzo mi na tym zależy.

    Poprawiłem schemat:
    [Arduino] Projekt modułu do świateł dziennych z "bajerami"
    - przemodelowałem całość rozdzielając wizualnie schemat na zasilanie, wejście i wyjście
    - dodałem diody do przekaźników
    - wstawiłem gniazda
    - zamieniłem błędne tranzystory darlingtonowe z NPN na PNP
    - wymieniłem stabilizator na mocniejszy (1,5A)
    - dodałem dzielnik napięcia by czytać napięcie (0-5V) pinem A7

    Wejścia i wyjścia póki co nie ruszałem, więc tam mogą być błędy.
    Chciałbym teraz prosić o ocenę części zasilającej układu (czyli wszystkiego od pinu A7 w górę).
    1. Zastosowałem tranzystory PNP gdyż oba przekaźniki mają być załączone prawie przez cały czas pracy układu. Wyjścia D0 i D1 będą więc w stanie LOW. Tylko w określanych przypadkach HIGH. Czy to dobre rozwiązanie?
    2. Czy sterowanie przekaźnika K1 trzema sygnałami (OR) może być rozwiązane diodami (D1-D3)?
    3. Stabilizator IC1 wymaga tantalowych kondensatorów (wg dokumentacji). One mają temp. pracy do 85°C. Co się z nimi dzieje gdy temp. przekroczy ten limit? Moduł będzie w komorze silnika i teoretycznie latem temp. może osiągać zbliżone wartości. Może zastosować inne?
    4. Czy ten stabilizator to w ogóle dobry pomysł? Chciałbym po prostu by napięcie wyjściowe na LEDy nie przekraczało 12V. Arduino też preferuje 7-12V.
    5. Czy dzielnik napięcia jest ok? Same proporcje są ok, ale jak obliczyć jaki prąd będzie pobierany przez Arduino do odczytu?

    Pomóżcie amatorowi :)
  • Sklep ElwronSklep Elwron
  • Moderator Projektowanie
    Kiedyś męczyłem się ze sterowaniem przekaźnikami poprzez PNP, od tego czasu daję zawsze NPN - nie wiem, jakoś mi tak bardziej intuicyjnie podchodzą. Dzielnik rezystorowy do pomiaru napięcia daj może z większymi wartościami - często stosuję np. 10k i 5,1 k lub 9,1k i 1,3k.
  • Poziom 8  
    Czy większe rezystory w dzielniku nie utrudnią Arduino "pobierać" prądu i tym samym mierzyć napięcie? Jedyne parametry analogowych wejść to 0-5V...

    Z tym PNP też się wahałem. O ile do K2 mogę zastosować NPN, to co zrobić z K1 i jego potrójnym włącznikiem (D1-D3)?
  • Poziom 8  
    Ok, dzięki :) Na początku zastosowałem nawet 10K i 5K1 ale policzyłem, że prąd jest bardzo mały i zmieniłem.
  • Poziom 8  
    Tak - chcę by moduł sam utrzymywał sobie zasilanie, aż programowo je rozłączę.

    Moduł ma się więc włączyć gdy dostanie sygnał ze stacyjki LUB dostanie sygnał z jednego kierunkowskazu.
    Moduł ma się wyłączyć TYLKO po sygnale z Arduino.
  • Poziom 8  
    Czytanie wejść Arduino poprzez optoizolację już mam (PC847).
    Ponieważ ma to być jednak projekt "z bajerami", to chcę mieć napięcie w układzie już po otworzeniu auta pilotem (mrugnięcie kierunków), oraz utrzymać je przez kilka sekund po wyjęciu kluczyka aby powoli wygasić LEDy.

    Dodano po 1 [godziny] 37 [minuty]:

    @Kuniarz
    Jeśli przewidujesz problemy z PNP, to może przekaźnik bistabilny (z cewką R zasilaną przez NPN)? Ale to chyba mocno komplikuje sprawę. O ile wiem podanie sygnałów S i R jednocześnie może uszkodzić taki przekaźnik, a teoretycznie taka sytuacja jest możliwa. Musiałbym mierzyć napięcie cewki S aby wiedzieć czy jest zasilana i programowo decydować czy puścić sygnał R.
  • Poziom 39  
    Czy ja dobrze widzę? Chcesz zasilać układ pracujący w samochodzie 12 woltowym stabilizatorem?? Zapomnij... Tam się daje 5V.
  • Poziom 8  
    Póki co taki jest mój amatorski zamysł. Stabilizator jest typu LDO. Ma stratę max 1,2V, co przy napięciu w czasie pracy silnika (14V) pozwoli utrzymać stabilne 12V. Wiem, że przy wyłączonym silniku może nie stabilizować do 12V. Wtedy odczytam niższe napięcie przez dzielnik i program odpowiednio zareaguje.
    Chciałbym po prostu aby zasilanie LED i Arduino nie przekraczało 12V. Jak mogę to osiągnąć?
  • Pomocny post
    Poziom 39  
    Ta wersja stabilizatora, którą zastosowałeś ma dop. 1,5 V spadku dla pełnego obciążenia, tzn. że minimalne napięcie na wejściu to 13,5V. Jak sam zapewne wiesz, takie napięcie występuje w instalacji pojazdu tylko podczas pracy alternatora, nie na postoju. Na postoju w sieci samochodu będzie 12,5 V. Przy rozruchu spadek napięcia w instalacji może wynieść nawet poniżej 9V - i to trzeba uwzględnić (z pewnym zapasem) przy projektowaniu zasilania.

    A jak odczytasz napięcie przez arduino skoro po spadku napięcia poniżej 13,5 V stabilizator odetnie prąd na wyjściu i arduino przestanie być zasilane?

    Po co chcesz stabilizować zasilanie LEDów, skoro arduino steruje ci prądem przez PWM? Od tego to jest komputerek aby takie niuanse jak stabilizacja prądu na LEDach załatwiać programowo.

    Stabilizator jest zbędny a nawet szkodliwy. Układ zasilania tego arduino powinien wyglądać tak, że na wejściu dajesz mocne zabezpieczenia przeciw impulsom napięcia z sieci pokładowej (zdarzają się piki kilkadziesiąt woltów), czyli jakieś transile, kondensatory itp. (poczytaj jakieś noty aplikacyjne o zabezpieczeniach przeciwprzepięciowych w układach mikroprocesorowych). Arduino posiada "na pokładzie" stabilizator 5 V i o ile zasilanie będzie "czyste" to w zupełności mu to będzie wystarczać.
  • Poziom 8  
    Wielkie dzięki kybernetes!
    Zdawało mi się, że stabilizator poniżej wymaganego zasilania da po prostu mniejsze wyjście. Usunę go w takim razie i poczytam o filtrowaniu pików.
    Sugerowałem się też parametrami Arduino, które "zalecają" 7-12V.
  • Poziom 39  
    Tam jest 7V ze wzgl. na katalogowy typowy (producent nie podaje maksymalnego dopuszczalnego) spadek napięcia (dropout voltage) na zastosowanym tam stabilizatorze. A dla bezpieczeństwa powinno się dodać jakieś 0,2-0,4 V do tej wartości. Wobec tego, jako pierwszy w szeregu musiałby tam siedzieć minimalnie stabilizator regulowany na 7,5 V. Dobry LDO dałby 1,5 V spadku napięcia co razem daje już 9 V i jest już na granicy możliwych napięć w sieci pokładowej samochodu. W niesprzyjających warunkach ta granica zostanie przekroczona.
  • Poziom 8  
    Dzięki za proste wytłumaczenie.
    Masz może jakieś inne uwagi? Np. diodowa "bramka OR" albo zastosowanie darlingtonów PNP, z którymi Kuniarz miewał problemy?
    Zmieniłem też dzielnik by obsługiwał do 20V.
    Na załączonym schemacie dopracowałem część wejściową. Dodałem rejestr przesuwny 4021 (wg TEGO tutoriala), aby obsłużyć dodatkowe 4 zewnętrzne przyciski. Nie jestem jednak pewien czy dobrze zastosowałem optoizolację (wg TEGO schematu). Głównie nie jestem pewien rezystorów R17-R24.
    Wyjścia nie ruszałem - nie patrzeć ;)
    Nie dodałem też jeszcze żadnych filtrów zasilania. Zajmę się tym w weekend.

    [Arduino] Projekt modułu do świateł dziennych z "bajerami"

    Pzdr
  • Poziom 8  
    Masz rację. Trochę o tym zapomniałem. W przypadku zewnętrznych przycisków zasilanych +5V z Arduino, będę mógł podłączyć je niemal bezpośrednio do Ax (tylko rezystor po drodze). Chwilowo zostawię jednak jak jest, gdyż rozważam dodanie małego dipa i/lub potencjometrów by użytkownicy mogli dostosować moduł dla siebie bez zmiany softu. Lista chętnych rośnie ;)
  • Poziom 39  
    Klucze PNP są w Arduino niedopuszczalne, ponieważ zgodnie ze specyfikacją tego układu, napięcie na wejściu typu "D" nie może przekroczyć 5 V a tutaj, przy zamkniętym tranzystorze, będzie 12 V. Zastosuj klucze NPN.

    Rezystory R17-R20 są zbędne a nawet mogą uniemożliwić działanie układu, usuń je. Niski stan na wejściach CD4021 wymuszają tranzystory K845P, wysoki stan - rezystory R21-R24 (te są dobre).

    Rezystory R1-R4 nie muszą mieć tak niskich wartości, zastosowanie ich da na diodach transoptora po ok. 25 mA, razem 100 mA na kostkę, trochę dużo. Wystarczą tam rezystory 2,2-3,3k. Do tego zastosuj diody zabezpieczające, tak jak w dokumencie jaki zlinkowałeś ("Level_shifting_4_arduino.pdf") - instalacja samochodu lubi siać dziwnymi zakłóceniami, po co później szukać usterek jak można im zapobiec.

    Trochę ryzykowne jest wypuszczanie linii zasilania Arduino poza moduł, do wnętrza samochodu (zasilanie przycisków zewnętrznych), lepiej chyba będzie je podać z osobnego stabilizatora. Tak samo wejścia na CD4021 - powinny być zabezpieczone przed zakłóceniami z sieci pojazdu.

    Wszystkie wyjścia prądowe wychodzące z układu (dotyczy to również zasilania przycisków) powinny mieć zabezpieczenia przed zwarciem, można zastosować bezpieczniki polimerowe.

    W układach ULN2003N połącz równolegle po dwa klucze.
  • Poziom 8  
    Zastosowałem porady:
    - usunąłem stabilizator
    - pozbyłem się rezystorów R17-20
    - zmieniłem wartości R1-4 (poprzednio po prostu o nich zapomniałem) i dodałem diody
    - powyższe pozwoliło uporządkować schemat w tamtym rejonie
    - połączyłem klucze ULN2003 parami - o to chodziło?
    - wyjście 5V z pinu D12 zamieniłem na 12V obsługiwane przez parę ULN2003 (ma zasilać mały przekaźnik, OUTPUT X)
    - użyłem bezpiecznika polimerowego 500mA na wyjściu (prąd nominalny 3x150mA) (x2)
    - wymieniłem PNP na NPN
    Co do ostatniego to nie potrafię tylko dojść do tego jakie zastosować rezystory (R9, R10) i czy w ogóle obecna diodowa "bramka OR" będzie działać jak chcę - czyli by przekaźnik załączał się na jakikolwiek z trzech sygnałów i nie przeszkadzały mu nawet trzy na raz.

    Co do zasilania przełączników, to rozumiem, że bezpieczniej będzie zasilić je prądem z wejścia (12V) a w module zastosować np. dodatkową optoizolację, która jednocześnie zapewni "zabezpieczenie przed zakłóceniami z sieci pojazdu". Dobrze kombinuję? Póki co nic tam nie zmieniałem.

    Mam dodatkowe pytanie. Czy diodę zabezpieczającą na stykach cewki przekaźnika zewnętrznego (OUTPUT X) mogę zastosować w układzie zaraz obok gniazda, czy bezpośrednio przy przekaźniku?

    [Arduino] Projekt modułu do świateł dziennych z "bajerami"

    Pzdr
  • Moderator Projektowanie
    R9 i R10 daj np. 3.3 kohm.

    P.S. Odkopałem Twoje ogłoszenie z działu "Biznesowego" - chciałeś żeby ktoś Ci to zaprojektował za 100 zł, byłeś oburzony jak kwota za prototyp osiągnęła 1.000 zł Czy teraz z perspektywy czasu, kiedy męczysz się już z tym drugi tydzień, a końca nie widać nadal jesteś przekonany, że ktoś to zrobiłby za stówę ? ;-)
  • Poziom 8  
    Hehe :) Zgadzam się, że byłem oburzony na prototyp za 1000zł, ale to był zupełnie inny projekt oparty na przekaźnikach i regulatorze napięcia, gdzie koszt części zamknąłby się w okolicach 50zł. Poza tym chciałem od razu 5 szt. po 100 każda. W moim mniemaniu chciałem więc dać komuś zarobić około 250zł. Intencje miałem dobre, ale taką miałem wtedy wiedzę niestety...
    Obecny projekt jak najbardziej jest warty tysiaka, ale to już inna bajka. Projekt jeszcze wróci na giełdę w celu projektu PCB i wykonania ładnych płytek. Koniec offtopa, pzdr :)
  • Poziom 39  
    Te tranzystory sterujące przekaźnikami nie muszą być wielkie 8 amperowe grzmoty, skoro prąd cewek nie przekracza 0,1 A. Daj tam malutkie, w obudowach TO92, 400 mA BC517. Te ostatnie mają też niższe UBE, więc w bazach możesz spokojnie zastosować wszędzie rezystory 10k (R7-R10).

    Do zasilania przełączników możesz użyć napięcia 5 V uzyskanego z dodatkowego stabilizatora 78L05 w obudowie TO92.
  • Poziom 8  
    Zastosowałem kolejne porady:
    - wymieniłem tranzystory
    - zasiliłem zewnętrzne przyciski stabilizatorem 5V z kondensatorami i bezpiecznikiem

    Dodałem też filtrowanie zasilania wg tego opisu. Nie wiem tylko jakiej mocy powinna być dioda zenera. Najmocniejsze mają 5W, a cały układ z LEDami będzie pobierał około 1A. A może powinienem filtrować tylko zasilanie Arduino? Albo źle interpretuję tą moc diody.

    [Arduino] Projekt modułu do świateł dziennych z "bajerami"
  • Poziom 8  
    Poczytałem o diodach zenera. Wczoraj byłem trochę zmęczony i nie potrafiłem odpowiednio zapytać wujka Google. W moim przypadku ona ma chronić przed mikrosekundowymi skokami napięcia. O ile dobrze zrozumiałem przykładową dokumentację, w bardzo krótkim czasie takie diody mogą rozproszyć nawet i ponad 100W. Zastosuję więc 5W ("Surge Rating of up to 180 W @ 8.3 ms").

    ps. zasilanie stabilizatora 5V przesunąłem za filtry.