Czy naprawdę potrzebuję rezystorów podczas sterowania diodami LED za pomocą Arduino?


47

Właśnie wypróbowuję Arduino Uno po raz pierwszy z 2 migającymi diodami LED na desce. Wszystkie samouczki w Internecie wydają się używać rezystora. Znam funkcję rezystorów, ale czy to naprawdę ma znaczenie? Te diody LED działają dobrze bez opornika.


8
To zależy, czy chcesz, aby dioda LED stopiła się, czy nie. Jeśli nie masz nic przeciwko, pomiń rezystor. :-).
Dan Sheppard

Odpowiedzi:


78

Niegrzeczny! :-). Jeśli twierdzą, że używają rezystora, jest ku temu dobry powód! Wyłącz to, TERAZ!

Rezystor służy ograniczeniu prądu diody LED. Jeśli go pominiesz, obecne ograniczenie musi pochodzić z wyjścia Arduino i nie spodoba mu się to. Jak dowiedzieć się, jaki powinien być rezystor? Znasz Prawo Ohma? Jeśli nie, zapisz to dużymi literami:

V=IR

Napięcie jest równe prądowi i oporności. Lub możesz powiedzieć

R=VI

To jest to samo. Napięcie, które znasz: Arduino działa przy 5 V. Ale nie wszystko, co przejdzie przez rezystor. Dioda LED ma również spadek napięcia, zwykle około 2 V dla czerwonej diody LED. Tak więc rezystor ma napięcie 3 V. Typowa dioda LED wskaźnika będzie miała prąd nominalny 20 mA

R=5V2V20mA=150Ω

Arduino Uno wykorzystuje mikrokontroler ATmega328 . Z arkusza danych wynika, że ​​prąd dla dowolnego styku we / wy nie powinien przekraczać 40 mA, co jest powszechnie znane jako bezwzględne maksymalne wartości znamionowe. Ponieważ nie masz nic do ograniczenia prądu, istnieje tylko (niska!) Rezystancja tranzystora wyjściowego. Prąd może równie dobrze być większy niż 40 mA, a twój mikrokontroler dozna obrażeń.

edytuj
Poniższy wykres z arkusza danych ATmega pokazuje, co się stanie, jeśli napędzasz diodę LED bez rezystora ograniczającego prąd:

wprowadź opis zdjęcia tutaj

Bez obciążenia napięcie wyjściowe wynosi 5 V zgodnie z oczekiwaniami. Ale im wyższy prąd pobierany, tym niższe będzie napięcie wyjściowe, będzie on spadać o około 100 mV na każde dodatkowe obciążenie 4 mA. To wewnętrzny opór 25 . Następnie Ω

I=5V2V25Ω=120mA

Wykres nie posuwa się tak daleko, opór wzrośnie wraz z temperaturą, ale prąd pozostanie bardzo wysoki. Pamiętaj, że arkusz danych podał 40mA jako absolutną maksymalną ocenę. Masz trzy razy tyle. To z pewnością uszkodzi port I / O, jeśli robisz to przez długi czas. I prawdopodobnie również LED. Wskaźnik LED 20mA często ma 30mA jako absolutną maksymalną ocenę.


2
Nie całkiem. 3 i nie dostaniesz żadnego światła, ponieważ 3 x 2V> 5V, a 2 będziesz miał ten sam problem, tylko spadek 1V zamiast 3V. Dodałem do mojej odpowiedzi, aby ją teraz wyłączyć!
stevenvh

21
Nie wiedziałem, ile razy zapisałem to obliczenie w odpowiedziach tutaj. Powinienem mieć skrypt :-)
stevenvh

2
Diody LED są zaprojektowane do pracy z określonym maksymalnym prądem. Napięcie je napędzające oznacza, że ​​prąd jest niekontrolowany. Porty są wykonane w celu zapewnienia określonego maksymalnego prądu. Zwarcie lub przeciążenie MOŻE leasd do przypięcia lub zniszczenia całego układu scalonego lub po prostu powodować subtelne problemy operacyjne. Albo nie.
Russell McMahon

4
@ JohnR.Strohm Nie nazwałbym tego standardem branżowym.
m.Alin

2
@ JohnR.Strohm - Jak m.Alin mówi, że to nie jest standard branżowy. Digikey wymienia nominalne diody LED 10mA w zakresie od 0,4mcd do 1000 mcd oraz diody LED 20mA w zakresie od 0,1 mcd do 54000 mcd. Nie ma w nim linii i nie ma gwarancji, że Twoja dioda LED 10mA będzie dobrze widoczna. Napięcie czerwonej diody LED zwykle wynosi od 1,8 V do 2,2 V. Dla czerwonej diody LED 1,6 V jest wyjątkowo niskie.
stevenvh

