Skocz do zawartości

Wyświetlacz 8 cyfr 12V i PCF8574


Belferek

Pomocna odpowiedź

Pytanie do Marka. Gdzie jest bezpieczna granica zwiększania prądu przy multipleksowaniu? Odpowiednio duży prąd płynący nawet przez chwilę może zniszczyć diodę, albo połączenia wewnątrz diody. Po drugie dlaczego akurat 60V. Nie wiemy jak ta taśma diodowa jest zrobiona, ale jeśli np. odcinki tej taśmy mają po trzy diody szeregowo plus rezystor, to chyba trzeba zwiększyć osiem razy napięcie na tym rezystorze, a nie napięcie zasilania.

Link do komentarza
Share on other sites

Nie wiemy jak ta taśma diodowa jest zrobiona

Troszeczkę wiemy. Jest to standardowa (nie RGB) taśma diód 3528 9,6W/1m o gęstości 120 LED/1m z możliwością cięcia co 2,5cm. Na jeden segment wyświetlacza planuję użyć 9 diód (odcinek 7,5 cm taśmy). Przed chwilą zmierzyłem miernikiem pobór prądu przez taki wycinek taśmy przy zasilaniu 12V i miernik wskazał 50mA. Diody świecą mocno. Wieczorem zobaczę jak to przy multipleksowanym zasilaniu takiego segmentu.

Link do komentarza
Share on other sites

Tak, żeby mieć sto procent jasności co do taśmy ledowej. Możesz narysować schemat tego 2,5cm odcinka? Zmierzyć lub zobaczyć jaki tam jest rezystor lub rezystory? Podłączyć zasilanie 12V i zmierzyć napięcie na rezystorze?

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

Rezystor jest 1 i jest opisany jako 151 czyli 150 Ohm. Diody są 3, połączone szeregowo z rezystorem, który dla 12V ogranicza prąd przewodzenia tych diód do 20mA. Bawię się tym kluczem dalej zasilając go 12V. Zauważyłem ciekawe zjawisko jeśli chodzi o Uce tranzystorów.

W czasie gdy obydwa klucze są włączone napięcie Uce tranzystora BC328-40 jest stabilne i wynosi 26,6mV, natomiast Uce na BC338-25 ... pływa od 180 do 200mV (zwiększę mu prąd bazy) - no i ta różnica.

Link do komentarza
Share on other sites

Super, teraz już wiemy skąd różnica temperatury. Moc to prąd razy napięcie, a ponieważ przez oba tranzystory płynie ten sam prąd, różne spadki napięcia powodują odpowiednie straty mocy i przez to wzrost temperatury. Nadal nie jestem pewien, czy spadki napięć na tranzystorach nie są trochę za niskie, ale może jest ok.

Teraz wypadałoby zapytać dlaczego tranzystor NPN działa gorzej niż PNP? W sumie powinno być odwrotnie...

Link do komentarza
Share on other sites

Teraz myślę o różnym hfe tych tranzystorów. Prąd bay tego NPN wynosił ok 400uA przy rezystorze Rb tego tranzystora 10k. Zmieniłem na 4,7k i oczywiście Ib to 900uA, a jego Uce już nie 180-200mV lecz Uce dalej skacze poniżej 200mV - może dlatego, że przez diody nie płynie prąd o stałej wartości tylko zależny np. od ich temperatury?

Link do komentarza
Share on other sites

"Gdzie jest bezpieczna granica zwiększania prądu"

Bardzo trudno z góry tę granicę wyznaczyć nie znając bardzo dobrze konstrukcji samego elementu. Jego składowe (połączenia czyli bonding, miejsca lutowania bondingu do ażuru i sama struktura półprzewodnikowa) niszczone są zarówno temperaturą powstającą na skutek przepływu prądu oraz samą gęstością prądu powodującą degradację materiału.

Przyrost temperatury nie jest natychmiastowy i zależy od wielkości tej mocy (to jasne) oraz od własności samego materiału i jego otoczenia. Przy prądzie stałym "generator" ciepła będzie robił się coraz gorętszy aż do zrównoważenia bilansu podaży i popytu. W miarę wzrostu temperatury rośnie ilość energii przepływającej do otoczenia (struktura, plastikowa lub metalowa obudowa, radiator, powietrze) do momentu, gdy warunki się ustalą. Jeżeli w tym punkcie temperatura struktury nie przekracza jakiejś maksymalnej, możemy spać spokojnie.

