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?
|
|||
Ściemniacz
jestem po pierwszych testach praktycznych, niestety coś jest źle, wszystko działa za wolno.
przy mocy 100 żarówka świeci 100%, przy mocy 80 żarówka świeci około 2s i 1s zgaszona,przy 20 świeci ok.1s a 2s jest wygaszona.Po prostu pulsuje z różnymi czasami.
Procesor ustawiłem na kwarc zewnętrzny external XTAL 1111:1111,także prawidłowo.
Na dzisiaj zakończę testy, muszę powoli zbierać się do pracy.
Re: Ściemniacz
Zarzucę sobie tą procedurę na płytkę testową i zobaczę co jest nie teges. Niestety ja będę mógł taktować z częstotliwością 8MHz i zamienić set out_1 na reset out_1. Do tego nie wiem jak podpiąć przebieg 50Hz bo nie bardzo mam skąd.
Moja strona w powijakach
Ściemniacz
Po małych zmianach wreszcie działa
Zmieniłem wartość ładowaną do TIMER1 na 65342, 97 us (dałem 3 us.opóźnienia wynikające z opóźnienia od detektora '0') oraz przeniosłem z
Teraz na spokojnie trzeba zrobić przyciski i wyświetlanie.
Matrix -tok twojego rozumowania zadziałał doskonale, dzięki, na pewno jeszcze z tym powalczymy.
pozdr.
Timer1 = 65516 wywoływał przerwania co 10 us
Re: Ściemniacz
Cieszę się niezmiernie, tymbardziej że było to czysto teoretyczne wywody wymyślane na szbko. Bez przemysleń głębszych i bez kombinacji.
Teraz to ja czekam na jakieś wideo i pełny kod. Jeśli nie chcesz udostępnić całego tutaj to możesz posłać na
Moja strona w powijakach
Ściemniacz
Do całego kodu to jeszcze daleka droga, ale spoko, będzie wszystko.
Na pewno jeszcze nie raz będziesz skazany aby mi pomóc.
Ściemniacz
dopisałem częściową obsługę przycisków i wyświetlanie, jednak program jest niestabilny, potrafi się zwiesić lub resetować ,może ktoś na to zerknąć co jest nie tak, parokrotne wpięcie innego urządzenia do sieci natychmiast kończy się resetem i nie jest to chyba kwestia zasilania.
testowałem także na płytce testowej sam program bez podłączonych wyjść z procesora i bez detekcji "0" i robi to samo.
Jeszcze powalczę z zasilaniem,ale i tak poproszę o sprawdzenie poprawności kodu.
Re: Ściemniacz
Możesz mi wyjaśnić jak działa sekcja przycisków? Nie kminię jej ni w ząb. Po co używasz liczb binarnych?
Rozumiem że wykrywasz naciśnięcie któregokolwiek przycisku?
Czy jak usuniesz sekcję obsługi przycisków to wszystko jest git?
Wytłumacz mi początek czyli to:
Nie bardzo wiem czemu to ma służyć?
Jakoś to wszystko strasznie zagmatwałeś.
Moja strona w powijakach
http://mirley.firlej.org/obsl
http://mirley.firlej.org/obsluga_klawiatury_wieloprzyciskowej
Tutaj masz wszystko opisane, stosowałem takie rozwiązanie i muszę przyznać ,że jest proste i niezawodne.
Nie pisałem ,że po dodaniu obsługi przycisków zaczęło wariować ,tylko przy ustawieniach mocy na "sztywno" i bez wyświetlania nie było widoczne.
Obstawiam jednak "szpilki" od zasilania, tym bardziej ,że właśnie uwaliłem 1 ATMEGĘ TQFP32 przy programowaniu, pokombinuję i dam znać.
Re: Ściemniacz
No właśnie nie za bardzio kminię ten kawałek:
Po co zliczanie zmiennej Licznik_sw do 100 ?
Moja strona w powijakach
Ściemniacz
przecież Mirley dosyć dokładnie to opiał, czas reakcji na zadiałanie przycisków i jego trzymanie.pierwsze naciśnięcie czas reakcji 80ms a gdy będziemy trzymać dalej będzie wywoływany co 400ms.Na prawdę fajnie to działa i daje dużo możliwości.
Ściemniacz
Pierwsze testy na płycie testowej są w miarę zadowalające.Resety i zwieszanie się programu wynikały z braku odpowiedniej ilości kondensatorów 100nF na każdym VCC procesora.
Sprawdziłem ,mam brak regulacji między 80-99%, tzn.od 80% nic się nie dzieje do 99% (cały czas świeci na 80%) dopiero 100% daje pełną moc światła.?
No i działa tak jak należy, zmieniłem wartość ładowaną do TIMER1 na 62900 (164us) przy PRESCALE 1, nie mam pojęcia czemu tak wyszło,ale jest ok.Jeszcze pobawię się z wyświetlaniem mocy za pomocą lini, ||||||||||||| 50% coś w tym stylu .
Ściemniacz
zapis mam gotowy
odzcyt także
natomiast jak napisać on/off dla jednego przecisku aby zał i wyłączyć out_1 do out_6
Re: jak napisać on/off dla jednego przecisku
A coś dokładniej? Jakieś wytyczne? W którym to ma być miejscu? Coś więcej opisz.
Tak na szybko to napisz sobie procedurę obsługi krótko i długo trzymanego przycisku. Jak długo trzymasz to przechodzisz przez takie mikro menu pomiędzy on/off dla out_1 do out_6 czyli:
Czaisz bazę?
Moja strona w powijakach
Ściemniacz
Na pewno się przyda obsługa długo/krótko,ale nie tutaj,mam na myśli coś innego.
Mam na myśli użycie jednego przycisku on/off, 1 raz nacisnę to gaszę wszystkie wyjścia, ponownie nacisnę wszystkie wyjścia załączone z nastawami jasności jakie były zapisane.
jeszcze dodatkowo zapis do eeprom stanu on/off aby po zaniku zasilania był zapamiętany stan.
zrób dodatkowa flage i przez
zrób dodatkowa flage i przez toggle ja zmieniaj.jak będzie 1 to wyłącz wszystko i zapisz w pamięci jak 0 to odwrotnie.
Ściemniacz
nie bardzo wiem jak to napisać?
tam gdzie masz ''tutaj co ma
tam gdzie masz ''tutaj co ma się dziać po naciśnięciu PD4'' zrob
toggle flaga
Ściemniacz
dzięki,jutro pokombinuję i zobaczymy co z tego wyjdzie, dam znać.
Ściemniacz
niby proste on/off ,ale mam problem.To co dopisałem
A teraz co jest nie tak
przycisk powinien wyłączać/wyłączać wszystkie wyjścia ,jednak działa dopiero jak zmienię na chwilę moc na każdym wyjściu.
Po załadowaniu programu nie działa ,jak zmienię moc_out_1 działa tylko wł. i wył. out_1, zmienię dodatkowo moc_out_2 działa wł. i wył.out_1 i out_2,
jeżeli ruszę każdy z kanałów to działa wł. i wył. wszystkich wyjść, tak jak w teori ma robić.
Dodatkowo jeszcze dochodzi zapis z automatu po zał. i po wył. aby po zaniku napięcia wiedział czy był wył. czy też zał.Jak zapisać wartość Bit,
a jeżeli weźmiesz
a jeżeli weźmiesz tak:
w sumie łatwiejsze to sie wydawało:)Nie mam złożonego tego układu ,a ja nie umiem bez testowania nic napisać :) ale walcz z tym to możne sie kiedyś przyda:)
Ściemniacz
Niestety dzisiaj tego nie sprawdzę(cały dzień jestem w pracy),najwcześniej jutro,dam znać jak to wygląda.
Nie rozumiem czemu dajesz zapis i odczyt mocy w tym miejscu
Zapis mocy poszczególnych kanałów mam zrobiony celowo pod osobnym przyciskiem ,że jak już zdecyduję się na ustawienia to wtedy zapisuję, natomiast on/off ma stan tylko 0/1 i to ma być zapisane z automatu po zmianie.Przycisk on/off ma wyłączać i włączać wszystkie wyjścia jednocześnie.
Przećwiczyłem również wyłączanie INT1
disable INT1
ale też z marnym skutkiem, zatrzymanie Timera1 nie wchodzi w grę ,całaść mruga.
Moze zle Cie zrozumiałem.Ja
Moze zle Cie zrozumiałem.Ja myślałem w ten sposób,ze po wyłączeniu off zapisuje stan wszystkich out,a po włączeniu wczytuje wszystkie poprzednie ustawienia. Tak zrobiłem sobie w stacji lutowniczej wciskam przycisk zapisuje stan i usypia kolbę po następnym wciśnięciu wczytuje poprzednie ustawienia,ale to dla jednego kanału. Myślę ,ze zasada będzie ta sama. Ten sposób musi działać,tylko trzeba pomyśleć jak go zapisać. Moze w pętli głównej, albo obsłudze samego przycisku. Ja czasami jak juz jestem zdesperowany :) kopiuje sobie cały fragment i wklejam go w inne miejsca. Zdarza mi sie ,ze zapisanie go w innym miejscu rozwiązuje problemy. Tak to jest ja człowiek zajmuje sie programowaniem ,tylko dla zabawy:)
Ściemniacz
Niestety nie mam pomysłu (jak na razie),więc postanowiłem rozwiązać on/off trochę inaczej.
Mam wolne piny PD.0 i PD.1, ustawie je jako wyjścia i za pomocą przycisku PD.4 będę załączał przekaźnik który będzie rozłączał zasilanie +5V idące na transoptory modułów wykonawczych.
Jak najprościej to napisać w obsłudze przycisków aby po naciśnięciu PD.4 załączyło przekaźnik na PD.0,a po ponownym naciśnięciu PD.4 wyłączyło go i po każdej zmianie przekaźnika zapisywało jego stan do eeprom.
Ok, mam to już zrobione,może nie najprościej,ale wszystko działa włącznie z zapisem,a to najważniejsze
ustawiłem portd.0 i portd.1 jako wyjścia i przypisałem zera
przypisałem przekaźniki do wyjść
zmienna
w pętli głównej skok do programu od on_off
program obsługi on_off
no i obsługa przycisku z zapisem
oczywiście na początku odzcyt
No to prwie już koniec,jeszcze trochę "wodotrysków" i co najważniejsze:
jeszcze nie wiem jak ale trzeba dopisać coś takiego,że jak zostawię na obojętnie której poz_menu to np.po 2 min. powraca samoczynnie do poz_menu = 0. chodzi mi o ten kawałek
i wtedy następnym etapem (zapewne ostatnim)zapis i odczyt około 3 scen oświetlenia,ale to już na końcu.
Jeżeli macie jakieś sugestie to proszę o pomoc.
przy przejściu do menu musisz
przy przejściu do menu musisz wystartować jakiś licznik ,ktory odliczy te dwie minuty.Tak musi sie dziać przy jakimkolwiek przycisku. Jak nie będziesz nic wciskal to doliczy do zera i ustawi poz_menu=0. W którymś z projektów tu na stronie jest cos takiego.
Ściemniacz
autopowrót do menu gotowy
w pętli głównej
i w obsłudze przycisków po każdym
dałem
jeszcze uwolnię dwa przyciski i dam na nich sceny. Potrzebuję do nich obsługę krótkie/długie przyciśnięcie. Przy długim będzie zapis sceny, a przy krótkim wczytanie.
Właśnie o takim rozwiązaniu
Właśnie o takim rozwiązaniu myślałem.Długie i krótkie trzymanie to chyba bys musiał podobnie rozwiązać.Jak trzymasz przycisk to zwiększa sie jakiś licznik. Jak dojdzie np: do 5 to zrobi to a jak powyżej 5 to coś innego. Takiego czegoś jeszcze nie robiłem.Dobrze gdybyś zrobił jakaś diodę albo znaczek na wyświetlaczu,ze czasu już zapisano.
Ściemniacz
Potrzebuję pomocy przy obsłudze wyświetlacza.Dopisałem 2 przyciski długie/krótkie przytrzymanie.
Przytrzymamy długo następuje zapis ustawień wyjść do SCENA 1,krótko to wczytanie SCENA 1, drugi dla SCENA 2.przy każdym resecie startuje od SCENA 1 i wtedy możemy się przełączać między scenami.
Ale chodzi mi o wyświetlanie ,mam teraz że jak przechodzę przez poz_menu do ustawiania jasności to
na wyświetlaczu mam
zapomniałem chyba return na końcu,ale działa.
po pozostawieniu na obojętnie którym case po kilkunastu sek. powraca automatycznie do
Chciałbym aby w miejsce Case 0: było wyświetlane:
po wciśnięciu krótko 1 przycisku
SCENA 1
ON
po trzymaniu długo 1 przycisku
SCENA 1
ZAPIS
i powróciło do
SCENA 1
ON
i to samo z drugim przyciskiem........
Po naciśnięciu OFF
OFF
po ponownym naciśnięciu czyli ON
SCENA 1 (lub 2, zależy jaka jest ustawiona)
daję jak wykonana obsługa przycisków
niedługo wstawię pełny kod wraz z opisem, ale to dopiero po testach w prakyce, aby być pewnym na 100%.
podaj mi maila swojego to Ci
podaj mi maila swojego to Ci podeśle rozwiązanie z wyświetlaniem w moim programie regulatora.
Ściemniacz
Dzięki-
Witam Również zajmę się tym
Witam
Również zajmę się tym projektem w przeciągu tego miesiąca powinienem zacząć. Assembler Atmega8 kanałów będzie 6 lub standard 8 (nie wiem bo to tylko założenia wstępne) Cieszę się że istnieje ta strona wiele się nauczyłem i nigdy nie kopiowałem - dobra zrobiłem programator tak jak MIRLEY pokazał bo zaczynałem a programował mi kumpel atmega8 :)
Ściemniacz
Ściemniacz ,a raczej sterownik oświetlenia od paru miesięcy działa bezawaryjnie, kod wymaga jeszcze trochę dopracowania ale wszystkie założenia się sprawdziły.Trochę przycina mi wyświetlacz (czasami trochę za długo myśli),ale ogólnie nie jest źle. Mam zapis dla 3 scen w których ustawiam oświetlenie z sześciu kanałów. Zmieniłem tylko zasilanie modułu wykonawczego, bez problemu układ ściemnia transformatory elektroniczne (te które mają taką opcję) i można wpiąć kilka szt. równolegle.