avatar_ete

Basit Saat Projesi

Başlatan ete, 05 Eylül 2011, 11:17:06

ete

Bu proje 7 segment displayler ile yapılmış ve mümkün olan en az malzeme ile gerçekleştirilmiş bir projedir.
Dosya içinde hem ortak anot hemde ortak katod display ile yapılmış projeleri bulabilirsiniz.

Ete

erdoganacun

ete  hocam  önce sevgi ve  saygılarımı  sunuyorum  sizden bir ricam var mümkünse  tabi   hocam...  keypad lı  dört haneli  yani  0999  rakamları arası keypadla  istediğim sayları  girebileceğim  hafızaya  alabileceğim  bir  devre  örneği  elinizde  varmı yardımcı  olursanız  çok  sevinirim ete  hocam

ete

ELimde bir sürü tuş takımı devresi mevcut ama 4 haneden sonra kayot eden şeklinde yok. Bir tanesini senin için adapte ettim.  Dosya ektedir.

Ete

erdoganacun

hocam  ilginize geçekten çok teşekkür  ediyorum   lcd  değilde 74HC595  çıkışlı  olması daha uygun hocam   10 cm  dısplay  süreceğim  tekrar  saygılar  hocam

kotan04

merhaba hocam 2 sorum olacak

1 bu basit saat devrnizinde display çıkışarını bdx53 ile sürüp büyük display bağlayacağım bir problem olurmu acaba ?

2 saatin geri kalmasını istemiyorum. bunuda bahsettiğiniz gibi kristal bağlayarakmı çözebilirim? eğer kristal bağalamam gerekiyorsa 4 bacaklı kristalmi takmamlazım bu kısmı detaylı açıklarmısınız

iyi çalışmalar


ete

Transistör sorun olmaz sanırım.
4 Bacaklı kristal OSC (TXO) osilatör kullanman gerekiyor.

http://www.direnc.net/32768KHZ-OSILATORLU-KRISTAL,PR-3585.html

4 bacaklıdır ancak birisi nc dir. Bir +5V besleme, GND ve OUT bacağı vardır. Beslemeyi verdikten sonra out bacağını, RTC nin CLK_in bacağına gireceksin. Sorun olursa hangi RTC yi kullanacak isenbelirt ona göre bakıp söyleyeyim.

Ete

Galaxy

Hocamızın bu projesinin elinde PCB çizimi olan varmı acaba
ortak katot devreli olan varsa paylaşmasını rica ediyorum
Ayrıca Hocamızada bu güzel devrelerini bizlerle paylaşmasından dolayı teşekkür ediyorum

ardaxu

Hocam öncelikle kolay gelsin.

Hocam örnek projeyi biraz değiştirerek kullandım.Dip swich yardımı ile 10-5 ve 15 dakikalık periyotlar verip button ile sayıcıyı başlatıp roleyi açıp ayarladıgım zaman sonunca röleyi kesiyorum.Dediğim gibi ufak değişikliklerle projenin orjin haline pek tokunmadan yaptım buraya kadar sıkıntı yok.Dahili osilator kullanmaktayım ve PIC olarak PIC 16F883 kullanıyorum.Lakin projenin orjinlide dahil olmak üzere saniye bazında sıkıntılar yaşıyorum.Öyle atom saati seviyesinde hassasiyete ihiyacım yok lakin dakika başına 3-5 saniye benim için sıkıntı yaratıyor akabinde projemin devamında kullancağım girişler yüzünden harici osilator kullanmak istemiyorum hocam sani,ye sapmasını daha tutarlı bir hale getirmenin bir yolu varmı ? saygılar

ete

Dakika başına 3 sn fazla bir sapma. Bu kadar sapma olmaması gerekir. ne yaptığını görmediğim için yaptığın işle ilgli bir şey söylemem mümkün değil. Saat ile çalışmada en hassas iş harici RTC kullanmaktır. Onun dıiında daha hassas kontrol edilen bir kesme sistemi kullanılabilir.

Ete


ardaxu

Hocam proje orjnalini sadece portlar ve pic konfigrasyonu için değiştirdigim bunlar haricinde değişiklik yok.Şuan devre deneme kartında çalışmakta o yüzden buton koymadım muhtemelen ben bir hata yapıyorum ancak devrede 18-20 saniyelik sapma söz konusu. hatta bu yazıyı yazarken ara verip tekrar devreyi sıfırlayıp kronomete ile saniye takibi yaptım sonuç aynı.

ete

