avatar_ete

Alarmlı Saat Uygulaması

Başlatan ete, 04 Eylül 2011, 19:39:24

bozoklu01

Alıntı yapılan: proteus - 23 Şubat 2013, 00:18:43
hocam saatte bi gelişme varmı ben bişeyler yapmaya çalıştım eksikleri yoktur inş.

not: proje sizin saat projenizi modifiye ederek yapılmıştır

Çok başarılı bence Erol hocamın algoritmasıyla pek uyuşmuyor ama benim istediğimle büyük ölçüde uyuşuyor.Son aşamada geri sayım tamamlanınca çıkışa bağlı ledin yanma süresi 15 saniye gibi ayalansa (toplam alarm çalma süresi 25sn, 10sn buzzer 15sn led)tam istediğim şey olacak.yada ses için ayrı bir devre tasarlanacaksa bu haliylede devreyi tetiklemek için yetecektir diye düşünüyorum.Program üzerindde hangi değişken ledin yanma süresini ayarlıyor aceba.

ete

Power,
Hangi programı kullanıyorsun?. Belki sonradan iyileştirmişimdir.
Programların ilk halleri genelde kusurludur. Bazı kusurları ancak aylar sonra fark edersiniz. O nedenle iyi program 6 ayda oturur derler.
Ete

POWER

hocam
öncelikle söylediğim problem her zaman olmuyor zaman zaman oluyor.kullandığım roğram saat(77) olan.ufak tefek değişiklikler yaptım sadece.

ete

Aşağıda verdiğim programı bir dene istersen. Sensör okumasında köklü mantık değişikliği yapmıştım. Sİmulasyonda mükemmel çalışıyor gerçektede çalışacağından eminim.
Ete

POWER

hocam ilk fırsatta deneyip sonucu yazacağım.

bozoklu01

Alıntı yapılan: proteus - 23 Şubat 2013, 00:18:43
hocam saatte bi gelişme varmı ben bişeyler yapmaya çalıştım eksikleri yoktur inş.

not: proje sizin saat projenizi modifiye ederek yapılmıştır
Hocam devre isiste sorunsuz çalışıyor ama uygulamada saat ilerlemiyor,7805 aşırı ısınıyor pici değiştirdim,595 leri değiştirdim,ds1302'yi değiştirdim kısadevre kontrolu yaptım defalarca olmadı Devreyi delikli pertinaxa kurdum 595'lerin 8 ve 13 nolu bacaklarına GND vedim 10 ve 16 Nolu bacakları +5v,pic için 5 nolu bacak GND 4 ve 14 +5v şeklinde bağladım sorun ne anlamadım uygulamadaki tek fark buzzer yerine piezzo kullandım.

ete

Devre isiste çalışıyor çünki isis sistem saatini kullanıyor.
Normal şartlarda DS1302m entegresini ilk çalıştırdığınız zaman Saniye registeri 7. biti 1 dir. Bu saatin "halt " yani durma konumunda olduğunu belirler. Saate ayar verip bu biti de sıfırlamak gerekir. Bunu yapmazsanız saat ilerlemez.
Bunu yapmak için ayar menüsüne girip saati ayarlamak ve SN registerini sıfır olarak kayıt etmek gerekir.

Programda WP (yazma koruma biti) hep sıfır yapılmış. Bu bence yanlış.
Ama ne gariptirki bu biti her yazma işleminde sıfırlama da yapılmış. Zaten sıfır olan bit neden yeniden sıfırlanmış onuda anlamadım.

Ete

bozoklu01

Hocam donanımsal sorunu aşabilsem ayar konusunda dediklerinizi yapacağım ama 7805 te ısınma sorununu çözemedim daha. Hocam devre sizin hangi devrenizin modifiye hali arkadaş öyle yazmışta olmadı orjinal size ait olanı yapayım.

ete