22

40 działek,

Muszę powiedzieć, że prowadzenie diody LED bez rezystora NIE JEST ZALECANE, chyba że wiesz, co robisz. Jeśli jednak rozumiesz, jak zachowuje się dioda LED, możesz bezpiecznie nią prowadzić bez rezystora. W rzeczywistości prowadzenie diody LED bez opornika ograniczającego prąd jest często lepsze.

Dlaczego miałbyś prowadzić diodę LED bez rezystora? Proste, aby Twój obwód był bardziej energooszczędny.

Czy należy prowadzić diodę LED z PWM ustawionym na stały cykl pracy (tj. 5 V PWM przy 34% cyklu pracy, aby osiągnąć średnie napięcie 1,7 V)?

Tak i nie. Korzystanie z PWM może działać równie dobrze, jak przyłożenie określonego napięcia (jeśli jesteś ostrożny), ale są lepsze sposoby. Rzeczy, o które należy się martwić, stosując podejście PWM.

  1. Ważna jest częstotliwość PWM. Korzystając z PWM w tym scenariuszu, polegasz na zdolności komponentów obwodu do chwilowej obsługi wysokich prądów. Największe obawy dotyczą sposobu, w jaki dioda LED radzi sobie z chwilowym wysokim prądem oraz tego, jak obwód wyjściowy układu może obsłużyć chwilowo wysoki prąd. Jeśli ta informacja nie jest podana w arkuszu danych, to autorzy arkusza danych byli leniwi. ALE!!! Jeśli ta informacja jest podana w arkuszu danych, możesz bezpiecznie z niej skorzystać. Na przykład dioda LED, którą mam obok, ma maksymalną wartość prądu 40 mA. Ma jednak również „szczytowy prąd przewodzenia” wynoszący 200 mA, przy czym należy zauważyć, że prąd nie może pozostać przy 200 mA przez czas dłuższy niż 10us. Soooo ... Mogę napędzać diodę LED napięciem 1,7 V (diody LED typowe napięcie przewodzenia z karty danych). Przy cyklu pracy 34% i zasilaniu 5 V (34% 5 V = 1,7 V) wytworzysz średnie napięcie 1,7 V, muszę tylko upewnić się, że mój PWM na czas wynosi 10us lub mniej. W czasie włączenia prąd przez diodę LED prawdopodobnie wzrośnie do około 58 mA (58 mA = typowy pobór prądu przy 1,7 V mojej diody podzielony przez 34%). 58 mA przekracza moje diody LED prąd stały maksymalnie 40 mA o 18 mA. Wreszcie ... Potrzebuję częstotliwości PWM 33,3 kHz lub większej, aby bezpiecznie prowadzić moją diodę LED (33,3 kHz = Odwrotność [10us czasu włączenia podzielonego przez 34%, aby uzyskać okres PWM]). W RZECZYWISTOŚCI mógłbym bezpiecznie używać PWM do zasilania mojej diody LED wolniejszą częstotliwością PWM. Powód jest następujący: Arkusze danych zwykle nie określają wszystkich prawidłowych scenariuszy działania komponentu. Nie określają tych scenariuszy, ponieważ sprzedawca nie „ chcą zainwestować czas w spekulacje i wsparcie wykorzystania ich komponentu w przypadkach użycia w narożnikach. Na przykład, z moją diodą LED, jeśli mogę obsługiwać diodę LED przy 40 mA na zawsze (40mA to maksymalna wartość prądu stałego) i mogę obsługiwać diodę przy 200 mA przez 10us. Wówczas mogę mieć 99,99999% pewności, że mogę bezpiecznie obsługiwać diodę LED przy 100 mA przez pewien okres dłuższy niż 10us, prawdopodobnie blisko 20us.

