Witam, chciałbym wykonać czasowy wyłącznik cykliczny załączający przekaźnik tzn.załączony (mm.ss), pauza-wył. (mm.ss)i tak w kółko.Zanim narysuję schemat proszę o radę czy użyć Atmegi8 czy też starczy ATTINY2313, czasy mają być ustawiane niezależnie za pomocą przycisków z zapisem oraz wszystko wyświetlone na LCD2x16.
|
|||
Re: timer
Na tiny powinno starczyć miejsca ale skoro będziesz robił od razu płytkę to lepiej daj M8. Koszt niewiele większy a wtedy na 100% się zmieści program i jeszcze inne rzeczy ewentualnie będzie można dorzucić
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.
czasowy wył.cykliczny
Ok,zrobię to na M8,różnica w kosztach nieznaczna,do poniedziałku postaram się wrzucić schemat i jakiś początek programu.Na razie dzięki.
czasowy wył.cykliczny
Mam jeszcze jedno pytanie, ile najlepiej użyć przycisków do nawigacji,3 czy też lepiej 5 (na M8 jest dosyć wyjść).
Re: Przyciski
jak masz 3 przyciski to będzie SET, + i -... normalnie np + będzie robił jako start czy cos tam a po kliknięciu SET powoduje ustawianie wartości. Kolejne SET przechodzą do kolejnych pozycji i jak dochodzisz do końca to będzie zapis i wyjście z menu. Dodatkowe dwa przyciski mogą być jak chcesz osobno np zrobić start, stop czy tez pauzę
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.
czasowy wył.cykliczny
Witam ponownie.Nie rysowałem nowego schematu poniewarz Twój od timera fotograficznego z małymi poprawkami idealnie się nadaje do tego celu oraz początek programu także.
S1,2,3 to tak jak pisałeś SET,+/-, S4,5 załącz/wyłącz odliczanie,na PD0 i PD1 dałbym LED-y do sygnalizacji zał/wyłącz, a na PB0 zał.podświetlenia LCD np.na 30sek. po naciśnięciu jakiegokolwiek przycisku.
Niestety nie wiem jak dalej ruszyć
Co Ty na to?
Re: Timer
Popatrz do programów z timerami na mojej stronie. Przeanalizuj coś żebyś wiedział co piszesz.
W timerze brakuje return na końcu obsługi przerwania oraz end ifów. Nie masz też w ogóle pętli głównej, powinna być zaraz po Set Buzzer. W pęli głownej daj sprawdzanie warunku czy flagi zostały ustawione. Osobiście zrobił bym drugą flagę co 1s i tam odliczał czas.
Na początku zajmij się tym żeby zrobić wszystkie potrzebne zmienne i napisać obsługę LCD żeby poprawnie wyświetlał czas z tych zmiennych
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.
czasowy wył.cykliczny
witam ponownie.Przeanalizowałem listingi wszystkich Twoich timerów ,jednak jeszcze o wiele za mało z tego rozumiem.Każdy ma w sobie całkowicie coś innego i niestety strasznie się motam.Na początek mam coś takiego
Napisz co z tego poprawić, a co wywalić i jak dalej.
Dopisane diody LED będą miały za zadanie sygnalizację pracy timera.
Wyświetlacz LCD PRACA PAUZA
mm:ss mm:ss
natomiast podczs działania odliczają się mm:ss pracy,a następnie mm:ss pauzy.
Przeszukałem internet i niestety nic podobnego nie znalazłem,jedynie jeden układ ,ale to na pic16F628A http://www.elektroda.pl/rtvforum/topic2004873.html
Pozdrawiam.
RE: timer
Kompilowałeś w ogóle ten program? jakie masz mieć zakresy odmierzanych czasów i przerw?
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
Nie ,jeszcze nie kompilowałem, a czsy to mm:ss dla pracy i dla przerwy ,w zależności jak pasuje, może być nawet 99min:59sec.
czasowy wył.cykliczny
po kompilacji wyskakują błędy do lini 126:" '*************************przerwanie timer 0 koniec**************"
ERROR:61 LINE:126 Label not found [=WYSWIETLANIE ]
ERROR:61 LINE:126 Label not found [PRZYCISKI]
ERROR:61 LINE:126 Label not found [PRZYCISKI]
ERROR:61 LINE:126 Label not found [ZATRZYMAJ_LICZENIE]
ERROR:61 LINE:126 Label not found [ZATRZYMAJ_LICZENIE]
Re: Timer
No włąśnie do tego zmierzam.... masz jakieś fragmenty i zrobiłą ci się strona kodu a nic z niczym nie pasuje.... zacznij od początku, zrób tak aby się kompilowało i narazie liczyło sobie czas do przodu..np:
Najpierw próbuj to uruchomić, potem musisz dołożyć obsługę klawiatury z mozliwością ustawiania dwóch czasów ale nie wszystko na raz
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.
czasowy wył.cykliczny
wyświetlacz faktycznie zlicza sekundy, jednnak są one ledwie widoczne i pulsują, nawet na max kontrast.Ustawiłem fusebit A987 na zewn.16MHz . 1111:1111 external XTAL, fusebit H na 0:CKOPT0.Jak dopiszę wyświetlanie napisu na początku to jest widoczny normalnie.
Co może być przyczyną?
Re: LCD
Za szybko jest zrobione wyświetlanie.... sprawdź teraz:
Do zmiennych trzeba będzie dorzucic jeszcze flagę 100ms i dzielnik2
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.
czasowy wył.cykliczny
Dopisałem tak jak radziłeś, niestety teraz nic nie wyświetla,program kompiluje się bez problemu.
jeszcze jedno pytanie,jak tobie wyszło w tej poprawce 100ms
skoro przedtem było
Re; Wyłącznik
Nie wyszło mi bo się pomyliłem i zapomniałem zmienić... ma być tam 25
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.
czasowy wył.cykliczny
po zmianie na 25 też nie ruszył,dopiero po zmianach w "przerwanie timer 0" wystartowało,wyświetla i liczy dobrze
co zrobić dalej,jak ustawić na wyświetlaczu czasy mm:ss aby odliczać
Re: Licznik
Sprawdź coś takiego powinno liczyć włacz wyłacz cyklicznie z ustawionymi czasami off_licz i on_licz w sekundach. Potem zrobi się wyświetlanie żeby pokazywało mm:ss
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.
czasowy wył.cykliczny
niestety nie mogę skompilować jest error do
Error:46 Assignment error [UT_STATE:0 0:112]
i jeden End If na końcu za dużo.
Re: wyłącznik
...nie widzisz że brakuje "Then". Ma być:
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.
czasowy wył.cykliczny
Fakt,przegabiłem, twraz odlicza cyklicznie 6s/3s załączając i wyłączając portb.2 .a jak dalej z wyświetlaniem mm:ss, oraz przyciskami.
Re: Lcd
Z wyświetlaczem trzeba powalczyć w pierwszej kolejności i zamienić sekundy na minuty: sekundy.... nie powinno to być problemem. Zadeklaruj jakaś zmienną typu Word pomocniczą i do niej najpierw wpisz licznik /60 i wyświetl na LCD, potem dopis : a na końcu do zmiennej pomocniczej wpisz licznik Mod 60 co da wartość reszty z dzielenia przez 60 czyli sekundy... na końcu wtpisz to na LCD. Jeszcze można zrobić 0 wiodące za pomocą jednego if'a jak wartość sekund lub minut jest mniejsza do 10 to dopisujesz 0 przed wyświetleniem wartości.
W praktyce jak dojdą przyciski będzie to bardziej skomplikowane ale narazie pobaw się z LCD. Może wieczorem znajdę czas aby zobaczyć co napisał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.
przktycznie to działa tak jak
przktycznie to działa tak jak powinno, zadane czasy wyświetla mm:ss,liczy prawidłowo, zmieniłem jeszcze config PORTB bo był ustawiony stan wysoki na pin1,ustawiłem na pin2 ,teraz jest już tak jak powinno.
i co dalej?
Re: Wyłącznik
Zaraz pod gosub wyswietlanie trzeba dać: gosub przyciski a na końcu:
Na porcie Pd jest teraz 5 przycisków. Do lcd dopisz w drugiej linii aby pojawiły sie czasu on_licz i off_licz żebys je widział. Klikasz przycisk menu pd7 i następnie czterema pozostałymi ustawiasz + i - minuty i sekundy, klikasz drugi raz menu i ustawisz drugi czas
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.
czasowy wył.cykliczny
dopisałem obsługę przycisków,tylko wywaliło pełno błędów,po dopisaniu
Re: LCD
Jak to nie wiesz jak dopisać..... tak samo jak zwykły czas napisałeś. Dopisz na razie tylko do wyświetlania na końcu:
i sprawdź czy klawiatura działa i da się przestawić wartości tych czasów. Przyciskiem menu Pd7 zmieniasz czas, który ustawiasz a pozostałymi modyfikujesz wartość.
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.
czasowy wył.cykliczny
Teraz w drugiej lini wyświetla mi czs zadany ale tylko w sekundach np.85/45 a nie mm:ss, klawiatura działa na zasadzie,że sek.+/- przestawia prawidłowo po sekundzie natomiast min.+/- zmienia po 60sek. na przykład maksymalny czas jest wyświetlany w postaci 65535 sek. Pd7 działa prawidłowo.
Wykombinowałem coś takiego i teraz w drugiej lini z lewej strony mam mm:ss ON, a z prawej mm:ss OFF,wszystko pracuje prawidłowo
Jest tylko problem ,jak zrobić aby maksymalny czas ustawiany był np.99min59s lub 59min59sek,ponieważ jak zjadę poniżej 00min00ss to wyświetla misię 10925.
I jeszcze w którym miejscu to zapisać do eeprom.
Równierz przydaby się jakaś strzałka po naciśnięciu menu który ustawiam czas,np w drugiej lini na środku lewo/prawo
Re: Czasy
Jasne że to napisałem wyżej będzie wyświetlało tylko sekundy.... miałeś sam sobie dopisać podział na minuty i jak widzę zrobiłęś to.... co do ograniczenia ustawień to trzeba to zrobić przy przyciskach np tak:
no i podobnie dla ustawień sekund tylko będzie:
....
oraz
if On_licz < 3600 then incr On_licz
Co do wskazań co ustawisz to już myślałem o tym wcześniej... wygodnie jest dodac miganie. W przerwaniu dodaj linijkę od migania:
zmienna mig jest typu bit
No i teraz przy wyświetlaniu:
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.
czasowy wył.cykliczny
Mam zrobione to co kazałeś, trochę pozmieniałem i pracuje dobrze,
zmieniłem tutaj
na 59
ponieważ jak zostało 01:00 to - min nie można było zejść do 0 ,jedynie wtedy -s
,a teraz jest ok.
wyświetlanie co ustawiamy mam mm:ss < ,oraz > mm:ss
Zostało teraz tylko dodać zapis do eeprom po wyjściu z ustawień i oczywiście odczyt.
Jest jeszcze trochę problem ,bo wyświetlacz częściowo jeszcze pulsuje (nie na całości)i nie wiem co jest przyczyną,a przy 4 ms wogle część jest niewidoczna (ta co pulsuje przy 100ms).
Całość teraz wygląda tak:
I nie wiem czy ma sens przycisk start/stop ,ale jakby był to dobrze.
Re: Timer
LCd miga bo zbyt dużo informacji próbujesz na nim wyświetlić. Lcd obsługuje się tylko wtedy gdy jest potrzeba. napewno nie można go zapisywać co 4ms bo to nie zadziała. Przede wszystkim wywal polecenie Cls bo ono najwięcej przeszkadza. I tak używasz Locate więc tak musisz wypisywać dane aby stare zawsze były zapisane przez nowe i nie było widać pozostałych znaków. Jak wywalisz Cls to napewno się poprawi. Po drugie możesz zrobić Lcd wywoływane np co 4ms ale z dodatkową zmienną flagą która ustawi się tylko wtedy gdy potrzeba np co sekundę jak się licznik zmieni lub jak klikniesz przycisk. Wtedy np jak licznik jest stop to lcd wogóle nie będzie zapisywane bo i po co.....
Przycisk stop można łatwo dorobić wystarczy zrobić zmienną flagę np Licz_ena as bit i zmieniac jej wartość na przeciwną po kliknięciu przycisku. Przy obsłudze klawiatury musisz odmaskować kolejny bit na przycisk i będzie to wyglądało teraz tak:
W każdej wartości Case musisz dodać teraz jedynkę na 3 bicie bo inaczej żaden z przycisków nie pójdzie i na końcu dodać kolejny case
W przerwaniu musisz zablokować liczniki wpisując:
If licz_ena = 1 then
Zapis do eeprom robi się:
tylko trzeba pamiętać aby nie robić tego za często bo się zepsuje pamięć po jakimś czasie. Można zapisywać np jak zmienia się poz_menu z powrotem na zero
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.
czasowy wył.cykliczny
Ćwiczyłem to przez całe popołudnie i niestety nie wiem gdzie i jak umieścić zapis, Cls usunąłem z wyświetlania i umieściłem tutaj ponieważ to zostawało ,a teraz jest super.
Co prawda kursor <,> przestał mrugać ale to nie przeszkadza.
Z przyciskiem STOP też na razie problem ale jeszcze powalczę, zaczynam coś tam jarzyć,na razie blokuje mi cały timer (nie liczy).
Mirley,sory,że zawracam głowę ale mam prośbę czy mógłbyś zerknąć do 3*timer,potrzebuję go na SOS przerobić, a niestety na chwilę obecną nie wiem jak to zrobić.
Re: Zapis
Zapis robisz tutaj:
i na początku programu
itd
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.
czasowy wył.cykliczny
zapis działa tak jak powinien, tylko w warunakch początkowych dodałem ogrniczenie do 59min i 59sek aby przy pierwszym uruchomieniu nie wyświetlało kosmicznych wartości
Dzięki za pomoc,jeszcze to później dokończymy, na razie muszę powalczyć z 3*timer
czasowy wył.cykliczny
wstawiam prawie komletny kod (brak jest tylko obsługi start/stop) czasowego wyłącznika cyklicznego.Ustawiamy czasy min:sec dla czasu załączenia PK i mim:sek dla czasu wyłączenia PK,następnie czasówka pracuje na zasadzie czas OFF PK_0 wyłączony,następnie czas ON PK_0 włączony,i tak cały czas na okrągło.
Przycisk MENU:
1-ustawianie sek dla czasu OFF
2-ustawianie min dla czasu OFF
3-ustawianie sek dla czasu ON
4-ustawianie min dla czasu ON
5-wyjście i zapis ustawionych czasów.
Napisy można modyfikować wg własnych upodobań.
Kod zajmuje około 40% pamięci procesora także można jeszcze dużo dopisać.
MENU-0,przekaźnik OFF
przeekaźnik ON
MENU-1,ustawianie sec. dla OFF
MENU-2,ustawianie min. dla OFF
MENU-3,ustawianie sec. dla ON
MENU-4,ustawianie min. dla ON
Czasowy wył
Witam
Kolego Marekszy czy zrobiłeś ten układ i chodzi?czy wsad jest już kompletny,potrzebuję informacji chcialbym wykonać ten układ
Może rysunek płytki jest dostępny
pozdrawiam
Czasowy wył
Tak, działa. Schemat i kod jest sprawdzony, jednak w końcu nie dopisałem przycisku on/off (nie było takiej potrzeby).Startuje po podaniu napięcia.
Czasowy wył
Dzięki za info
Masz może rysunek płytki PCB?
Czasowy wył
niestety nie, miałem płytki do obudowy montowanej na szynę w rozdzielni,ale schemacik jest wyjątkowo prosty.Atmegę możesz zastosować PDIP28,ułatwi to tobie montaż.
Czasowy wył
Witaj
Poskładałem układ na atmedze w podstawce i mam problem z przyciskami
działa tylko S1 i po nacisnięciu jest po kolei SEC ON , MIN ON, SEC OFF, SEC ON pozostałe przyciski nie działają
układ dziala jako cykliczny z czasem 20 sekund
Czasowy wył
Czekaj chwilę ,zaraz zerknę.
OK,masz rację ,poprawiłem w kodzie przyciski, teraz po kompilacji powinien działać jak należy.
Te 20s to tak na starcie, jak zmienisz to będzie pamiętał te co wpisałeś.
Daj znać czy wszystko jest ok.
Czasowy wył
Witam
poprawiłeś w tym kodzie co jest powyżej?
Czasowy wył
Tak,w tym co wyżej.
Czasowy wył
Testuję wsad po zmianach i myślę że jest wszystko ok.
jest możliwy jakiś kontakt PW w razie pytań?
pozdrawiam
Czasowy wył
Niestety nie ma tu PW i nie używam portali społecznościowych, pisz na lub na tej stronie.
Czasowy wył
Dziękuję za porady w razie pytan będę pisał na maila
ja też nie używam portali społecznościowych
pozdrowienia