(7 głosujących) Urządzenie to jak sama nazwa wskazuje jest timerem kuchennym. Ma za zadanie odliczać ustalone przedziały czasu podczas przygotowywania różnorodnych potraw. Przyda się każdemu oddanemu nauce studentowi i uchroni jego obiad przed spaleniem lub chociaż kuchnię przed nadmierną ilością dymu. Timer posiada pięcioprzyciskową klawiaturę na której w prosty sposób można ustawić czas od 1 minuty do 99 godzin!. Odliczanie czasu rozpoczyna się automatycznie gdy skończymy ustawiać rządany czas (po 3 sekundach). Urządzenie zbudowane jest w oparciu o mikrokontroler ATMega8. Głośny Buzzer sprawi że użytkownik napewno usłyszy alarm :)
Działanie:Schemat ideowy Timera przedstawiony jest na rysunku poniżej: Sercem urządzenia jest mikrokontroler U1 (ATMega8) wraz z rezonatorem kwarcowym X1 (16MHz) i dwoma kondensatorami C1 (22pF) i C2 (22pF). Stabilizator U2 (7805) oraz kondensatory C3 (100uF) i C4 (47uF) dostarczają napięcia na poziomie 5V wymaganego do poprawnej pracy mikrokontrolera i współpracujących elementów. Do złącza Zas podpinamy napięcie stałe o wartości ok 7-12V. Buzzer B1 oraz anody wyświetlacza W1 sterowane są za pomocą tranzystorów T1 - T5 (BC556) i rezystorów R1 - R8 (3,3k) oraz R17 (3,3k) i R18 (3,3k). Prąd segmentów wyświetlacza ograniczają rezystory R9 - R16 (330R). Złącze Prog (goldpin) i pojedynczy pin R służą do podłączenia programatora (kabla programującego). Klawiaturę timera podłączamy do złącza Sw (Goldpin). Klawiaturę stanowi 5 przycisków chwilowych podłączonych do masy i pinów B.0...B.4, co odpowiada przyciskom w kolejności: 1,5,10,20,CL. Budowa:Timer można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż należy rozpocząć od wlutowania dwóch zworek. Następnie montujemy wszystkie rezystory i pozostałe elementy w kolejności od najmniejszych do największych. Rezonator kwarcowy X1 powinien być w wersji "niskiej" gdyż w przeciwnym wypadku nie zmieści się pod wyświetlaczem. Pod mikrokontroler U1 dobrze jest zastosować podstawkę DIP28 a pod wyświetlacz podstawkę DIP14 przeciętą na dwie części. Buzzer B1 może być wlutowany w płytkę, tak jak to jest przedstawione na zdjęciach, jednak gdyby okazało się później że po zamknięciu w obudowie jest zbyt cichy (nawet pomimo dziury wywierconej nad nim w obudowie), można przykleić go do boku obudowy (tak jak widać na ostatniej fotografii), łącząc przewodami z płytką. Klawiaturę składającą się z 5 przycisków uSwitch 12x12mm przyklejamy bezpośrednio do przodu obudowy, tak aby były równo z jej powierzchnią. Do zasilania urządzenia dobrze jest zastosować ładowarkę mini z telefonu, ze względu na mały ciężar i wymiary. Pomocą przy budowie może okazać się schemat montażowy dostępny tutaj Wykaz Elementów:1x Listwa Goldpin 1x2 (Zas) 1x Listwa Goldpin 1x4 (Goldpin) 1x Listwa Goldpin 1x6 (Goldpin) 5x uSwitch 12x12mm 10x 3,3k 1x 47uF Elektrolit 1x Rezonator Kwarcowy 16MHz Programowanie:Mikrokontroler do sterownika został zaprogramowany w wersji demo programu BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej: '************* Konfiguracja uC ***************** '*********************************************** $regfile = "m8def.dat" $crystal = 16000000 Config Portb = &B00000000 : Portb = &B11111111 Config Portc = &B11111111 : Portc = &B11111111 Config Portd = &B11111111 : Portd = &B11111111 Config Timer0 = Timer , Prescale = 256 Enable Timer0 : On Timer0 Prztimer0 Enable Interrupts Buzzer Alias Portc.0 '********** Konfiguracja uC Koniec ************ '****************** Zmienne ******************* '*********************************************** Dim Flaga_4ms As Bit Dim Mig As Bit Dim Dwukropek As Bit Dim Odliczanie As Bit Dim Wyswietlanie As Bit Dim Alarm As Bit Dim Ktory_w As Byte Dim Wartosc(2) As Byte 'godziny minuty : minuty sekundy Dim W(4) As Byte '4 cyfry wyswietlane po przeliczeniu z powyzszych Dim Co4ms As Byte , Co1s As Byte Dim G As Byte , M As Byte , S As Byte Dim Buz_sygnal As Byte Dim Sw_port As Byte , Stan_portu As Byte , Licznik_sw As Byte Dim Autostart As Word Dim Autooff As Word Dim Licznik_mig As Byte '************* Zmienne Koniec **************** '************** Petla glowna ****************** '*********************************************** Do If Flaga_4ms = 1 Then Flaga_4ms = 0 If Buz_sygnal > 0 Then Buzzer = 0 Decr Buz_sygnal Else Buzzer = 1 End If If Odliczanie = 0 Then If Autostart > 0 Then 'uruchomienie autostart=750 Decr Autostart If Autostart = 1 Then Buz_sygnal = 40 Odliczanie = 1 Timer0 = 6 Co4ms = 0 S = 0 End If End If Else Autostart = 0 End If If Wyswietlanie = 1 Then Gosub Wyswietl If Odliczanie = 0 And Alarm = 0 Then Incr Autooff If Autooff = 2500 Then Wyswietlanie = 0 End If Else Autooff = 0 End If Else Portd = 255 Portc = 255 End If Gosub Przyciski End If Loop End '************ Petla glowna Koniec ************** '************ Przerwanie timer 0 *************** '*********************************************** Prztimer0: 'co 4ms Timer0 = 6 Set Flaga_4ms Incr Co4ms If Co4ms = 250 Then Co4ms = 0 If Odliczanie = 1 Then Dwukropek = Not Dwukropek Decr S If S = 255 Then S = 59 Decr M If M = 255 Then M = 59 Decr G End If End If If G = 0 And M = 0 And S = 0 Then Odliczanie = 0 Alarm = 1 End If Else Dwukropek = 0 End If End If Return '******** Przerwanie timer 0 Koniec ************ Przyciski: Sw_port = Pinb And &B00011111 If Sw_port <> 31 And Stan_portu = Sw_port Then Incr Licznik_sw If Licznik_sw = 120 Then Licznik_sw = 0 Buz_sygnal = 10 Autooff = 0 Wyswietlanie = 1 Select Case Stan_portu Case 30: If Alarm = 0 Then Incr M Autostart = 750 End If Case 29: If Alarm = 0 Then M = M + 5 Autostart = 750 End If Case 27: If Alarm = 0 Then M = M + 10 Autostart = 750 End If Case 23: If Alarm = 0 Then M = M + 20 Autostart = 750 End If Case 15: Odliczanie = 0 Autostart = 0 S = 0 M = 0 G = 0 Alarm = 0 End Select If M > 59 Then Incr G M = M Mod 60 End If End If Else Stan_portu = Sw_port Licznik_sw = 70 End If Return '************************************************* Wyswietl: Incr Ktory_w If Ktory_w = 4 Then Ktory_w = 0 If G > 0 Then Wartosc(1) = G Wartosc(2) = M Else Wartosc(1) = M Wartosc(2) = S End If W(1) = Wartosc(1) / 10 W(2) = Wartosc(1) Mod 10 W(3) = Wartosc(2) / 10 W(4) = Wartosc(2) Mod 10 If W(1) = 0 Then W(1) = 10 If Alarm = 1 Then Incr Licznik_mig If Licznik_mig = 50 Then Licznik_mig = 0 Mig = Not Mig End If If Mig = 0 Then W(1) = 11 W(2) = 11 W(3) = 11 W(4) = 11 Dwukropek = 0 Buzzer = 0 Else W(1) = 10 W(2) = 10 W(3) = 10 W(4) = 10 Dwukropek = 1 Buzzer = 1 End If End If Select Case Ktory_w Case 0: Set Portc.2 W(4) = Lookup(w(4) , Tabela) Portd = W(4) Portd.7 = Dwukropek Reset Portc.5 Case 1: Set Portc.5 W(3) = Lookup(w(3) , Tabela) Portd = W(3) Portd.7 = Dwukropek Reset Portc.4 Case 2: Set Portc.4 W(2) = Lookup(w(2) , Tabela) Portd = W(2) Portd.7 = Dwukropek Reset Portc.3 Case 3: Set Portc.3 W(1) = Lookup(w(1) , Tabela) Portd = W(1) Portd.7 = Dwukropek Reset Portc.2 End Select Return ************************************************* Tabela: Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144 , 255 , 191 'znak: 0 1 2 3 4 5 6 7 8 9 pusty - Zdjęcia Projektu:
|
|||||||||||||||||||||||
to o co chodzi z tym że można
to o co chodzi z tym że można ustawić np. kwarc zewnętrzny a potem już się nie skomunikować z procesorem?
Zależy od programatora? Jeśli bym np. ustawił zewnętrzny kwarc 16MHz, to przy kolejnym wpięciu procesora w podstawkę gdzie nie będzie kwarcu, możemy się nie dogadać z procesorem? to o to chodzi??
Fusebity można kilkakrotnie zmieniać? Bo słyszałem że jak coś źle ustawimy to potem procek tylko w kosz.
Re: Timer kuchenny
Zmień crystal na 8000000, w procedurze obsługi timera tam gdzie masz timer0= 6 napisz timer0 = 131 i powinno działać na wewnętrznym 8MHz
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.
timer
witam czy da sie do tego podłączyć przekaźnik, który podczas odliczania czasu będzie sie zwierał a gdy czas dobiegnie końca wyłączy przekaźnik??
Re: przekaźnik
wykorzystaj wolny np portc.1 i przypisz do niego wartośc zmiennej odliczanie. W pętli glównej dopisz w miejscu:
portc.1 będzie 0 w momencie odliczania a 1 jak odliczanie będzie zatrzymane
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.
Kwarc
Powracam do problemów z kwarce. Mianowicie czy ma jakies znaczenie jak zamontuje kwarc 8 Mhz zewneczny a 4 Mhz wewnetrzny. Wiem ze trzeba pozmieniac w programie. jaki jest błąd dokładności i jak najlepiej zrobic (zwenetrzy czy wewnetrzny) ??
Re: Kwarc
Zewnętrzny kwarc jest dość dokładny.... wewnątrz nie ma kwarca a rezonator RC więc jego dokładność pozostawia wiele do życzenia. Osobiście timera bym nie robił. Jak daz kwarc zewnętrzny 8MHz to trzeba zmienić linijkę Timer0 = 6 na Timer0 = 131 żeby była ta sama częstotliwość przerwań. Dla 4 MHz powinno teoretycznie działać jak tylko zmienisz preskaler w konfiguracji timera z 256 na 64
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.
Ten wyświetlacz będzie do
Ten wyświetlacz będzie do tego dobry ?
http://allegro.pl/art-nowe-led-4-cyfry-0-56-14mm-yellow-w-a-i1719859986.html
http://allegro.pl/art-nowe-led-4-cyfry-0-56-14mm-yellow-w-a-i1719859986.html
http://www.artronic.pl/o_produkcie.php?id=657
Re: wyswietlacz
Tak mam dokładnie ten od tego samego sprzedawcy
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.
obojętnie jak przylutuje
obojętnie jak przylutuje rezonator czy trzeba go jakoś dobrze włożyć ?
Re: Timer
Rezonator kwarcowy może być wlutowany dowolnie, nie ma polaryzacji (+ i -)tak jak np. dioda
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.
mirley zrobiłem wszystko tak
mirley zrobiłem wszystko tak jak Ty i jak podłącze zasilanie (12V) to nie działa a jak sprawdze miernikiem to na procesorze jest +5V o co w tym chodzi ?
Re: Timer
A zaprogramowałes procesor? ustawiłeś fusebity? czy sam wyświetlacz działa jak wyjmiesz procesor z podstawki i przytkniesz odpowiednie piny do masy?
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.
procek zaprogramowałem,
procek zaprogramowałem, wyświetlacz działa a fuse bitów nie zmieniałem
Re: Fusebity
Ustaw fusebity na zewnętrzny kwarc.... patrz artykuł na temat fusebitow na mojej stronie.
Potem włącz układ i kliknij któryś z przycisków.
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.
zmieniłem fusy na takie jak
zmieniłem fusy na takie jak tu http://mirley.firlej.org/files/ART_fuseM8_02B.gif i teraz nie moge nic zaprogramowac na procku i nie moge odczytac fuse bitów
Re: Kwarc
A masz podłączony do procka kwarc i kondensatory 22pF?
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.
tak, mam wszystko podłączone
tak, mam wszystko podłączone tak jak podałeś w opisie
Re: Timer
TO musi wszystko działać bo fusebity są dobrze. Sprawdź kondensatory i czy nie ma zwarć przy kwarcu
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.
pytanie ??
Mam pytanie co trzeba zmienic w programie zeby buzer po skonczeniu odliczania pikal np. tylko 10sekund i zostawaly tylko te kreski --:-- lub poprostu wygaszal wyswietlacz ??
Re: timer
W tym fragmencie dopisz:
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.
dzieki za szybką odpowiedz testowałem działa .. ale
testowaęłm zmieniony program na nowym procku wgrałem wsad ustawiłem fusbity na "External Crystal, High Frequency wszystko przeleciało i wydawalo mi sie ze jest ok. progrqam działa tak jak należy ale teraz mam problem nie moge sie dostac do procka procesor nie widzi atmegi :( zrobilem układ rc bo go wystartowac ale tym razem nie zadziałał :( tera mi chyba tylko pozostał programator równoległy ?? czy jakś można go ożywić
Re: Timer kuchenny
Do zaprogramowania procka potrzebny jest kwarc. Podłącz programator do płytki timera do złącza prog i zaprogramujesz. Albo dołącz zewnętrznie do procka kwarc i dwa kondensatory. Wnioskuje że programowałeś poza układem
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.
Układ był programowany twoim
Układ był programowany twoim programatorem Programator z którego mam wyciagniete kable do programowania w układzie procesora , dziwna sprawa bo programa działa bez zarzutu zreszta programator słuzy mi juz ponad rok i nie bylo z nim problemow .Sprawdzalem dzis inny procek ATmega8A-PU wgrałem orginalny wsad do procka z twojej strony fusy na "External Crystal, High Frequency" i znów to samo program działa bez zarzutów a do procesora nie mam juz dostępu.. i niestety troche mnie to martwi ..
Timer dziwne zachowanie
Zrobiłem układ wg. schematu. Zaprogramowałem megę i niestety timer zwariował. Po podłączeniu zasilania zaczął liczyć do przodu co 20. Wcześniej zrobiłem go na innej płytce(psełdoprototypowej) i wszystko działało, a teraz nie. Nie wiem w czym problem. Kwarc, kondensatory, poprawne zasilanie - obecne. Może miałeś, lub ktoś z forum, podobny problem i znasz rozwiązanie. Aby wyeliminować błędy Atmega programowana kilkukrotnie.Proszę o pomoc
Szukaj ..
Szukaj Zwarcia gdzieś na płytce - jeSli ja sam robiłeś ?
Grzesiek - miasto Ostróda
GG 12372371 dom
tel 502812675 SMS
re szukaj
Dziękuje za zainteresowanie. W chwili wolnego od kieratu przejrzę PCB. Mam inny wyświetlacz niż w projekcie , dlatego też musiałem zaprojektować nieco inną płytkę, więc jest szansa, że coś sknociłem. Powiadomię o rezultacie. W międzyczasie jednak pojawił się następny, równie dziwny problem. Zakupiłem Atmegę8A. Jak wiadomo ma być godną następczynią popularnej 8. By ją sprawdzić wgrałem prosty program do migania diodą ale niestety nic się nie dzieje.
Ten sam program na zwykłej "ósemce", w tym samym układzie, jest realizowany poprawnie. Pinout obu scalaków zgodny, więc nie ma mowy o pomyłce portów. Fusy nie ruszane. Zastanawiam się czy przypadkiem mega nie jest uszkodzona. Teoretycznie przecież powinna działać. Ma ktoś może jakieś sugestie?
Re: m8
M8A powinna się normalnie programować, używałem jej już wielokrotnie. Samochodzący timer do przodu jest zwiastunem zwarcia na pinach klawiatury. Podczas odliczania słychać buzzer pikający?
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: m8
Dziękuję za poradę. Niestety nie miałem podpiętego buzera, więc nie wiem czy pikał. Tymczasowo miałem w jego miejsce podpiętą diodę led i ona migała. Idąc najprostszą drogą rozebrałem cały układ i mam zamiar zrobić go od nowa. Zmieniam trochę koncepcję i umieszczam wyświetlacz wraz z driverami i rezystorami na oddzielnej płytce a następnie połączę wszystko taśmą. Mam obudowę z odzysku i chcę ją jakoś wykorzystać. Może tym razem mi się uda:) Odnośnie m8A to na 99% jest uszkodzona. Normalnie się programuje, normalnie jest rozpoznawana ale stany portów się nie zmieniają. Miałem pecha trafić na jedną z milionów.
+ odliczanie do przodu
Tak sobie myślę (projektując w międzyczasie płytkę), czy możnaby, po skończonym odliczaniu wstecz, wysyłać przerywany sygnał do buzera, i czas odliczać do przodu? Chodzi o dźwiękową sygnalizację czasu, który upłynął, oraz odliczanie czasu, który upłynął od momentu osiągnięcia punktu "0".
Chciałoby Ci się?
Andre
Timer
Spróbuj w procedurze wyświetlania zmienić:
na:
oraz w timerze zmienić If z odliczaniem:
Teraz po doliczeniu do końca wyświetlacz będzie migał i pokazywał czas jaki upłynął od włączenia alarmu. Po nacisnięciu CL czas się skasuje..... Sprawdź czy działa bo nie testowałem
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.
Kropki
Czy aby kropki (DP) świeciły cały czas (lub tylko jedna z nich), wystarczy nóżkę 3 podpiąć pod zasilanie przez rezystor 470R? A może da się tym jeszcze sterować (wolne PC1?)? Wtedy przy korzystaniu z urządzenia, kropki byłyby wygaszone, a zapalałyby się w momencie wygaszenia cyfr na wyświetlaczu.
Chodzi mi o to, żeby urządzenie wskazywało cały czas (najlepiej na wyświetlaczu), że żyje.
No chyba, że robi to już dwukropek :)
Andre
Re: Timer Kuchenny
Można podłączyć do nóżki 3 rezystor do masy. Wszystkie kropki powinny wtedy zawsze świecić. Prościej jest zrobić aby dwukropek się zaświecił... w programie w miejscu:
Zmień Dwukropek = 0 na Dwukropek = 1 i powinno wystarczyć
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.
Kod po zmianach - program nie działa
Hej.
Już działa - za dużo dobrego chciałem uzyskać :)
Niepotrzebnie wrzuciłem "mryganie po odliczeniu".
Po kilku miesiącach udało mi się przysiąść i skończyć urządzenie :)
Andre
Literówka
W akapicie budowa zrobiłeś literówkę napisałeś "Klawiaturę składającą się z 5 prxycisków ...".
brak zasilania
Co się stanie w przypadku chwilowego braku zasilania???Dobre byłoby aby procesor zapamiętał ostatnio zliczony czas i dalej kontynuował liczenie.
Odp. Brak zasilania
W przypadku urządzeń z odliczaniem czasu najczęściej nie stosuje się zapisu do pamięci co sekunde/minutę ponieważ ilośc zapisów w pamięci jest ograniczona. Zapisując te dane ciągle w jednym miejscu szybko pamięć uległaby uszkodzeniu. Są takie wirusy komputerowe które uszkadzają dyski przez to że zapisuja ciągle dane w jednym miejscu.
Znany jest też przypadek fabrycznego błedu radii samochodowych w Audi gdzie poziom głośności był zapisywany do pamięci za każdym kręceniem gałka głośności. Po jakimś czasie radia same zwiększały głośność :D
Jeśli zależy nam na odliczaniu to najrozsądniej, chyba, byłoby podtrzymać zasilanie z baterii lub akumulatorka. Wyświetlacze nie muszą wtedy działać.
Napomknę jeszcze tylko o tym że Atmel opracował sposób na przedłużenie życia pamięci poprzez zapis danych w kolejnych komórkach.
BARTek
Moja strona
Re: Timer
Żeby zrobić podtrzymanie bateryjne wystaczy zasilacz procesor przez diodę schotkiego i dołączyc drugą diodę szeregowo z baterią równolegle do zasilania samego procesora..... Chodzi o to żeby wyświetlacz nie pracował na baterii
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.
liczenie czasu pracy silnika
Witam
Mam prośbę o pomoc w zmianie kodu aby ten timer odliczał czas od 00:00 tylko wtedy gdy jeden z przycisków (obojętnie który) jest naciśnięty puszczając przycisk zegar stoi reszta funkcji mnie nie interesuje.Potrzebuję liczyć czas pracy silnika w podajniku kotła Pozdrawiam
Odp. liczenie czasu pracy silnika
Masz już te płytkę wykonaną czy jak? Z jaką dokładnością ma być pomiar czasu, a z jaka wyświetlanie?
BARTek
Moja strona
Dziękuje za
Dziękuje za zainteresowanie.Tak płytkę mam wykonaną jeszcze nie wlutowałem części ale to zrobię dziś jak znajdę chwilkę.Pomiar czasu musi być w sekundach a wyświetlanie w minutach.Pozdrawiam
Odp. liczenie czasu pracy silnika
Proszę, powinno działać na tym hardware. Zrobiłem sobie tez wersję na LCD :)
Dwukropek nie miga, a świeci na stałe. Na początku pokazuje sekundy i minuty do momentu aż będzie jakaś godzina.
W razie problemów ze skompilowaniem uaktualnij BASCOM (starsze nie mają Compare dla Timer2 w Mega8).
Miłego użytkowania.
BARTek
Moja strona
Coś nie działa i nie wiem gdzie problem
Bartek Płytka poskładana i niby wszystko ok ale ale coś nie działa nie wiem czy coś źle robię czy problem jest po stronie programu.Dwukropek nie świeci a czas jest odliczany do przodu ciągle przyciski nie działają.Mirka program działa poprawnie
Odp. liczenie czasu pracy silnika
Hahaha bo to czwarta w nocy była i mnie poniosło z optymizmem :D
Tę linię:
spróbuj zamienieć na:
...a dwukropek nie działa bo później operuje sie całym portem i ustawienie go na początku nic nie daje. Podmień więc na coś takiego i powinno być gitara :D
Powinno juz ruszyć po tych zabiegach. Dobrze ze zdjagnozowałeś Mirka programem :D
Miłego dnia.
BARTek
Moja strona
Teraz działa poprawnie
Teraz działa poprawnie wielkie dzięki Bartek:)
Płytka fajnie działa a że są jeszcze przyciski to mam jeszcze jeden pomysł jak byś miał ochotę mi jeszcze pomóż to bym się ucieszył.
Chciałbym dodać jeszcze ilość spalonego węgla w kg. Pomysł mam taki podajnik podaje węgiel ze stałą prędkością i już to sprawdziłem że gdzieś około 0.27kg na minutę pracy podajnika więc fajnie aby to atmega przeliczyła i podawała wynik w kg na trzech segmentach wyświetlacza a czwarty segment po kropce dekagramach.Fajnie by było jak by zegar został tak jak jest teraz a przyciskiem zmieniać z czasu na kg zależy na co się chce popatrzeć. A już wogóle było by fajnie jak by ten przelicznik czasu na kg dało się ustawić pozostałymi przyciskami wykładnikiem przeliczania była by minuta pracy podajnika a zmieniać tylko dekagramy.
Nie wiem co na to Mirek ale jestem wstanie postawić flachę wiem że to korupcja :D ale czasy są takie że nie bardzo się chce komuś coś robić za free :D
Odp.liczenie czasu pracy silnika
Zawsze apetyt rośnie w miare jedzenia :D Dam rade, tylko żeby nie dać plamy potestuję najpierw u siebie, ale dopiero jak coś innego skończe. Zajrzyj jutro ;)
BARTek
Moja strona
Fajnie dzięki za
Fajnie dzięki za zainteresowanie tematem.
czekam z niecierpliwością :D
Odp. Licznik do podajnika
Proszę kolego. Byłem zajęty praca nad innymi rzeczami. Przepraszam za spóźnienie :) Pod tym linkiem (bo nie chcę śmiecić tu pod projektem) znajdziesz listing programu który napisałem. Nie mam tylu wyświetlaczy by przetestować, ale sprawdziłem kilka rzeczy na wyświetlaczu LCD. Powinno działać tak: Wyświetla albo Czas, jak przedtem, albo Kilogramy (przeliczone z czasu pracy w minutach * porcja). Jeśli naciśniesz przyciski góra lub dół to na chwilę wyświetlona będzie porcja w dekagramach na minute :) Dla wygody zmian wszystkie konfigurowalne sprawy łącznie z przydzieleniem funkcji przyciskom umieściłem na początku listingu. Program pamięta tez wartość kilogramów i wartość dekagramów na minutę.
Zapomniał bym o kropce ;) Jest oprogramowana i powinna działać jeśli podłączysz DP wyświetlacza do portu obsługującego wcześniej Buzzer (poprzez rezystor tak jak katody abcdefgh).
Daj znać co i jak ;)
Miłej zabawy.
PS. Po chwili wydaje mi się że program będzie wymagał małej korekty. Przy dzieleniu zmiennej typu Word lub Integer wynik powinien być przypisywany zmiennej tego samego typu czyli Integer a dopiero potem rzutowany na Byte. W jednym miejscu nie zostało to zachowane. Zależy mi jednak na razie na tym jak zachowuje się wyświetlanie.
BARTek
Moja strona
Zegar działa poprawnie jak
Zegar działa poprawnie jak było wcześniej zmiana z czasu na kg też działa ok przyciski zmiany ilości dekagramów działają ok zakres jest od 15 do 40 ok problem jaki zauważyłem to jak nacisnę którykolwiek z przycisków do zmiany dekagramów to nie można z tego wyjść samo też nie wychodzi. Fajnie by było jak by przyciski reagowały mniej czule na przycisk.Czasem po resecie występuje coś takiego że licznik kg zostaje na jakiejś liczbie i nie można tego wykasować nawet po odłączeniu prądu pomaga tylko zmiana wsadu atmegi
Jestem pod wrażeniem działania:D Dzięki za zainteresowanie się tematem:)
Mam taką jeszcze jedną prośbę jak by się dało do po załączeniu czy restarcie wyświetlało kg a nie minuty.
Pozdrawiam
Odp. Licznik do podajnika
Okay :D Takie sprawy zawsze wychodzą dopiero w praniu. Program zapamiętywał wyświetlany własnie tryb w momencie pierwszego nacisnięcia przycisku, ale przy drugim wpisywał tryb ustawiania jako właściwy - naprawiłem to - chyba :)
Ustawiony jest też tryb startowy jako wpis bo nie chciałem mącić w programie który i tak działa u mnie tylko wirtualnie w głowie :D.
Co do przycisków. Mało z nich korzystam, ale dodałem instrukcję "Config debounce" - ona konfiguruje deelay dla przycisków.
Dla przycisków na pięciu różnych pinach procesora postanowiłem z niej skorzystać bo widuję ją w wielu rozwiązaniach zagranicznych a niechęć do jej zastosowania może bierze się z nieznajomości jej konfiguracji. Na mojej stronie zrobiłem skrót do Wiki Bascoma - bardzo fajna sprawa bo wszystko jest pod ręką, na jednej stronie i alfabetycznie ..no i nie trzeba przewijać PDF`a :D
Do przeliczeń dodałem jedną pomocniczą zmienną bo nie muszę chyba w takim projekcie na nich oszczędzać :D
Link pozostał ten sam. W folderze są pliki z przedrostkiem "poprawiony". Tak już na sam koniec, na wszelki wypadek dopisałem możliwość zmiany trybu wyświetlania nawet w momencie bycia w trybie ustawiania.
Miłego dnia.
BARTek
Moja strona
Teraz wyjście z przycisków
Teraz wyjście z przycisków jest ok samo wychodzi po chwili lub przez naciśnięcie innego przycisku ale to zwolnienie przycisków spowodowało miganie oraz jaśniejsze świecenie cyfr na wyświetlaczu w momencie naciskania ja bym powrócił do poprzedniego jeśli chodzi o przyciski:).Mam jeszcze takie pytanie czy da się zrobić żeby po resecie zapamiętywało ustawienia jakie były wprowadzone przyciskami albo gdzie można wpisać stałą wartość w programie która się będzie ustawiać po resecie. Jest jeszcze jeden problem jak dojdzie do 10kg to licznik kg idzie od początku tak jak by świeciły tylko dwa segmenty wyświetlacza czas jest ok Jak narazie reszta ok :) Bartek podaj maila :D