UWAGA: Wszystkie komponenty mogą bezpiecznie poradzić sobie z chwilowymi skokami prądu powyżej ich maksymalnych wartości znamionowych, o ile czas trwania skoków prądu jest MAŁY . Niektóre komponenty będą bardziej wybaczające niż inne, a jeśli masz szczęście, arkusz danych komponentu określi, jak dobrze poradzi sobie z skokami prądu.

  1. Napięcie twojego PWM jest ważne. Przedstawię swój punkt widzenia za pomocą przykładu zamiast wyjaśnienia. Jeśli użyjemy diody LED, o której mówiłem wcześniej, wiemy, że 34% cykl pracy przy 33,3 kHz przy 5 V jest bezpieczny. Gdyby jednak nasze napięcie wynosiło 12 V, musielibyśmy przerobić nasze obliczenia, aby utrzymać taką samą ilość prądu przepływającego przez diodę LED. Nasz cykl roboczy musiałby spaść do 14,167% (1,7 V podzielone przez 12 V), a nasza minimalna częstotliwość PWM spadłaby do 14,285 kHz (odwrotność [10us podzielona przez 14,167%]).JEDNAK!, to jest powód do niepokoju. W scenariuszu 5 V stosujemy 5 V dla 10us, aw scenariuszu 12 V stosujemy 12V dla 10us. Ponad dwukrotnie podnieśliśmy napięcie podczas tego 10us, muszą być pewne konsekwencje. I tak, są! Mój arkusz danych LED nie dostarcza mi danych niezbędnych do ustalenia, jak wysokie napięcie mogę użyć dla 10us, zanim uszkodzę swoją diodę LED. Z pewnością 1000 V dla 10us usmaży moją diodę LED. Ale skąd mam wiedzieć, czy 5 V przy 10us będzie smażyć moją diodę LED? lub 12V dla 10us? Jeśli nie ma takiej specyfikacji, podejmujesz ryzyko. Więc ... 5 V dla 10us jest ryzykowne, ale najprawdopodobniej bezpieczne.

UWAGA: Możesz dodać kondensator do obwodu, aby uśrednić PWM i rozwiązać ten problem.

  1. Podejście PWM napędza diodę LED w otwartej pętli (podobnie dzieje się w przypadku zasilania 1,7 V bez PWM). Podajesz średnie napięcie do diody LED, która jest odpowiednią wartością, aby WŁĄCZYĆ diodę LED, ale nie jest wystarczająco wysoka, aby ją uszkodzić. Niestety zakres napięcia od WŁĄCZENIA (i wystarczająco jasnego, aby zobaczyć) do uszkodzonej diody LED jest bardzo mały (ten zakres na mojej diodzie wynosi około 0,7V). Istnieje wiele powodów, dla których 1,7 V, o którym myślisz, że nie zawsze będzie wynosić 1,7 V ...

za. Zmiany temperatury otoczenia Co jeśli masz sterownik silnika, regulator napięcia itp. W zamkniętym pudełku, które również zawiera diodę LED. Nie jest niczym niezwykłym, gdy te inne elementy zwiększają temperaturę otoczenia wewnątrz obudowy z 25 ° C na 50 ° C. Ten wzrost temperatury spowoduje zmianę zachowania diody LED, regulatora napięcia itp. Twój niegdyś bezpieczny 1,7 V nie będzie już wynosił 1,7 V, a dioda LED, która zwykła smażyć przy 2,5 V, teraz będzie smażyć przy 2,2 V.

b. Zmiany napięcia zasilającego. Co jeśli twój zapas był baterią. W miarę rozładowywania się akumulatora napięcie znacznie spada. Co jeśli zaprojektowałeś swój obwód tak, aby działał dobrze z lekko zużytą baterią 9 V, ale potem dodałeś nową baterię 9 V. Zupełnie nowe akumulatory kwasowo-ołowiowe 9 V mają zwykle rzeczywiste napięcie 9,5 V. W zależności od obwodu zapewniającego napięcie 5 V stosowane w PWM, dodatkowe 0,5 V może zwiększyć napięcie 5 V PWM do 5,3 V. Co jeśli korzystasz z akumulatora? Mają jeszcze większy zakres napięć w całym cyklu rozładowania.

do. Istnieją inne scenariusze, takie jak prąd indukowany z EMI (silniki to zrobią).

Posiadanie rezystora ograniczającego prąd pozwala uniknąć wielu z tych problemów.

Używanie PWM do sterowania diodami LED nie jest zbyt dobrym rozwiązaniem, czy istnieje lepszy sposób, który nie wymaga rezystora ograniczającego prąd?

Tak! Rób to, co robią w żarówkach LED dla swojego domu. Napęd LED za pomocą kontrolera prądu. Ustaw kontroler prądu, aby sterować prądem, dla którego dioda LED jest oceniana.

Dzięki właściwemu sterownikowi prądu można znacznie zwiększyć i możesz bezpiecznie prowadzić diodę LED, nie martwiąc się większością problemów związanych z prowadzeniem diody LED w otwartej pętli.