W przypadku impulsów zaczyna mieć znaczenie pojemność cieplna - nie wolno już tak po prostu uśredniać mocy, bo nie wiadomo za jaki okres. Nie znamy cieplnych stałych czasowych. Mały element grzeje się szybciej i dla niego impuls 150% mocy (uznawanej za bezpieczną w stanie statycznym) może być zabójczy już przy impulsie 10ms. Wtedy takie obciążenie o okresie 20ms i wypełnieniu 50% załatwia takie coś mimo, że wartość średnia wygląda na bezpieczne 75%. Inny element, nawet nie silniejszy, ale po prostu większy wytrzyma to spokojnie bo nagrzanie do temperatury zniszczenia zajmuje mu przy 150% mocy np. 50ms.

Duże tranzystory mają specjalne wykresy pokazujące jak można podkręcać prąd/moc przy skracaniu impulsów, np tutaj:

https://www.tme.eu/pl/Document/c97965e3da782e19950a729e0994d2db/auirfz44n.pdf

na rys. 11 pokazali jak "zmniejsza się" rezystancja termiczna obudowy przy impulsach od 0.1s do 10us. To oczywiście efekt pozorny bo przecież cechy materiału obudowy są niezmienne i żadne opory cieplne nie płyną, ale dzięki wirtualnej poprawie chłodzenia automatycznie dostajemy większą obciążalność tranzystora. Na prawo od jakichś 20ms wykres się wypłaszcza i niezależnie od wypełnienia mamy już stałą rezystancję termiczną więc i możliwość rozpraszania mocy jest stała. Lewa strona jest dużo ciekawsza: dla krótkich impulsów rezystancja termiczna spada kilkadziesiąt razy a to oznacza możliwość wytracenia w strukturze tego tranzystora kilkadziesiąt razy większej mocy niż dla pracy DC 🙂 Po prostu w ciągu 20us całą moc (np. 1kW) pochłonie struktura krzemowa bez żadnego transferu ciepła do radiatora ani nawet do obudowy. Warto zauważyć, że na pionowej osi wykresu mamy Z(jc) czyli impedancję cieplną tylko od struktury do obudowy. Dalsze elementy zespołu (radiator, powietrze) nie mają tu znaczenia - w impulsach ciepło nie ma czasu dotrzeć tak daleko.

Podobnie jest z diodami - także LED, choć tutaj rzadko dostajemy aż tak dokładne dane. Przykładowo tutaj:

https://www.tme.eu/pl/Document/25492a798f338a61c91ed67f6fe64428/VLMW41R1T1-7K8L-08-DTE.pdf

mamy maksymalne "DC forward current 20mA" i "surge forward current 100mA" dla impulsu 10us. Z uwagi na krótki czas powinniśmy to traktować jako absolutne górne ograniczenie wynikające także z efektów degradacji struktury. Widać także, że tę diodę trudno będzie użyć w systemie multipleksowanym np. 1:8 (a cóż dopiero wyższych), bo nie jesteśmy w stanie zwiększyć jej średniego prądu nawet 8 razy. Sytuację trochę ratuje fakt, że pomiary jasności tej diody były robione dla 10mA więc to jest jej typowy prąd pracy i wtedy te 100mA wygląda lepiej.

I np. bardzo podobna (także w plastikowej obudowie PLCC):

https://www.tme.eu/pl/Document/122ca661e85cde2dca8ecd04d81308ef/LW-E67C-U2V2-5K8L.pdf

ma te same parametry (str. 3) na poziomie 30mA/300mA. Wygląda na to, że taki czy inny mały LEDzik zapakowany w plastik więcej jak 10x więcej prądu nie pochłonie, nawet w bardzo krótkim impulsie. Nie mamy wykresu, ale zawsze to coś.

