pcbway

Namaz saatleri gösteren program ama bi sorun var Yardım edebilirmisiniz?

Başlatan Elektrik2012, 12 Şubat 2013, 14:24:00

Elektrik2012

Serdar çiçeğin kitabındaki lcd uygulamasını biraz değiştirerek namaz saatlerini gösteren bir program yazdım.Sorun şu ben hergün bu bilgilerin değişmesini istiyorum mesela bugün 12 şubat salı yazcak ardından güneş atıyorum 06.48
öğle 13.30 ikindi 15.30 akşam 17.00 yatsı 18.00 yaıcak 2000ms gecikme verdim sonunda namaz dinin direğidir kim namaz kılarsa dinini kormuş olur yazıcak buraya kadar tamam ama diğer gün bu bilgiler değişcek atıyorum 13 şubat çarşamba güneş06.49 öğle 13.31 ikindi 15.31 akşam 17.02 yatsı 18.03 olcak gene sonunda aynı sözü söylüyecek ve bu saatlere geldğğinde alarm ötecek nasıl bir program yamam lazım yardımlarınızı bekliyorum dosya ektedir Saygılar Teşekürler
Büyük adım atmaktan korkmayın uçurumu küçük  sıçramalarla geçemezsiniz

yazici67

Bunu yapmanın iki yolu var. Ya internet üzerinden günlük verileri çekeceksin, mesela diyanetin sitesinden. İnternetli bir proje olmayacaksa ile göre namaz vakitleri yılda bir defa diyanetin sitesinden alınıp eeproma kaydedilir. PIC, eeprom\'dan verileri okuyarak LCD de gösterebilir.
Diğer bir yöntem de hesabı programa yaptırmak. Bu hesaplamaların farklı yöntemleri var. Algoritmasını araştırmak gerekecek. Vakitleri hesapladıktan sonrası çok basit.

Elektrik2012

internet üzerinder biraz sıkıntı olur benim için hıı anladım abi peki ben bu diyanetin sitesinden namaz vakitlerini alıp lcd teker tekermi yazdırcam ve eproom hiç kullanmadım nasıl kullanıcam ve bir yıl 365 gün pic hafızası yeticek mi biz direkt man diyanetin namaz vakitlerini eproma atalım hesaplama zor olabilir diye düşünüyorum ?Bilgi eksikliğimden dolayı kusuruma bakmayın Saygılar :)
Büyük adım atmaktan korkmayın uçurumu küçük  sıçramalarla geçemezsiniz

yazici67

PIC hafızası yıllık almayabilir. EEPROM dediğimiz harici hafıza elemanı.
Verinin daha küçük olması için aylık vakitler de kullanılabilir. Her ay güncellersin. Ancak eeprom kullanmak iyi olacaktır. Her seferinde PIC\'i söküp programlamak yerine, küçük eepromu entegre soketi ile devreye bağlarsıni gerektikçe veriyi yenilersin. EEPROM kullanmak kolay. I2C veya SPI örneklerini incele. CCS fonksiyonları hepsini kolaylaştırıyor.
Verilere gelince şuradan alabilirsin:
http://www.namazvaktim.net/iller.html
Burada yaşadığın ilin Aylık XML bağlantısına tıklarsan vakit bilgisini görürsün.
Mesela Zonguldak için vakitler:
http://www.namazvaktim.net/xml/aylik/zonguldak.xml
Bu dosyası XML haliyle EEPROMa kaydetmek yer kaybı olacaktır.
Sadece saat-tarih verisini ayıklarsak 512-baytlık bir alana sığdırabiliyoruz (1 aylık).
Buna göre EEPROM olarak 24C04 veya 24C08 yeterli. O kadar veri 512-byte\'a nasıl sığar diyorsan:
Tarihler 01.01.2013 olarak kaydedilmeyecek. Gün en fazla 31 olabilir. Buna 5-bit yani max. 32 ayıralım. Ay en fazla 12 olabilir. Buna 4-bit yani max 16 ayıralım. Yıllar 2000 den aşağı inmeceğine göre sadece son üç basamağı alsak yeter. Onada 7-bit yani max 128 ayıralım. Tarihleri 16-bit yani 2-byte\'a indirdik.
Saat 1 byte ve dakika 1 byte olursa her saat verisi 2-byte olur. Toplamda bir günün namaz vakti 6x2+2=14-byte eder. Ayda en fazla 31-gün var. 31x14 = 434 byte olur. Diğer boyut verileri ile en fazla 512-byet bile dolmaz. Bunları çözmek ise PIC tarafına kalacak. Onu da yazılımla hallederiz. Tarihler 01.01.2000 formatında, ilk mesajında \"12 Şubat Salı\" demişsin, ay kolay, gün ismini ise basit bir algoritma ile çözeriz. Bu günün tarihini almak için ise DS1302 kullanırsın. Bunları kullanabilmek için Serdar Çiçeğin örneklerinin hepsini öğrenmiş olup alıştırma yapmış olmak gerekiyor. Takıldığın yerde yardım etmeye çalışırım...
Kolay gelsin...

Elektrik2012

Abi çok güzel açıklmışsın ama ben daha Serdar çiçeğin kitabını okuyorum daha Grafik lcd uygulamasına geldim 10.sınıfa gidiyorum  :)bu dediklerini bayağı bi araştırmam gerekicek :)birde bu xml dediğiniz şeyleeri ne yapcaz eproma mı atcaz pek anlyamadım birde bir yılda12 ay var biz 12 tane eprom koysak devreye hepsine bir anahtar koysak 1.ci ay bittiğinde onu devre dışı etsek olmaz mı?birde abi bu programı pice attım devreyi borda kurdum fakat lcd yazdırdığımız şeyler tam okunmuyor sebebi pot ile mi kaynaklı ?
Büyük adım atmaktan korkmayın uçurumu küçük  sıçramalarla geçemezsiniz