Bu sapmaları gerçek devredemi yoksa simuledemi görüyorsun.?
Simulede ise umarım gerçek zaman saati ile sistemin çalışma zamanını karıştırmıyorsundur. En altta sola doğru çalışan bir saat vardir. Asıl izlemen gereken saat odur. Gerçek zaman saati olarak çalışır. Dolayısıyla ekrandaki değişimde o zaman saatine bağlı olarak çalışır.

Programa baktım şayet sorun gerçek devrede ise zamanı hassas ayarlamak için bazı yapılabilecek oynamalar var.
TMR0 sayacı her 5 ,031 ms de bir kesme oluşturuyor. Bu kesmeler hem displayi sürüyor hemde kesmeleri sayıp her 150 kesmede bir sn sayacını bir artırıyoruz. Aslında 150 adet kesme 754,65ms lik bir süreye tekabül eder ama sanırım komut gecikmelerinden dolayı bu 150 değerini kullanmışım. Gerçekten bu saati yapmadığım için hassas bir ayarlama yapmadım tabiiki.
Senin yapman gereken şey bana kalırsa, 150 rakamını 250 yap. Kesme kısmında en altta yer alan TMR0=99 yerine TMR0=131 yaz.
Bu şekilde dene bakalım. Şayet saat geri kalıyor ise komut gecikmelerinden dolayı geri kalıyordur. Bu durumda saati biraz daha hızlandırmak gerekecektir. O halde Önce 250 sayısını 249 yapıp dene bakalım ne olacak. Yine geri kalıyorsa 248 yap. Bu şekilde 250 sayısını azaltarak bir sonuca varmaya çalış. Bir noktada ya verdiğin değer tam tutacak yada rakamı azaltınca saat ileri gidecek veya rakamı artırınca saat geri kalacaktır. İşte o noktada saati yine geri kalacak şekilde olan rakamı tercih et ve bu sefer TMR0=131 rakamı ile oyna.
Saat az geri kalıyor ise 131 yerine 132 ver. Yada bu rakamı birer artırarak kontrol et bir noktada epeyce hassas bir saat yakalayabilirsin.

Ete

ardaxu

#11
Hocam proje gerçek devre üzerinde (ISIS değil) 20 dakikadır çalışmakta.
Verdiğiniz bilgiler doğrultusunda ZAMAN değerini 246 TMR0 değerini 131 yaparak ayarları değiştirdim.
Sonuç olarak (çok çok hassas ölçümlemesekte) aradaki fark kapandı, kanımca 20dakikalık periyotta sapma olsaydı zaten belli olurdu.

Değerli zamanınızı ayırdığınız için çok teşekkür ediyorum.
Saygılar

Edit : Projeyi tamamen bitirim uzun periyotlarda deneyip elimden gelen en hassas değerleri tekrar burdan paylaşıcam lakin şuan en tutarlı değerler yukardadır.

ardaxu

Hocam Merhaba;

Müsadenizle konu ile alakalı bir soru daha sormak istiyorum.
Mevcut devre halihazırda çalışmakta ufak bir sapma var ama zaten timer olarak değiştirdigimizden ve kısıtlanan süre periyodundan dolayı çok farkedilmiyor bunun için tekrar teşekkür ediyorum.
lakin sadece bilgi edinmek adına projeyi TMR1 ve TMR1'e harici kristal verilerek ( 32.768KHz) daha hassas hale getirmek mümkünmüdür ?
Ben forumda uzun aramalar yaptım derslerinizi tekraren inceledim lakin TMR1 kesmesi hakkında detaylı bilgiye ulaşamadım ulaştıgım örneklerde pbp harici dillerle yazıldıgı için uyarlamalarımda bihayli sıkıntılar çıktı.
Şayet zamanınız olursa örnek projeyi TMR1'e (harici osc ile) uyarlamanız mümkünmü ?
Saygılar.

ete

TMR1 sayacı harici OSC den beslenerek daha hassas çalışma elde edilebilir. Ama bu seferde işlemcide 2 bacak kristal için kullanılacak (PORTB.6 ve PORTB.7) ve buraya ilave olarak kristal ve kapasitör bağlayacaksın.
Bu durumda TMR1 sayacı bu harici osc den aldığı palsleri sayacak ve seninde sayılan değer üzerinden saat palslerini hesaplaman gerekecektir. Bu osilatörün hassasiyeti de kristal kalitesine bağlı olacak komut gecikmeleri süreyi etkileyecektir.
Bunun yerine Harici bir saat entegresi kullanıp ona 32768 Hz lik kristal bağlayarak saat palslerini ondan alman daha doğru olur. Ben TMR1 sayacını harici OSC ile hiç kullanmadım. Bu iş için şimdi örnek kod yazamam. Bir anlamı yok.

Ete

Powered by EzPortal