Generalnie elementy wyglądające "masywniej" będą miały lepsze współczynniki przeciążalności krókoterminowej, bo mają gdzie to ciepło podziać "w sobie". Delikatne, małe pipsztaczki w zasadzie już w normalnych warunkach (DC) pracują na granicy swoich możliwości transferu ciepła (bo tak jest taniej) i tu za wiele się nie ugra. No i m.in. dlatego elementy mocy są drogie.

A ze zwiększaniem prądu tasiemki - oczywiście ważny jest wzrost prądu (bo tym świecą diody) a nie napięcia. W przypadku struktur szeregowych istotne jest jaką część rezystancji widzianej z zewnątrz stanowi rezystor czyli ta część "rzeczywista". Dla trójki diodek czerwonych (i tasiemki 12V) będzie to połowa, dla innych kolorów - odpowiednio mniej. Wzrost prądu głównie odkłada się na oporniku, ale Uf diodek też rośnie.

Z temperaturą zmienia się przede wszystkim napięcie przewodzenia diod, a więc w prostym układzie źródło napięciowe-rezystor-dioda(y), prąd rośnie gdy diody się grzeją.

Link do komentarza
Share on other sites

Markowi bardzo dziękuję za wyjaśnienia.

Belferek, jeśli teraz podłączysz jeden odcinek 2,5cm szeregowo z rezystorem 1kΩ do 12V zasilania to mniej więcej będzie to odpowiadać multipleksowaniu 1:8, będzie to największa jasność wyświetlacza możliwa do uzyskania przy zasilaniu z 12V. Ewentualnie używając tylko tego dolnego klucza (NPN), jak już dobrze dobierzesz rezystory, i PWM z Arduino możesz zobaczyć z jaką jasnością będzie świecił ten kawałek taśmy przy wypełnieniu 1/8.

Link do komentarza
Share on other sites

Ja dla odmiany niewiele z tego wywodu zrozumiałem, więc wytłumaczę nieco inaczej. Rezystancja materiału rośnie wraz z temperaturą, To sprawia, że element ma niejako darmowe ujemne sprzężenie zwrotne - jeśli przez dany fragment struktury przepływa prąd, ulega ona rozgrzaniu, co zwiększa jej rezystancję i utrudnia przepływ prądu. Więc prąd jest niejako wypychany z obszarów o wyższej temperaturze. Dzięki temu cały przyrząd równomiernie przyjmuje obciążenie wygenerowane przez przepływ prądu.

Niestety gdy krytyczna energia dla danego materiału zostanie przekroczona, następuje gwałtowne zmniejszenie rezystancji i materiał zachowuje się jak zjonizowana plazma - powstaje dodatnie sprzężenie, następuje gwałtowny wzrost przepływu prądu, a układ ulega trwałemu uszkodzeniu i nie ma z niego więcej pożytku.

Oczywiście to kiedy następuje przekroczenie wartości krytycznej zależy od użytych materiałów oraz konstrukcji przyrządu półprzewodnikowego. Jeśli sterujemy układem imulsowo mamy dodatkową szansę na rozprowadzenie nadmiaru energii.

Link do komentarza
Share on other sites

Jestem zaskoczony, rzeczywiście niczego nie zrozumiałeś. Może spróbuj przeczytać jeszcze raz?

Zjawisko kumulacji ciepła przy pracy impulsowej wydaje się intuicyjnie proste.

Gdy grzejesz długo i stale, masz warunki ustalone i transfer ciepła ze struktury półprzewodnikowej na zewnątrz odbywa w sposób ciągły. Znając rezystancje termiczne każdej warstwy (rozumiesz, jak cebula albo jak ogry) możesz policzyć temperatury w każdym punkcie licząc od "epicentrum" dokładnie tak jak napięcia w szeregowym obwodzie elektrycznym, bo wiesz, że przez każdy element (warstwę) przepływa ta sama ilość energii.