yazici67

PIC ile iyice haşır neşir olduktan sonra aslında kolay olduğunu anlayacaksın. 12 eeprom kullanmak çare olmaz çünkü namaz vakitleri her yıl değişiyor. Anlatmak istediğim kısaca 1 eeprom olacak. Bu eeproma her ay xml\'den ayrıştırılan namaz vakti verisi yüklenecek. Bu veriler PIC tarafından okunup ekrana yazılacak. DS1302 gibi bir RTC entegresiyle de o günün tarihi okunacak, ona göre vakit bilgisis gösterilecek. XML formatında gereksiz yer kaplayan etiketleri kaldırıp, bunları bit düzeyine indirdikten sonra yazacağın ayrı bir bilgisayar programı ile eeproma yükleyeceğiz. Eeproma yükleme zaten PIC e yükleme ile aynı. PIC\'i söküp bacak bağlantılarına bakıp yerine eeprom koyacaksın. PIC\'e program attığın programı kullanabilirsin (ICProg, PonyProg vs. )  Bilgisayar tarafında xml verilerini her ay bizim eeproma saklayacağımız formata çevirmelisin. Onun için ayrı progam olacak.
Neyse, kafanı karıştırmayayım. Önce o kitapları bitirmelisin.
LCD ekranında yazılar silik görünüyorsa kontrast düşüktür. LCD üzerinde beslemelere 5 pin bağlanır:
V0, VDD, VSS, BLA, BLK genelde sıralama aynıdır.
V0 -> LCD kontrast değeri. Bu ucu 5k potansiyometre ile VSS\'ye bağla. Potansiyometrenin orta  ucu V0, yan uçlarından biri VSS olacak. Diğer ucu boş kalır. Bu potansiyometre ile oynayarak en uygun kontrast(siyah-beyaz farkı) değerini bulursun.
VDD -> +5 volt
VSS -> 0 volt gnd
BLA -> arka ışık +5 volt
BLK -> arka ışık 0 volt
Not : Eğer LCD ekranına çok sık bir şekilde yazı yazıp siliniyorsa mesela saniyede 15-20 kezden fazla ekrana yazılıp siliniyorsa yazılar silik çıkabilir. Ekrana tek satır yazdırıp programı durdur. Böylece sorunun nereden kaynaklandığını anlarsın.

Elektrik2012

Abi öncelikle teşekkür ederim bilgilerini aktardığın için dediğin gibi bu projeyi yapmakta şuan zorlanırım picle haşır neşir oluyum Serdar çiçek kitabını bitiriyim ondan sonra bakıcam abi.Lcd kontrast düşükmüş pot 10k koymuştum 5k ile değiştirdim sorun çözüldü teşekkür ederim abi
Peki abi bu Serdar çiçek CCS C ile programlamayı bitirdikten sonra hangi kitabı almalıyım biraz araştırdım

ileri C Programlama Kitap nasıl bilginiz var mı hangi kitabı alırsam iyi olur abi  Saygılar kolay gelsin
Büyük adım atmaktan korkmayın uçurumu küçük  sıçramalarla geçemezsiniz

yazici67

Öncelikle şunu ayıralım. C programlama mı? yoksa CCS ve PIC mi? PIC programlamak CCS C ile ileri düzey C bilgisi gerektirmez. CCS C de zaten birçok iş hazır fonksiyonlara yaptırılır. Ben programlamayı kitapla öğrenmeye karşıyım açıkçası. İnsan kendi merakıyla da öğrenebilir ,bu konuda takıldığı her noktada internetten faydalanabilir. İllâ ki kitap okuyacağım diyorsanız, ileri C gerekli değil, ama detaylı kitaplar gerekli. Bu kitapların bir çoğu ise ingilizce ve bu kaynaklar çok daha geniş bir biçimde internette mevcut. Yani iyi kötü biraz ingilizcen varsa internetten rahatlıkla öğrenmeye devam edebilirsin. Kitaplarla hep aynı, standart, kalıp projelerde kalırsın. İleri C programlama algoritma, veri yapıları vs. anlatır. Bunlar çoğunlukla bilgisayar yazılımlarıyla ilgili olmakla birlikte, \"programlama\"  denen şeyin aslında ne olduğunu öğretir. İşlemci ile beyin bütünleşebildiği zaman tam bir yazılımcı olunmuştur. Güzel yazılımlar yapmak için ileri prg. bilmek gerekmiyor. Ancak programlama temellerini iyi kavramışsan, diller sadece bir aracıdır. Aralarındaki fark çok küçük ayrıntılardan ibarettir. Şunu da ekleyeyim, her dilin kendi avantajları vardır. Bunları da iyi bilmek gerekir.
İşin arka tarafında ne olup bittiğinden emin olmak her zaman daha iyidir. PIC programlama için CCS nin kendi örneklerini (kurulum klasöründe Examples içinde olması lazım) inceleyebilirsin ancak bundan önce dil, tam olarak oturmuş olmalıdır.
İyi çalışmalar...

Elektrik2012

Teşekkür ederim abi dediklerini anladım internetten araştırp öğrenicem bu kitap bitsin kendim program yazıcam farklı şeyler çıkarıcam ortaya Saygılar
Büyük adım atmaktan korkmayın uçurumu küçük  sıçramalarla geçemezsiniz