logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

uC Atmega16- regulacja oświetlenia LED +-inne zastosowania

drakul124 09 Gru 2016 14:51 1548 28
  • #1 16116461
    drakul124
    Poziom 10  
    Cześć, mam do zrobienia projekt oparty o Atmege16
    Postanowilem zrobic regulacje lampę LED na 12V.
    Proszę o podpowiedz czy to ma szansę działać oraz czy dobrano prawidłowo tranzystor? czy jednak lepiej zastosować jakiś tranzystor npn?
    Docelowo ma być sterowana jasność diody o mocy 3W
    uC Atmega16- regulacja oświetlenia LED +-inne zastosowania
  • Pomocny post
    #3 16116660
    Konto nie istnieje
    Konto nie istnieje  
  • #4 16116854
    Konto nie istnieje
    Konto nie istnieje  
  • #5 16117025
    actin
    Poziom 34  
    Dodaj jak wyżej wspomniano rezystor pull down do mosfeta i powinno być dobrze.
    Mógłbyś zaimplementować w programie, ale fizyczny bedzue działać lepiej.
  • #6 16117040
    Konto nie istnieje
    Konto nie istnieje  
  • #7 16117814
    BlueDraco
    Specjalista - Mikrokontrolery
    I jak niby masz zamiar sterować tą diodą mocy? Gdzie źródło prądowe?
    To się zupełnie inaczej robi. Dioda 3W to coś zupełnie innego niż mała dioda sygnalizacyjna.

    Zainteresuj się układami MBI180x albo MBI665x.
  • #8 16118579
    drakul124
    Poziom 10  
    Dzięki za zainteresowanie :)

    Piotrus_999 napisał:
    Ten w procesorze na pewno zadziała jak procesor nie będzie miał zasilania. Nen wewnetrzny nie służy do tego !!!

    A mógłbym zapytać do czego służy ten zewnętrzny, który polecają koledzy wyżej? Zaciekawiło mnie to :)


    BlueDraco napisał:
    I jak niby masz zamiar sterować tą diodą mocy? Gdzie źródło prądowe?
    To się zupełnie inaczej robi. Dioda 3W to coś zupełnie innego niż mała dioda sygnalizacyjna.

    Zainteresuj się układami MBI180x albo MBI665x.




    W moim zamyśle jest tam wyprowadzone złącze ARK, na którym mogę wstawić dowolne napięcie zasilające odbiornik. Niekoniecznie małą diodę LED 3W, ale także więszą chociażby 9W, 12W itd Dodatkowo będę mógł sterować silnikiem albo czymś innym.Uwzględniając jeszcze obciążenia indukcyjne dodałem do schematu zapogiegawczo diodę obok mosfeta :)
  • #9 16118591
    Konto nie istnieje
    Konto nie istnieje  
  • #10 16118669
    drakul124
    Poziom 10  
    Tranzystor pozostanie otwarty i powoli będzie rósł opór aż w końcu się zamknie?
  • #11 16118711
    Konto nie istnieje
    Konto nie istnieje  
  • #13 16129593
    drakul124
    Poziom 10  
    Pytanie dotyczące sterowania PWM?
    Jaka częstotliwość będzie odpowiednia, żeby sterować bramką tego mosfeta?
    Od czego zależy?
  • #14 16129605
    Konto nie istnieje
    Konto nie istnieje  
  • #15 16129614
    dondu
    Moderator na urlopie...
    Przede wszystkim zależy to od elementu, który chcesz sterować.
    Jeśli pytasz o diodę, to częstotliwość powinna być najmniejszą jaką może zaobserwować ludzkie oko.
    Jeśli więc dasz 60Hz (np. jak obraz monitora), to w zupełności wystarczy. Mniej także będzie OK, ale niektórzy mogą się już skarżyć, jeśli ich indywidualne cechy oka męczyć będą ich wzrok, przy długiej obserwacji diody.
  • #16 16129844
    BlueDraco
    Specjalista - Mikrokontrolery
    Hmmm. do sterowania diodą LED nie schodziłbym z częstotliwością PWM poniżej 400 Hz, a wypadałoby dać nawet 800 lub więcej. Przy 60 Hz będzie stroboskop, że ho-ho!

    Z tym, że, jak już napisałem wcześniej, tej diody nie da się nie uszkodzić sterując ją z tranzystora - niezbędne jest źródło prądowe.
  • #17 16129856
    Konto nie istnieje
    Konto nie istnieje  
  • #19 16130035
    BlueDraco
    Specjalista - Mikrokontrolery
    Zrób to i sprawdź sam. Machasz łapką przy takiej lampce i widzisz 20 stojących łapek w powietrzu.

    Miganie przy 60 Hz widać zawsze. Przy 80 Hz nie widać, gdy oko nie zmienia pozycji ani kąta widzenia źródła światła. Przy 120 Hz lampa przestaje drażnić, jeśli nie ruszasz głową. Dobrze to zaczyna wyglądać przy 400 Hz.
  • #20 16130054
    dondu
    Moderator na urlopie...
    Opisujesz dyskotekę, a ta lampa ma tylko 3W i zastosowanie pokojowe :)

    Moje oko patrząc na wprost nie widzi migania już od 45Hz. Patrząc kątem oka przestaje widzieć miganie przy 50Hz.
    Przy 60 Hz niezależnie co będę robił nie zauważam migania, ale jak napisałem wyżej, to indywidualne cechy danego człowieka. Zapewne 40 lat temu widziałem inaczej :)
  • #21 16130067
    Konto nie istnieje
    Konto nie istnieje  
  • #22 16130093
    drakul124
    Poziom 10  
    hmm, ok,
    mam jeszcze jeden problem.
    Tranzystor pomimo braku wypełnienia na wyjsciu PWM nie chce się do końca zamknąć.
    Nieważne czy jest rezystor czy jest go brak, chociaż przy braku, faktycznie zachodzi zjawisko na wrzuconym wyżej filmiku.
    Czy zastosuję 1Mom czy 200om, jest to samo. Dopiero po bezpośrednim zwarciu bramki z masą, tranzystor się wyłącza.
    Dodam jeszcze, że przy zerowym wypełnieniu, otrzymuję ok 35mV na bramce i ok 1mA przy zwarciu bramki z masą...
  • #23 16130094
    Konto nie istnieje
    Konto nie istnieje  
  • #24 16130110
    drakul124
    Poziom 10  
    Hmmm, coś w tym jest.
    Sprawa wygląda tak: normalnie programuję w czystym C i tutaj zachodzi ten problem.
    Tak wygląda moja konfiguracja w C:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Kiedy jednak zapiszę to w języku Arduino i wygląda to tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    to problem znika... O co może chodzić, bo nie "mam pomysła"?
    I dzięki wszystkim za zainteresowanie tematem :)
  • #25 16130184
    dondu
    Moderator na urlopie...
    W trybie Fast PWM, przy wypełnieniu 0 generowana jest szpilka na wyjściach PWM:

    Cytat:
    The extreme values for the OCR1x Register represents special cases when generating a PWM
    waveform output in the fast PWM mode. If the OCR1x is set equal to BOTTOM (0x0000) the output
    will be a narrow spike for each TOP+1 timer clock cycle.

    W takiej sytuacji należy wyłączać bity COM1A.. i/lub COM1B... czyli ustawiać tryb pracy pinu na Normal.
  • #26 16130842
    drakul124
    Poziom 10  
    A czy w trybie z korekcją fazy też coś takiego się dzieje?
  • #27 16132875
    drakul124
    Poziom 10  
    Ok, sprawdziłem. W trybie z korekcją czegość takiego nie ma. Używam teraz tego trybu,
    bo nie wiedziałem jak wyłączyć te COMy, zeby bylo automatycznie...
    Teraz druga sprawa: mam dwa przyciski na przerwaniach INT0 i INT1, ale mi one w ogóle nie działają. Celem głównym jest osiągnięcie przechodzenia w tryb uśpienia i jego budzenie, ale jak już wspomniałem, nie mogę w ogóle wywołać tego przerwania:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #28 16133318
    dondu
    Moderator na urlopie...
    Najpierw zacznij od podstaw języka C - poćwicz operatory bitowe:
    http://mikrokontrolery.blogspot.com/2011/02/kurs-jezyka-c-spis-tresci.html

    Zacznij od poniższego kodu:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    skompiluj go w CManiaku: http://mikrokontrolery.blogspot.com/p/cmaniak-kompilator-jezyka-c-online.html

    i przeanalizuj zawartość rejestru MCUCR.


    W drugiej kolejności przeanalizuj tabelę: Active Clock Domains and Wake Up Sources in the Different Sleep Modes
    w szczególności notki pod nią numerowane 1,2 i 3 i zastanów się jaki tryb snu wybierasz i co go może wybudzić ze snu.
  • #29 16201480
    drakul124
    Poziom 10  
    Ok, faktycznie dojrzałem swoje błędy propo operatorów bitowych.
    Mam jeszcze jedno zagadnienie do zrobienia. Nie potrafię w języku C, zaimplementować histerezy do tego projektu. Na granicznych wartościach ADC, żarówka drży, a wartość wyświetlacza nie jest poprawnie wyświetlana. Próbowałem to zrobić na if... jednak moje próby spełzły na niczym... Nie mam pomysłu jak to zrobić... :(
REKLAMA