#23
Devre şemasında 595 ler ile 7 segmentler arasında bir akım sınırlama direnci gözükmüyor. Gerçektede yokmudur?
Zaman kaybını önlemek amacı ile bu dirençleri ben çizmiyorum. Bazen aklıma eserse çiziyorum ama bu benim devrem ve çizmemişim. Sende bu dirençleri kullanmadı isen displeylerin aşırı akım çekiyorlardır. Şayet böyle ise 595 ler nasıl dayanıyorlar anlamadım doğrusu. Tabiiki buna 7805 de dayanmaz ve isyan eder. Sorun buradadır mutlaka. Onların dışında akım çekecek bir şey göremiyorum. Bir 7 segment display nerden baksanız 80-100 ma akım çeker. Direnç kullanmazsanız bu akım 250-500 ma seviyesine bile çıkabilir. 4 adedi ne çeker artık siz hesaplayın. Birde ara ledler var onlarda da direnç gözükmüyor.!
Programada baktım biraz gosub ile gidilen yerlerden goto ile dönülmüş. Bu program bir müddet sonra stack taşması nedeni ile kilitlenir.

Ete

bozoklu01

Aynen dediğiniz gibi isiste bir süre sonra sapıtıyor program.Akım sınırlama konusunda haklısınız kullanmadım bundan olabilir onu deniyeceğim hocam.595 lerin çekilen akıma dayanmasıda en fazla 20-25 saniye çalıştırdığımdan olabilir hocam.Teşekkürler hocam.

ete

#25
Madem düzeltme yapacaksın o zaman ,
GOSUB ile gidilen Ayar bölümünden GOTO BASLA ile dönülmemesini sağla. GOTO BASLA yerine RETURN olmalı.

Ayrıca Alarm Ayar kısmında aynı sorun var. Orayada GOSUB ile gidiliyor ama KAYIT etiketinde son işlem yapılıp GOTO BASLA ile dönülüyor. Orayada RETURN koymalısın.

Ete

bozoklu01

Sağolun hocam düzeltmeye çelışacağım.

MS_59

#27
hocam merhaba
Alıntı YapProgramda WP (yazma koruma biti) hep sıfır yapılmış. Bu bence yanlış.
Ama ne gariptirki bu biti her yazma işleminde sıfırlama da yapılmış. Zaten sıfır olan bit neden yeniden sıfırlanmış onuda anlamadım.
programa dahil ettiğim saat okuma ve yazma kısmı tamamen sizin http://etepic.com/index.php?action=dlattach;topic=71.0;attach=45
içindeki 5 nolu programınıza ait acaba benmi yanlış kopyaladım
diğer düzenlemeleride yaptım
mehmet

ete

Her zaman söylerim iyi program 6 ayda yerine oturur ve kusursuz hale gelir diye. Bu lafı şu amaçla söylerim. Kimse kusursuz değildir. Özellikle program yazarken sürekli hata yapmaya meyillisinizdir. Program çalıştıkça ve özelliklede üçüncü gözler tarafından incelendikçe kusurlar ortaya çıkar ve düzeltilir. Bende çok hata yaparım. Beni hatasız program yazan biri olarak görmeyin lütfen. Ancak incelersem hatalarımı çabuk bulurum. Ama dediğim gibi incelersem. Bazen fırsat olmuyor.  Bahsettiğin kodlara bile bakacak zaman bulamadım. Kodun yalnızca ayar kısmını aldın ise oraya belkide goto ile gönderme yapmışımdır ama sen gosub ile gönderme yapmışsın fark buradan çıkabilir. İşin temel prensibi goto ile gidilen yerden goto ile dönülür , gosub ile gidilen yerden ise return ile dönülür deyip bu prensibe göre programı düzeltme en doğrusudur.
Ete

~ENES~

ete hocam 10 alarmlı saati yaptım fakat devre saniyeyi sayarken 9dan 16 ya atlıyor 41 den 48e atlıyor 57 den direk 00 oluyor 00 olunca dakika artmıyor sorum simulasyonda da aynı şimdi  kurdum  devreyi devre üzerindede bire bir aynı sıkıntı var yardım ederseniz sevinirim acaba neden olabilir..
ALLAH'a teslim olmuş bir insan ! Ne sultan tanir , ne sadrazam !

Powered by EzPortal