Wada: potrzebujesz kontrolera prądu i zwiększyłeś złożoność obwodu o 10 razy. Nie zniechęcaj się. Możesz kupić układy scalone kontrolera prądu, układy scalone sterownika LED lub stworzyć własny konwerter boost sterowany prądem. To nie jest takie trudne. Poświęć trochę czasu na swój napięty harmonogram i dowiedz się o konwerterach boost i buck. Dowiedz się o przełączaniu zasilaczy. To one zasilają Twój komputer i są niezwykle energooszczędne. Następnie zbuduj jeden od zera lub kup niedrogi układ scalony, aby wykonać większość pracy za Ciebie.

Oczywiście, podobnie jak w przypadku wszystkich projektów elektronicznych, zawsze można zrobić więcej, aby ulepszyć obwód. Sprawdź rysunek 3 w poniższym pliku PDF, aby zobaczyć, jak skomplikowana może być nawet żarówka LED do użytku domowego w dzisiejszych czasach ...

http://www.littelfuse.com/~/media/electronics/design_guides/led_protectors/littelfuse_led_lighting_design_guide.pdf.pdf

Podsumowując: musisz sam zdecydować, jakie ryzyko chcesz podjąć ze swoim obwodem. Wykorzystanie 5V PWM do napędzania diody LED prawdopodobnie będzie działać dobrze (szczególnie jeśli dodasz kondensator, aby wygładzić falę prostokątną PWM i maksymalnie zwiększyć częstotliwość PWM). Nie bój się zbytnio wypychać elektroniki poza zwykłe warunki pracy, po prostu bądź informowany, kiedy to robisz, wiedz o podejmowanym ryzyku.

Cieszyć się!

FYI: Jestem zaskoczony, jak wiele osób natychmiast skacze do odpowiedzi: „MUSISZ UŻYWAĆ BIEŻĄCEGO REZYSTORA OGRANICZAJĄCEGO”. To dobra intencja, ale zbyt bezpieczna rada.

Ort


Jestem zaskoczony, widząc, jak wiele osób uznało tę odpowiedź za cenną poradę projektową. Prowadzenie diody LED bez ograniczenia prądu za pomocą PWM jest tak samo złe dla diody LED, jak to, co robi OP, a ponadto generuje fale EMI i VCC jak crasy.
Dmitrij Grigoryev

1

Możesz użyć wbudowanych rezystorów pullup, zgodnie z sugestią tutaj :

Rezystory podciągające zapewniają wystarczającą ilość prądu, aby słabo zapalić diodę LED podłączoną do wtyku skonfigurowanego jako wejście.


Nie w przypadku diod LED, można tego użyć w przypadku przycisków, ale w przypadku diod LED istnieje ryzyko uszkodzenia wyjścia
Menelaos Vergis