Jednak gdy puszczasz krótki impuls prądu, na przesłanie wygenerowanego ciepła na zewnątrz nie ma czasu. To jakbyś miał cewki w obwodzie do którego podłączyłeś generator impulsowy - prąd "wstaje" później niż zbocze napięcia z generatora. U nas generatorem impulsu ciepła jest struktura, która nagrzewa się w miejscu przepływu prądu. A ponieważ krzem ciepło przewodzi dobrze (a kanał tranzystora to praktycznie 100% powierzchni płytki), możesz spokojnie założyć, że cała nagrzewa się jednocześnie. Tylko że 0.1mm dalej plastik obudowy jest wciąż zimny - nie zdążył energii odebrać i schłodzić krzem. W takim trybie ważne jest tylko to ile tego krzemu masz, bo to jego ciepło właściwe plus oczywiście masa decydują o wzroście temperatury w krótkim czasie:

deltaT= Q/(m*c)

gdzie Q to wydzielona energia, m to masa a c to ciepło właściwe.

Własnie dlatego możesz w tranzystorze wydzielić 1kW w czasie impulsu 10us, ale nie możesz tego samego elementu grzać mocą choćby 50W ciągle. Na tym przecież opierają się diody transil i wszelkie inne podobnie działające zabezpieczenia. To tłumaczy, dlaczego element o wielkości walca 5x10mm ma specyfikację do 1.5kW. Przecież nie DC, bo taka moc odparowała by go w 5 sekund. Liczą się (ustandaryzowane) impulsy pomiarowe 10us przypominające wyładowania ESD lub indukowane w drutach z uderzeń dalekich piorunów. Patrz pkt. 1 na liście Features na pierwszej stronie: https://www.tme.eu/pl/Document/574f55cd54a0c134073ea930418e1e69/1_5KE_ser.pdf

Czy to jakoś rozjaśnia? Nie ma tu nic o "wypychaniu prądu" czy temperaturach plazmy.. Mamy zwykły, opakowany plastikiem pucek krzemu grzany prądem.

Link do komentarza
Share on other sites

Dziękuję Elvis i marek1707 za tak obszerne wyjaśnienia. Jest w nich tyle informacji, że na spokojnie je przeanalizuję.

Pisałem wcześniej, że poeksperymentuję z tym multipleksowaniem wyświetlania. Wykorzystałem programik w Arduino (mam nadzieję, że co do istoty sprawy jest OK), a klucze tranzystorowe podpiąłem do P2 i P10.

#define NPN       2
#define PNP       10
#define ILE_CYFR  8

//-----------------------------------------------
void setup() 
{
pinMode(NPN,OUTPUT);
pinMode(PNP,OUTPUT);
Test();
}
//-----------------------------------------------
void loop() 
{
 Wyswietl();                 //obsługa wyświetlacza
 Reszta_programu();          //reszta programu
}

//-----------------------------------------------
void Test()
{
 //efekt pozytywnego testu 3 mignięcia
 digitalWrite(NPN,1);      //włączenie 1
 digitalWrite(PNP,1);
 delay(500);
 digitalWrite(NPN,0);      //wyłączenie NPN
 delay(500);
 digitalWrite(NPN,1);      //włączenie 2
 delay(500);
 digitalWrite(PNP,0);      //wyłączenie PNP
 delay(500);
 digitalWrite(PNP,1);      //włączenie 3
 delay(500);
 digitalWrite(NPN,0);    
 digitalWrite(PNP,0);    
 delay(500);
}

//-----------------------------------------------
void Wyswietl()
{
int i=0;
while(i<ILE_CYFR)            //pozostałe cyfry wyświetlacza symulujemy
{
 digitalWrite(PNP+i,1);      //włączenie kluczy tranzystorowych
 digitalWrite(NPN,1);        //włączamy zawsze 1 bo i tak brakuje portów

 delayMicroseconds(2500);    //czas wyświetlania cyfry 2,5ms - jasność oczywiście zdecydowanie mniejsza
                             //dla większych czasów i dla 8 cyfr widoczne migotanie segmentu
                             //im dalej od wyświetlacza tym efekt migotania mniej widoczny
                             //w odległości ok. 1,5m i większej jest ok

 digitalWrite(PNP+i,0);      //wyłączenie kluczy tranzystorowych
 digitalWrite(NPN,0);  
 i++;                        //następna cyfra wyświetlacza
}
}

