Witam, mam pytanie czy jest możliwe sterowanie ATMEGA8 transformatorów elektronicznych do halogenów po stronie 230V i ewentualnie ile można uzyskać kanałów.Chodzi mi już od dłuższego czasu po głowie taki wielokanałowy (4-6 kanałów)ściemniacz z możliwością regulacji każdego kanału za pomocą poziomowego menu(kanał 1,póżniej 2 itd)wyświetlaniem tego co i jak reguluję na LCD oraz zapisem wprowadzonych zmian. Jakie elementy najlepiej użyć jako wykonawcze?
|
|||
Re: Ściemniacz
Szczerze mówiąc to też chciałem zrealizować taki ściemniacz tylko że na pilota i bez jakichkolwiek wyświetlaczy.... nawet rozpocząłem wstępną analizę problemu ale na razie wstrzymałem realizację. Nie wiem czy uda mi się napisać program regulatora fazowego dla więcej niż jednego kanału w bascomie. Co do regulacji transformatora klasycznego to napewno nie lubia jak przebieg staje się niesinusoidalny. Co do trafa elektronicznego to trzeba by trochę poznać jego budowę. Jeśli to zwykła przetwornica z mostkiem prostowniczym na wejściu to powinno dać radę się podłączyć ale regulacja taka jest bez sensu bo przetwornica wewnątrz będzie chciała dostroić na wyjściu 12V do halogenów.
Co do elementów wykonawczych to wiadomo: triaki
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Ściemniacz
Poszukałem i trochę poczytałem, przerobiłem Twój schemat (PORT.D to wyjścia),i znalazłem schemat detekcji "0" oraz stopień wykonawczy.Możesz popatrzeć jak to pasuje i czy da się zgrać to wszystko programowo.Odnośnie przycisków to np.S1-menu, S2 to +, S3 to -, S4 i S5 jeszcze nie wiem,ale na pewno się przydadzą. Na LCD wyświetlanie nr.kanału ,a w drugiej lini pasek regulacji dla wyświetlonego kanału. Powiedz od czego zacząć,aby nie było znowu bałaganu
i ten chyba najlepszy
Re: Ściemniacz
Zacznij od obsługi przerwania zewnętrznego i policzenia zer w sieci. Powinieneś mieć wynik zawsze 100 na sekundę. Dopiero jak to zadziała to możesz próbować sterowania triakiem. Odnośnie sterowania i wykrywania 0 to najlepiej wygląda ostatni schemat.
W bascomie będzie to strasznie trudno napisać, tak aby dobrze działało. Szczególnie dla układu wielokanałowego
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Ściemniacz
Nic nie mogę z tym ruszyć,straciłem dużo czasu na szukaniu, coś tam jest o sterowaniu transformatorów elektronicznych, jednach wszystko powierzchownie opisane.Dla mnie nie musi być płynna regulacja,może być skokowa, ale nie wiem nadal jak zacząć i co mam powyliczać.możesz dać mi coś na początek abym to sprawdził i pokombinował z jednym kanałem, a później może już poleci.
Re: Regulacja mocy
Poczytaj to http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CHIQFjAA&url=http%3A%2F%2Fep.com.pl%2Ffiles%2F4942.pdf&ei=GcrJT6xyp6DiBIq7uBw&usg=AFQjCNF58WwA_Pp52kXcb5Gfm5lobiTxSQ
Do regulacji mocy wykorzystywany jest tutaj PWM sterujacy wyprostowanym przebiegiem z sieci energetycznej
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
wielokanałowy ściemniacz
No i przyszedł czas aby spróbować to trochę ruszyć.Przejżałem link od ciebie i nie chodzi mi o przebudowę układów zasilających lecz o sterowanie gotowymi już transformatorami elektronicznymi.Poczytałem na elektrodzie i udaje się im regulować je za pomocą AVR-ów sterownikiem fazowym, niestety jest tam to opisywane niezbyt zrozumiale dla mnie.
Spróbuję pokombinować z regulacją 1 transf. i jak to się uda to założenia są takie:
1. 4 kanały regulowane niezależnie
2. 1 kanał on/off na przekaźniku
3. zapis 3 scen do trzech przycisków
4. zał/wyłączenie jednym przyciskiem
5. przyciskiem menu wybór który kanał do regulacji
6. przyciski +/-
No i dodatkowo wszystko na LCD.
Jak myślisz ,jest to do wykonania w BASCOM-ie.
Podobny projekt stestowałem na ATTINY 2313(czterokanałowy regulator oswietlenia AVT2749)i prawie nieźle to śmigało tylko niestety większość na pilota a mi chodzi o sterowanie przyciskami.
RE: Sciemniacz
Jak się da zrobić na pilota to tym bardziej na przyciski. Zacznij jednak od jednego kanału, apotem spróbujesz dodac pozostałe
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
wielokanałowy ściemniacz
Witam,znalazłem coś do regulacji 1 kanału, trochę przerobiłem i potestowałem.
Wszystko ładnie śmiga nawet z transformatorami elektronicznymi, tylko niestety nie wiem jeszcze dlaczego przy transformat.elektr. przy ściemnieniu poniżej 50% przebija(uszkadza) mi triaki(może przepięcia) ,ale to pewnie da się jakoś załatwić.
Jak możesz zernąć na programik i pokierować dalej to będę wdzięczny.
przejście przez zero jest na INT1(PD3)reszta bez zmian.
Re: regulator mocy
No włąśnie i tu myślę że jesteś w tym samym punkcie jakim byłem jakiś czas temu. Chodzi o to że wykorzystujesz timer1 do bezpośredniego odliczania czasu dla jednego z kanałów. Jak chcesz drugi kanał to powinieneś miec drugi timer itd., a procek tyle nie ma żeby zrobić 4 kanały.
Spróbuj zrobic tak:
1. Niech timer1 działa cały czas w kółko
2. W momencie wystąpienia 0 zapisz do zmiennej aktualną wartośc timera + wartość z tabelki z mocą. Jeśli będzie ponad 65536 to powinno się przekręcić i zacząć od zera.
3. W pętli Do loop bezpośrednio sprawdzaj ifem czy aktualna wartość timera nie jest równa tej zmiennej i jeśli jest to Bramka = 1
Nie wiem czy to zadziała ale jeśli tak to nie będzie potrzebne przerwanie od T1 i będzie można zrobić kilka takich zmiennych i kilka ifów w do loop.
W do loop nie ma prawa być wait'a ale o tym pewnie wiesz.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
regulator mocy
niestety nie jestem tak dobry w programowaniu,muszę poszukać w necie i podpatrzyć jak to powinno wyglądać.Pewnie trochę mi z tym zejdzie,ale dzięki.
Możesz mi napisać jak to powinno być ,a ja sprawdzę czy działa.
regulator mocy
Mirley ,możesz jeszcze popatrzeć jak rozwiązane są 4 kanały + przekażnik w kicie AVT2749,z tym,że nie potrzebuję sterowania z pilota,a przyciskami,no i na atmege8. Podaje tam przejście przez "0" na PD6(attiny2313),jednak jego układ nie radzi sobie z transf.elektr.
Całość kodu i opis ze schematem mogę tobie podesłać jak byś chciał na to popatrzeć ,jest na at90s2313 ale po przeróbce na attiny2313 też działa.
wielokanałowy ściemniacz
Po wielu testach jednak triaki nie nadają się do sterowania transformatorami elektronicznymi, regulacja powoduje ich częste przebicia.Rozebrałem sterownik DALI i mają to rozwiązane na 2 MosFet-ach .Znalazłem podobny schemat
Układ detekcji zera pozostawię na PC814(prosty i działa).
Możesz napisać jak wysterować to nza pomocą atmegi8 ,aby przetestować jak działa i czy idziemy w dobrą stronę,
link do opisu schematu
http://www.elektroda.pl/rtvforum/topic2080445.html#9888102
Jest jeszcze jeden schemat ale to ty sam oceń
http://www.elektroda.pl/rtvforum/topic1731781.html#8353502
wielokanałowy ściemniacz
Mirley możesz napisać jak to prawidłowo rozpocząć na początek dla jednego kanału na tranzystorach Mosfet.
Trochę sie dowiedziałem jak to powinno wyglądać.
Detekcja "0" podana będzie na INT0, w przerwaniu po wykryciu "0" jest zerowany licznik i wpisanie do rejestru
porównawczego wartości z tabeli po której ma się wyłączyć stopień mocy.Wykożystać należy przerwanie pochodzące od układu
porównującego licznika OCRn, w momencie gdy wartośc licznika i wartość OCRn są równe wyzwalane zostaje przerwanie.
Są to rady kolegi z elektrody i jemu to działa z tym schematem wcześniej,jednak ilość kanałów przy tym rozwiązaniu
może być niewystarczająca (ilość kanałów porównawczych w atmedze8).
Tabela dla triaka pewnie będzie i tutaj odpowiednia,tyle,że będzie odwrotnie.
Re: Sterowanie fazowe
Przede wszystkim to czy napewno jest sterowanie fazowe? Jak dokładnie chcesz aby działał taki układ z mosfetami? Chyba musimy od tego zacząć bo piszesz że po pewnym czasie od 0 sieci wyłączasz stopień mocy. Sterowanie fazowe w klasycznym ujęciu włącza triak po pewnym czasie od 0 sieci aż do następnego 0.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
wielokanałowy ściemniacz
Mirlej wkleję tobie zarys działania jaki podesłał mi kolega Postman5 :
"Generalnie podłączenie poszczególnych elementów wygląda tak:
- wyjście z układu detekcji zera fazy na wejście przerwaniowe uC
- wyjście uC steruje tranzystorem Q4 przedstawionym na rysunku na forum
Od strony programowej:
moc jaką dostarczymy do odbiornika wynika z tego jaki kawałek sinusoidy pojawi sie na wyjściu stopnia mocy, czyli na jak długo go "włączymy". Czas ten musi być mierzony od momentu przejścia przez zero - stąd podłączenie układu detekcji zera do wejścia przerwaniowego. W obsłudze przerwania musimy załączyć wyjście i zacząć odmierzać czas po którym musimy "wyłączyć" wyjście.
Najlepiej uzyć do tego timer'a. Po odmierzeniu czasu musimy "wyłączyć" wyjście i czekać na następne zero fazy. "Wyłączanie" również dobrze jest wykonać w przerwaniu tym razem od timer'a."
Działa to podobnie do regulacji fazowej z tym ,że nie załączmy przed "0" i triak w zerze wyłączy się sam, a tutaj odliczanie zaczyna się automatycznie po przejściu przez "0" ,a "my" wyłączamy po odliczeniu.
Niestey Postman5 pisze w "C", ale mogę się dopytać to co potzeba.
Zerknąłeś na te 2 linki wyżej?
Dokładam tobie jeszcze wykres
przy triaku załączamy w każdej połówce na czas "t" i wyłączamy w "0"
przy tranzystorach załączamy w "0" i wyłączamy po czsie "t"
Re: Regulacja mocy
Cały czas sprawa rozbija się o:
Jeśli tak zrobisz to będziesz miał tyle kanałów ile timerów, bo jeden timer może odmierzać tylko jeden przedział czasu
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
wielokanałowy ściemniacz
A jak proponujesz to rozwiązać? Mamy jeszcze 3 wyjścia porównujące ,to 3 kanały .
wielokanałowy ściemniacz
Czemu teraz bywasz na stronie tylko sporadycznie ,a na odpowiedź czekamy po tygodniu?zapomniałem się zalogować. A możesz napisać jak przerobić program z postu 8 aby załączał w "0" i wyłączał po czasie T ,muszę przetestować jeszcze czy ten układ z tranzystorami na pewno działa.
Ewentualnym rozwiązaniem sterowania kilkoma kanałami mogą być pojedyncze bloki wykonawcze na attiny2313 sterowane za pomocą 1 atmegi8,ale to bardziej skomplikowane.
Re: ściemniacz
A nie wystarczy poprostu zamienić sygnałów tak jak zrobiłem wyżej? Teraz jak będzie 0 to na pinie bramka ustawi się 1 a po przerwaniu timera zostanie ustawione 0.
Na stronę zaglądam rzadziej bo po pracuje nad wieloma ciekawymi projektami, które udostępnie niebawem: Przedwzmacniacz stereo z regulacją tonów na wzmacniaczach operacyjnych, Wzmacniacz 200W na tranzystorach, Wzmacniacz 2x450W na tranzystorach, układy soft startu do trafa, zabezpieczenia głośników i wskaźnik wysterowania z prostownikiem liniowym i pomiarem średniej mocy. Poza tym niecałe 2 miesiące temu się ożeniłem więc dajcie spokój :)
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
wielokanałowy ściemniacz
Witam.postanowiłem zrobić kilka pojedynczych regulatorów ,a później pomyślę jak je razem połączyć za pomocą np.ATMEGI8.
Regulator działa bez problemu w 99 krokach, jednak nie wiem jak zrobić wyświetlanie mocy na 2 wyświetlaczach LED, zostawiłem na segmenty PB.0 do PB.7 oraz anody PD.5 i PD.6.
Czy aby to zrobić muszę odpalić dodatkowo TIMER0? i tam w przerwaniu dołożyć wyświetlanie, czy też masz jakiś inny pomysł.
Odnośnie Waitms w pętli gł. przy takim rozwiązaniu nie mogę się go pozbyć.
Re; ściemniacz
Dodaj obsługę do timera 0 co 4ms i tam multipleksuj wyświetlacz LED
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
ściemniacz
mam to zrobione tylko ze względu na opóźnienie wait w pętli gł. bardzo mrugają.jak zrobić aby wywalić obsługę przycisków z pętli i dołożyć obsługę na zasadzie "jedno naciśnięcie sw1 rozjaśnia,ponowne ściemnia", natomiast sw2 funkcję on/off.
Udało mi się wywalić 'Waitms" z pętli gł., a wstawiłem tam flagę 100ms i działa wszystko prawidłowo.Pozostaje tylko problrm jak zrobić +moc/-moc na sw1 oraz on/off na sw2
Re: Przyciski
Zauważyłem coś w przyciskach.... nie będzie ci działał poprawnie warunek dla zmniejszania mocy bo zmiennna Moc nie przyjmuje nigdy wartości -1. Przynajmniej nie powinien działać bo jak masz moc = 0 i odejmiesz 1 to wartość Moc = 65535. Dla pewności lepiej daj najpierw sprawdzanie ifa czy moc > 0 a jeśli tak to dopiero zmniejsz wartośc o 1. To samo dla zwiększania
Co do on/off to ja bym to zrobił tak że jeśli moc> 0 to moc = 0 else moc = 99, ewentualnie jak jest poniżej połowy to idzie do max a jak powyżej to do min
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Przyciski
Masz rację odnośnie tego ,że przy moc=0 wskoczy wartość moc=65535 ,ale wywaliłem 0 z tabeli i nie ma problemu, to poprawię.Chodzi mi jednak o to aby obsłużyć +/- moc jednym przyciskiem,tzn.naciskam to rośnie ,puszczm i ponownie naciskam to maleje, pusczam i naciskam-znowu rośnie.
Jeszcze odnośnie on/off czy nie lepiej użyć stop Timer1/start Timer1 (tak sobie myślę),wówczas zadana moc z tabeli pozostanie bez zmian.
Re: Przycisk
Aha nie zrozumiałem na początku..... ja by zrobił zmianną flagę która za każdym puszczeniem przycisku będzie się zmianiac na przeciwną. A raczej chyba trzeba będzie dac dwie flagi bo jedna musi się ustawiać jak przycisk jest niewciśnięty a po kliknięciu przycisku i ewentualnym trzymaniu druga flaga musi się zmienić tylko raz więc będzie:
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re; ściemniacz
Witam ponownie.Możesz mi powiedzieć czy jest możliwe rozwiązanie sterowania kilku kanałów na zasadzie wystawiania przerwań od TIMER1,to znaczy:
ustawiamy TIMER1 aby startował w trakcie przejścia przez "0"i zliczał w/g tablicy1 wartość maksymalną 65535 (zakładając ,że jest to cały okres od "0" do "0")i po zliczeniu się zeruje.
zadajemy dla TIMERA1 np.kilka wartości(dla kanału 1,2,3..) aby wystawił dla nich przerwania (flaga1,flaga2,flaga3...)
w momencie przejścia przez "0"startuje TIMER1 oraz załączane są wyjścia out1,out2,out3...i w momencie wystawienia flagi1 wyłączy out1, flagi2 wyłączy out2,flagi3-out3...i tak w kółko, "0" załącza wszystko, flagi wyłączają poszczególne wyjścia.
no i oczywiście jeszcze możliwość zmiany tych wartości z przycisków.
Jak by było to możliwe to do tego tylko LCD i spawa byłaby załatwiona.
Re: Timer
Pomysł wydaje się dobry i według mnie teoretycznie zadziała.... trzeba to sprawdzić w praktyce bo w programie pojawią się opóźnienia, które moga zdyskwalifikować tą ideę
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: Timer
podpowiesz jak ustawić TIMER1 aby zliczał do 65535 i się zerował, a następnie startował od wyzwolenia z INT1 w momencie przejścia przez "0" i tak w koło ?,oraz wystawić flagi. Będę miał teraz trochę wolnego czasu to bym to poćwiczył, jak to ruszy z nastawami na stałę to będzie można pomyśleć co dalej.
I jeszcze ciekawe czy np.przy tych samych wartościach dla kanału1 i kanału2 wystawi się flaga1 i flaga2
Do tego chcę przejść z tym na ATMEGA8,portB jako wyjścia, a na porcie D przyciski
to tak ,żeby od czegoś zacząć
Timery
Timer konfigurujesz jak kazdy inny
jesli chcesz żeby się zatrzymywał po odliczeniu jednego cyklu to trzeba w jego przerwaniu dac stop timer1
jesli ma startowac od w int1 trzeba dac poprostu start timer1.
Jeszcze w przerwaniu dał bym od razu ustawianie wartości początkowej żeby w int zrobić tylko start timer1
Trzeba się tez zastanowić tak jak mówiłem czy w ogóle zatrzymywac timer a nie tylko zapisywac jego wartości licznika od jakiej się startuje w chwili 0 i przy jakiej ma się dany kanał wyłaczyć lub włączyć.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
ściemniacz
Dzięki, możesz napisać jak to ma wyglądać w/g twojej koncepcji
Na portb mam 6 wyjść, natomiast na portd dołożymy przyciski
jak napisać całe przerwanie do timer1 tak aby później była możliwość zmiany wartości dla poszczególnych kanałów za pomocą przycisków
ściemniacz
Nie wiem czy tak można to zrobić -timer1 jest ustawiony na prescale1, przerwanie jest generowane co 100us, w ten sposób mam możliwość ustawienia 100 poziomów, bo pół okresu sinusoidy trwa 10ms, wiec 10ms / 100 = 100us.
Teraz zwiększając i zmniejszając wartości dzielników w teori mogę regulować kiedy mają się wyłączać kanały
Jak to by zadziałało to jak zrobić aby startował za każdym przejściem przez "0"
Co o tym myślisz, kanały załączają się także po przejściu przez "0" a wyłączają od flag out1/2/3...
Mirley jak będziesz miał chwilę możesz na to popatrzeć?
Re: Ściemniacz
Trochę mam za duzo na głowie..... Ustawiłeś prescale = 1 co znaczy że przerwanie występuje bardzo często. W przerwaniu należy zminimalizować ilość instrukcji.....Wywalił bym napewno tutaj te flagi i bezpośrednio resetował piny portów. W timerze daj liczniki liczące w dół albo jeden licznik..... Timer liczy za każdym przerwaniem incr licznik, w obsłudze zera włączasz wszystko, zerujesz licznik i ustawiasz timer1 = 63936.
W obsłudze timera sprawdzasz:
nie ruszasz zmiennej licznik, ważne jest żeby się ona nie przepełniła czyli musisz zmieścić 100 przerwań w jednym cyklu sinusa Spróbuj coś takiego, ale osobiście zrobił bym 10 kroków co 1ms a nie co 100us.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Ściemniacz
Mirley,witam po długiejprzerwie, próbowałem coś wymyślić jednak bez Twojej pomocy to się nie da zrobić.
Możesz mi podpowiedzieć jak ustawić w/g ciebie TIMER1 żeby liczył tak jak to ty założyłeś i jak to dalej pociągnąć?
Jest jeszcze do napisania kawał programu, a ja stoję w miejscu
i dlaczego pokazuje tutaj błędy 242,7,350,123
Re: Ściemniacz
Już Ci mówię gdzie masz błędy:
Nie zadeklarowałeś na początku zmiennej licznik jako word
Różnica między tym:
a docelową etykietą czyli tym:
różnica jest w słowie Prztimer. Przy ustawieniu skoku każesz skakać do Prztimer a etykietę nazywasz Przetimer.
Na końcu tego:
Na końcu brak 2x end if a także brak return.
Jak będziesz miał jeszcze kłopoty to wal śmiało.
Moja strona w powijakach
Ściemniacz
dzięki ,faktycznie popełniłem literówkę ,jednak dalej mam te same komunikaty o błędach. Po dodaniu 2xEnd If i return do przerwania timer0 zszedł błąd 123.
Dodałem zmienną
i jest ok,program się kompiluje, tylko czy idę w dobrym kierunku, w jaki sposób zmieniać moc_out_1,moc_out_2.....
Przyciski ustawiłem PD7-moc(+), PD6-moc(-),PD5-zapis, PD4-ON/OFF, PD2-menu
Re: Ściemniacz
W ogóle zacząć trzeba od tego że masz źle napisaną obsługę regulacji jasności od 0 do 100%.
W myśl Mirkowego programowego PWM'a, czyli:
Powinieneś mieć tak:
Teraz regulując wartości zmiennych Moc_out_1 ... Moc_out_6 w zakresie 0 do 100 będziesz miał a przynajmniej powinieneś mieć regulację jasności jak się patrzy.
A pomijając wszystko to wcale nie musisz deklarować zmiennych licznik i Moc_out_1...6 jako word. Spokojnie powinny działać jako byte, ale wszystkie.
Moja strona w powijakach
Ściemniacz
Masz rację, poprawiłem i nie wykazuje tutaj błędów, jednak czemu wywaliłeś
timer1 ma zliczać do 63396 i się zastopować (zerować) następnie po wyzwoleniu INT 1 ponownie wystartować (tak w koło)
Czy regulację mocy mam zrobić w/g tablicy
czy też masz inny pomysł.
Re: Ściemniacz
Ponieważ pisałem co masz nie tak i co powinieneś poprawić. Nie zwracałem uwagi na timer. Jesli chcesz to możesz go tam wpisać z tym że ja wpisałbym go inaczej, mianowicie tak:
Ogólnie to nie bardzo rozumiem Twój tok myślenia. po co Ci do tego tablica?
Jeśli powiedzmy do zmiennej Moc_out_1 wpiszesz wartość 50 to wyjście out_1 będzie świecić z połową mocy.
Wpisując różne wartości z przedziału 0 do 100 uzyskasz różne jasności świecenia z tym że zdaje się że to działa odwrotnie. Im mniejsza liczba tym jaśniej świeci. Tak mi się coś kojarzy jak to robiłem.
Moja strona w powijakach
Ściemniacz
Dzieki,postaram się dopisać obsługę przycisków i zobaczę co z tego wyjdzie.
Również masz rację ,że działa to odwrotnie ponieważ zamiast załączać wejście ma je wyłączyć po określonym czasie.
Moja logika działania ściemniacza : wejście INT1 wykrywa przejście przez zero,przy przejściu przez "0" w fazie następuje załączenie wszystkich wjść oraz startuje TIMER1, po osiągnięciu casu zadanego dla moc_out_1,moc_out_2....następuje wyłączenie poszczególnych wyjść out_1,out_2....
Tablica1 jest potrzebna do załadowania odpowiednich czasów w 100 krokach do moc_out_1....
Po zliczeniu przez TIMER1 do końca następuje jego zatrzymanie, i po przejściu przez "0" wszystko się powtarza.
Możesz to przeanalizować i napisać czy ta obsługa TIMER1 co podałeś załatwi to tak samo?Mam wrażenie ,że to typowy PWM i tak łatwo nie pójdzie.
Dzięki za pomoc, na pewno to jeszcze nie koniec.
Re: Ściemniacz
Powinieneś obrać jakieś konkretne założenia.
Ale to nie będzie pracować jak trzeba, albo ja nie rozumiem koncepcji. Rozumiem że chcesz by załączanie triaków następowało z zerze sieci?
Wykrywanie przejścia przez zero możesz zrobić na zasadzie programowo-software'owej.
Na dole -> tej strony <- pobierz sobie schemat w eagle w wersji 6 coś tam. Tam jest układ wzmacniacza operacyjnego LM311 w roli "wykrywacza" przejścia przez zero. Info bierze z transformatora zasilającego. Do tego wystarczy odpowiednio i w odpowiednim miejscu użyć polecenia:
bitwait
i będziesz miał wykrywanie przejścia przez 0. Według mnie całość jest prostsza niż kombinujesz.
Możecie przedstawić mi jeszcze raz koncepcję? Mimo że przeczytałem temat od początku to nie bardzo wiem o co w tym wszystkim biega? Czym to ma sterować? Żarówkami czy czym? Jaka jest w ogóle koncepcja? Wyjasnijcie jeszcze raz bo mam pewien pomysł który wykorzysta tylko jeden timer dla dowolnej liczby kanałów.
Jaki jest czas trwania połówki sinusoidy od 0 do następnego 0?
Jeśli dobrze zrozumiałem to moja koncepcja jest taka:
Na osi widać zmienną która zwiększana jest przez timer od chwili wykrycia zera fazy. Wyglądało by to tak:
Rysunek powinien pomóc w zrozumieniu programu.
Trzeba by to przetestować, bo to czysta teoria.
Moja strona w powijakach
Ściemniacz
to nie zupełnie tak jak myślisz , później wrzucę schematy i opiszę j zasadę działania całości.To co wstawiłeś odnosi się do sterowania triakiem, sterowanie tranzystorami mosfet odbywa się trochę inaczej. Czemu mosfet a nie triaki- za pomocą tranzystorów mosfet można śmiało regulować transformatory elektroniczne.
Cieszy mnie Twoje zainteresowanie tym tematem.
Ściemniacz
Regulację z opóźnionym odcięciem fazy opisałem w miarę przystępnie w poście 15.
Przy częstotliwości sieci 50Hz (taką mamy w Polsce) następuje 100 przejść przez '0' w ciągu 1sek. ,a co za tym idzie mamy także 100 połówek sinusoidy i właśnie te połówki tniemy.
Przypominam ,że sterowanie fazowe triakiem polega na włączeniu triaka po czsie X od przejścia przez "0" i samoczynnie się on wyłączy przy następnym przejściu.Im krótszy będzie czas załączenia triaka tym moc będzie mniejsza.
sterowanie z opóźnionym odcięciem fazy (to właśnie staramy się zrobić)polega na załączeniu tranzystorów w momencie przejścia przez "0" i wyłączenie ich po czsie X.działa to odwrotnie jak przy sterowaniu fazowym.
Detekcję przejścia przez "0" mam zrobioną na PC814 i podaję na INT1, działa bez problemu.
Schemat sterownika:
Schemat jednego modułu wykonawczego:
Jak będziesz potrzebował coś wyjaśnić to nie ma problemu.
Na wszystkich wyjściach OUT atmegi w momencie przejścia przez "0" ma się pojawić 1 ,a po czasie X wyznaczonym dla każdego z wyjść mają się wyłączać (i tak za każdym przejściem przez "0")
W poście 22 jest działający program dla jednego kanału, z tym ,że tam TIMER1 ma za każdym razem ładowaną odpowiednią wartość którą odlicza (przy takiej zasadzie może sterować tylko 1 kanałem).
Pozdrawiam
Re: Ściemniacz
No tak tylko że ja w dalszym ciągu nie widzę kłopotu i to nawet lepiej pasuje do tego co napisałem.
Poniżej przystosowane do Twoich założeń.
Dzięki temu co napisałem wyżej wyjście (wyjścia) będzie włączone tylko przez czas kiedy zliczana zmienna jest mniejsza niż ustawiona moc. Gdy timer zliczy do 100 powinna akurat skończyć się połówka sinusoidy. Problemem może być tylko rozbieżność czasu trwania połówki sinusoidy i tego że przyjąłem że uda się zliczyć dokładnie do 100 w trakcie jej trwania. Jeśli nie będzie to 50Hz a trochę mniej lub trochę więcej to będzie mały kłopot. Ale to zapewne też da się obliczyć.
Moja strona w powijakach
Ściemniacz
Odnośnie tego czy TIMER zdąży zliczyć czy też nie, to jak będzie za mało przy ustawieniu 100% wyłączy wyjście przed końcem połówki sinusoidy (nie osiągnie max.mocy świecenia, ale pewnie będzie niezauważalne), natomiast jak za dużo to i tak wyjście będzie załączone do czasu następnego "0", a TIMER się wyzeruje przy przejściu i załaduje od nowa.
Timer0 mam pozostawiony do obsługi wyświetlacza i przycisków więc wszystkie Twoje operacje powinniśmy wykonać dla TIMER1
Re: Ściemniacz
W takim razie nawet lepiej. Przerwania liczę dla kwarcu 8MHz.
Co do obsługi wyświetlacza to po co Ci timer jak to jest lcd?
Może tak:?
Moja strona w powijakach
Ściemniacz
Nie wiem skąd wziąłeś wartość do TIMER1 przy kwarcu 16MHz,ale mi wychodzi 63936, prescaler 1,wtedy przerwanie mamy wywoływane co 0,00001s x 100 kroków = 0,01s i to x 100 połówek sinusoidy wynosi 1s tzn. mamy 50Hz/1s
Re: Ściemniacz
Do tej pory liczyłem przerwanie dla częstotliwości 8MHz co napisałem wyżej na początku. Ale skoro mówisz że jest to 16MHz to w takim razie musi to wyglądać tak:
Przepraszam za te błędy, ale w pracy jestem i trochę tak ukradkiem piszę. Powyższy kod powinien być już prawidłowy.
Timer1, kwarc 16MHz, prescaler = 8 i wartość jaką wpisujemy to 65516. Mamy wtedy dokładnie tak jak opisujesz czyli przerwanie co 0,00001s
Moja strona w powijakach
Ściemniacz
Teraz się zgadza, później to wszystko wrzucę do Bascoma dla 6 kanałów i zobaczę co pokaże. Jak będzie ok to czas na testy praktyczne i dopiero wtedy dalej.
Dzięki
Ciekawe co na to Mirley.
Ściemniacz
Po wrzuceniu do Bascoma nie pokazuje błędów, więc w teori jest ok
w warunkach początkowych zadałem wstępnie ustawienia mocy dla poszczególnych kanałów ,czas na testy praktyczne,dam znać jak poszło.
Re: Ściemniacz
Na początku jak deklarujesz timer1 to masz błąd, a raczej brak deklaracji podprogramu skoku
I tutaj:
Na razie tyle zauważyłem.
Tą część:
zapisz tak:
Jak zadeklarowałeś i ustawiłeś PORTB tak:
To ten kawałek już nie jest potrzebny:
Moja strona w powijakach