jeśli to nie jest bezpieczne, dlaczego oficjalni doktorzy tak mówią? (Próbowałem też i
działałem

Proszę przeczytać OUTPUT, wspomina, że ​​potrzebuje opornika szeregowego: „Jest to wystarczający prąd, aby jasno zaświecić diodę LED (nie zapomnij o oporniku szeregowym) lub uruchomić na przykład wiele czujników, ale za mało prądu, aby uruchomić większość przekaźniki, elektromagnesy lub silniki. ”
Menelaos Vergis

0

Odpowiedź stevenvh wyjaśnia, co musisz zrobić, ale musisz również obliczyć rozproszenie mocy na diodzie LED, aby nie wypalić rezystora spadku napięcia. Na przykład, jeśli napięcie zasilania wynosi 5 V, a napięcie przewodzenia rezystora wynosi 1,0 V, wówczas spadniesz o 4 V. Zastosowanie rezystora 220 omów da prąd (I = V / R) 18mA i rozproszenie mocy (P = IV) 72mW.

0402 Rezystor wielkości imperialnej (1005 metrycznych) ma na ogół 1/16 W, czyli 62,5 mW. W takim przypadku to nie zadziałałoby; przegrzałby rezystor i skrócił jego żywotność. Musisz więc zmienić rezystor 0402 o mocy 1 / 10W lub większy rezystor 0603.

Ilekroć wykonujesz takie obliczenia, dodaj je do schematu, aby recenzent mógł łatwo sprawdzić twoją pracę.

Należy pamiętać, że napięcie przewodzenia (a zatem wartość rezystora) jest funkcją diody LED, a różne kolory diod LED będą miały różne wartości. W szczególności niebieskie diody LED mają wysokie napięcie przewodzenia (typ ~ 3,0 V). Więc jeśli próbujesz uzyskać cztery różne diody LED o tej samej jasności, musisz powtórzyć obliczenia dla każdej diody LED. Aby naprawdę zrobić to dobrze, spójrz na właściwości optyczne każdej diody LED przy prądzie znamionowym i odpowiednio dostosuj.


0

Krótka odpowiedź brzmi: tak i nie, zależy od twojego arduino i zależy od koloru diody LED. Na przykład płyta 3,3 V nie wymaga szeregowego rezystora z małą zieloną diodą LED, ponieważ napięcie do przodu diody LED jest dość wysokie, zobacz to. Rezystancja wewnętrzna wynosi około 25 Ohm, weź (3,3 - 3) / 25 = 12mA, więc to nadal dobrze, nie powinieneś przekraczać maksymalnego prądu na pin, który wynosi 40mA dla procesora atmel 328p używanego na płytach UNO (chyba że używasz pochodnej 328p, gdzie może to być inna historia). Jednak dla arduino działającego przy 5 V wystąpią problemy z diodą podczerwieni, która ma znacznie niższe napięcie przewodzenia, zwykle 1,2 V, (5-1,2) / 25 = 150 mA, a to zdecydowanie za dużo, więc użyj ogranicznika prądu, takiego jak jako rezystor do sterowania tego rodzaju diodami LED. Pin 13 na płytkach Arduino (lub inny pin w wariantach) ma już szeregowo diodę LED i rezystor. Ponadto zasilacz na płytce ma maksymalną wartość znamionową, zwykle 200 mA, i musisz pozostać poniżej tego poziomu i nie możesz pobrać więcej niż pewną liczbę mA na grupę styków, wyjaśniono toTutaj . Jeśli chcesz sterować wieloma diodami LED, rozważ użycie matrycowego sterownika LED, który wykonuje dla Ciebie multipleksowanie, zobacz na przykład mój obszar YouTube, na którym demonstruję sterownik MAX7219CNG. Ale także Arduino Uno może wykonać dla Ciebie multipleksowanie, zobacz mój termometr na podczerwień z 4 siedmiosegmentowymi diodami LED na youtube. Szczęśliwego hakowania.


-3

TAK! To może być zrobione.

Nawet jeśli to, co zostało powiedziane, jest poprawne ... jest inny sposób. Bardziej energooszczędny sposób napędzania diod LED o napięciu 5 V.

Jest to trochę nieudokumentowane i nie wiadomo, czy rozwiązanie zużyje diody LED, ale można to zrobić. Właściwie to robię.

Korzystanie z PWM przez sprzęt: Oto przykład :

#include <avr/io.h>
#include <util/delay.h>
void pwm_init()
{
    // initialize TCCR0 as per requirement, say as follows
    TCCR0 |= (1<<WGM00)|(1<<COM01)|(1<<WGM01)|(1<<CS00);

    // make sure to make OC0 pin (pin PB3 for atmega32) as output pin
    DDRB |= (1<<PB3);
}

void main()
{
    uint8_t duty;
    duty = 1;       // duty cycle = 0.39% of the time (depends on the oscillator.)

    // initialize timer in PWM mode
    pwm_init();

    // run forever
    while(1)
    {
        OCR0 = duty;
    }
}

PWM można również symulować za pomocą oprogramowania i timerów avrs. Możesz znaleźć przykład w bibliotece lufa, o nazwie LEDNotifier.c.

Mój wniosek: możliwe jest prowadzenie diody LED na 5 V.

Plusy: nie ma potrzeby stosowania rezystora. Niektóre oszczędności energii (~ 50%)

Wady: Nie wiem, czy komponent jest obciążony i czy skraca jego żywotność.

Jest facet, który również przeprowadził ten eksperyment w Stanford i zamieścił informacje na swojej stronie .


2
To po prostu nie wydaje się dobrym pomysłem. Prawdopodobnie pozyskujesz więcej prądu z kontrolera niż jest przeznaczony, nawet jeśli nie robisz tego zbyt długo.
Scott Seidman,

Jak już powiedziano, jest to nieokreślone. Wyjście Arduino UNO IO może prowadzić około 40ma-50ma. To jest stałe. Mogę z pewnością poradzić sobie z bardzo krótkimi impulsami z większym prądem. Proszę zajrzeć na wikipedię .
Gaspar de Elias,

W środowisku Arduino można łatwiej uzyskać PWM za analogWrite()pomocą odpowiedniego pinu. Nadal nie jestem pewien, czy to dobry pomysł, ale przynajmniej w przypadku diod LED na podczerwień karty danych często pozwalają na znacznie wyższe prądy szczytowe dla cykli roboczych mniejszych niż 100%.
microtherion

Jestem prawie pewien, że oszczędności energii będą ujemne w porównaniu z rozwiązaniem opartym na opornikach, ponieważ wydajność diod LED spada wraz ze wzrostem prądu.
Dmitrij Grigoryev
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.