//-----------------------------------------------
void Reszta_programu()
{
 delayMicroseconds(4000);  //przy takim opóźnieniu pomiędzy kolejnymi wyświetlaniami poziom "migania"
                           //jest do zaakceptowania z odległości większej niż 1m
                           //ale czy 4ms wystarczą na dalszą resztę programu?
                           //nawet jeśli obługa wyświetlacza będzie realizowana w przerwaniu
                           //to w tym czasie procesor i tak nie wykonuje nic innego, a przerwanie co 4ms na 20ms?
}

Kilka wniosków:

- wniosek oczywisty pasek nie świeci tak jasno

- im dalej od wyświetlacza tym migotanie mniej widoczne

- czas świecenia i czas pomiędzy kolejnym wywołaniem programu obsługi są krytyczne i zależą od liczby cyfr w wyświetlaczu. Dla czasu świecenia 2,5ms oraz obsługi wyświetlacza składającego się z 8 cyfr co 4ms uzyskuję zadowalający efekt patrząc z odległości min. ok 1,5m, przy mniejszej odległości migotanie jest wyraźnie zauważalne. Ponieważ wyświetlacz będzie duży i będzie wisiał na wysokości >2m jest to do zaakceptowania.

- nic się nie grzeje (ale to tylko ok. 50mA)

- zmniejszenie liczby cyfr w wyświetlaczu daje nam więcej czasu na realizację pozostałej części programu - niestety 8 cyfr to minimum

- czy około 4ms wystarczy na resztę programu (tu mam wątpliwości)

- czy jasność świecenia będzie wystarczająca (wewnątrz pomieszczenia, ledy w profilach aluminiowych z kloszem mlecznym) - nie mogę sprawdzić, nie mam jeszcze profili.

- statyczne wyświetlanie rozwiązałoby chociaż w części problem jasności świecenia

Oczywiście należy wyjaśnić co będzie realizowała dalsza część programu. Generalnie urządzenie powinno:

- współpracować za pomocą I2C z modułem RTC na bazie DS1307 i wyświetlać czas i datę

- odmierzać wstecznie zadany czas (datę) i wyświetlać czas pozostały do 0 w sekundach, dniach ....itp.

- automatycznie synchronizować swój czas z wykorzystaniem odbiornika DCF-77 (MAS6180)

- wymieniać dane za pomocą sieci WLAN

- komunikować się przez port szeregowy z ESP-8266 celem wymiany danych.

Wszystkie te zagadnienia mam opanowane, czyli oprogramowane. Chciałbym to teraz wszystko zamknąć w jednej obudowie, urządzeniu. Troszeczkę tych zadań jest. Z przyczyn nazwijmy to "ideowych" jedyne mikrosterowniki jakie mogę wykorzystać to Arduino UNO i ESP8266 (NodeMCU).

Poza wydajnością prądową kluczy martwi mnie wię także duże "zapotrzebowanie na czas" multiplesowanego wyświetlacza. Będę musiał rozdzielić zadania pomiędzy Arduino i ESP8266, ale to już inna para kaloszy, kwestia programowa - z czym nie mam większych problemów.

Rozważam także rezygnację z multipleksowanej obsługi wyświetlacza na rzecz statycznej po zwiększeniu za pomocą ekspanderów liczby dostępnych portów.

Jakby jednak na to nie patrzeć potrzebuję klucza (np. katoda) lub pary kluczy (anoda i katoda), który(e) z zapasem obsłuży(ą) obciążenie ok. 500mA - to jest teraz dla mnie (nie elektronika) największym problemem i zmartwieniem.

Link do komentarza
Share on other sites

Poprawnie napisane multipleksowanie zabiera mikrokontrolerowi klasy ATMEGA może 1% jego mocy obliczeniowej przy praktycznie dowolnej sensownej liczbie cyfr i częstotliwości ich przełączania. Zamiast więc zastanawiać się nad problemami których nie ma, przyłóż się do programowania bo rzadko pierwsze, naiwne rozwiązanie (przynajmniej u mnie) jest optymalne. Napisałem Ci jak można to zrobić.

A klucze przecież zrobiłeś, potrzebujesz tylko mocniejszych tranzystorów. Może coś z serii BD2xx? Oczywiście jeśli obracamy się w kręgu bipolarnych.

Link do komentarza
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!

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.