thermometre saat projesi şema dosya

Başlatan durubay, 05 Mayıs 2005, 00:38:30

ete

Mustafacan dan aldığım mesajda led lerin sıcaklık gösterirken de yandığını belirtti. Bunu önlemek için şu değişikliği yapın;

TOGGLE PORTA.3  yerine

IF Y<11 then TOGGLE PORTA.3

Bu şu demek. Ekranda saat gösterilirken ledler yanıp sönecek.

Kolay Gelsin
ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

sezgin05

@ETE
Ustam ben DS18B20 sensörü ile ölçtüğüm ısıyı taramalı tip bir displeyde kullanmak istedim.Isıyı ve derece işaretlerini görüyorum ama
sanırım ONWIRE okuma belli bir zaman alıyor ki bu tarama hızını etkiliyor.Dolayısıyla rakamlar ekranda bir görünüp bir kayboluyor.Acaba bu sensör tarama prensibiyle gösterilemezmi...

ete

@Sezgin05,

Aslında senin yapmak istediğini bende denemiş idim. Ancak aynı sonucu aldım ve ne yaptı isem çözüm bulamadım. Bu yüzden display bilgileri daha stabil görünsün diye 74HC595 leri kullandım.
Sensör haberleşmesi bayağı zaman alıyor. Yanlış hatırlamıyor ise 500 ms den büyük idi.

ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

ete

Şimdi data sheetine baktım süre 750 ms olarak verilmiş.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

mustafacan

Alıntı yapılan: "ete"Yapılacak iş şöyle;

EKRAN0:  etiketinin hemenbaşında;
HIGH PORTA.3   komutunu iptal edin. (silin)

KESME:   etiketinde
        Y=Y+1   şeklinde bir satır var. Bu satırın altına
        TOGGLE PORTA.3
yazın işlem tamamdır.

Ete

usta bense bu satırı şöle değiştim.

satırın ilk hali  EKRAN0:HIGH PORTA.3
satırın saniye zıplar hali    EKRAN0: TOGGLE PORTA.3

sen galiba komutu alt satıra yazdığımı sandın ancak satırı etiketin hemen devamına yazdım. Böylece saniye ledi 500msaniye yanık kalıyor ve 500msaniye sönük kalıyor. senkronu gayet şık oldu.
Elimdeki 2 saatte bu şekilde 2 gündür şağlıklı çalışıyor.
Keşfedilecek çok teknoloji var. Boş Vaktim Yok!

balkes10

arkadaşlar mspa13 diye ledbordtan söktüğüm birçok transistör var datasheetine baktığımda 1,2a verebileceği söylüyor acaba ledli segmenleri sürebilir mi?
SADECE ŞAHLAR HAMLELERİ ÖNCEDEN SEZER

vatandas30

ben bc 337 ile 4 tane paralel bağlı 10 mm. lik ledi sürdüm. ledlerin çektiği akım tahmin ettiğimden de küçüktü. bc 337  0,8A lik. ledler ise seri bağlı 500 ohm dirençle birlikte yaklaşık 16mA akım çekti. her segmentte 4 tane paralel diyot var. üstelik gerilimde 12V.

obilgi

Alıntı yapılan: "mustafacan"
Alıntı yapılan: "ete"Yapılacak iş şöyle;

EKRAN0:  etiketinin hemenbaşında;
HIGH PORTA.3   komutunu iptal edin. (silin)

KESME:   etiketinde
        Y=Y+1   şeklinde bir satır var. Bu satırın altına
        TOGGLE PORTA.3
yazın işlem tamamdır.

Ete

usta bense bu satırı şöle değiştim.

satırın ilk hali  EKRAN0:HIGH PORTA.3
satırın saniye zıplar hali    EKRAN0: TOGGLE PORTA.3

sen galiba komutu alt satıra yazdığımı sandın ancak satırı etiketin hemen devamına yazdım. Böylece saniye ledi 500msaniye yanık kalıyor ve 500msaniye sönük kalıyor. senkronu gayet şık oldu.
Elimdeki 2 saatte bu şekilde 2 gündür şağlıklı çalışıyor.

Simülasyonda 0,5 sn de yanıp sönme olmuyor. Ledler kafasına göre yanıp sönüyor gibi gözüküyor. Ledler gerçek devrede 0,5 saniye yanık kalıyor   heralde.?

ete

@Obilgi,

Tespitlerin doğru. Normalde;
EKRAN0: adlı etiket satırına program 1 sn. içinde belki yüzlerce defa geliyor ve her seferinde Toggle yapıyor. Tabiiki bunların bazılarını görebiliyoruz. Sonuçta blink olayını düzenli görmememiz gerekir. Bu yüzden doğru blink benim anlattığım şekilde her saniye değişiminde tatbik edilmeli.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

obilgi

Tamamdır ete ustam.

Teşekkürler...

mustafacan

Alıntı yapılan: "obilgi"

Simülasyonda 0,5 sn de yanıp sönme olmuyor. Ledler kafasına göre yanıp sönüyor gibi gözüküyor. Ledler gerçek devrede 0,5 saniye yanık kalıyor   heralde.?

evet gerçek uygulamada senkron olarak çalıştırdım.ve bayağıdırda çalışıyor. görüntüde 0,5 sn on 0,5 sn off oluyor.

simule etmedim uyguladım.
Keşfedilecek çok teknoloji var. Boş Vaktim Yok!

ete

Arkadaşlar,

Baktımda bu ledlerin Blink şeklini pek beğenmedim. Neden derseniz çalışan saatlere baktım bu ledler 1/2 saniye yanık 1/2 saniye sönük duruyor. Denedim hakikaten böyle daha güzel oduğunu gördüm. Kendi kendime yaniden şekil uydurmaya gerek yok önceden denenmiş ve uygulanmış olduğuna göre bunu yap dedim. Sonuçta programda aşağıdaki değişikliği yaparsanız sizin ledler de daha güzel blink yapacaklar.

EKRAN0: satırının hemen altına;
IF SAYAC=30 THEN LOW PORTA.3  ' satırını yazıyoruz.

KESME: Bölümünde Y=Y+1 satırının hemen altına;

IF Y<9 THEN HIGH PORTA.3   'satırını yazıyoruz.

IF Y<9 ifadesindeki 9 değeri saatin ekranda kalma süresinin bir fazlasıdır. Bu önceki programlarda 11 idi. Bu durumda 9 yerine 11 yazmalısınız.
Bu arada ekranda saatin 8 saniye sıcaklığında 4 saniye kalması daha iyi oluyor. Programı bu esasa göre değiştirmek için;

BASLA: satırının hemen altındaki satırları aşağıdakiler ile değiştirin.
IF Y>8THEN
          IF Y>12 THEN Y=1

Aynı sistemi diğer saatlerede uygulayabilirsiniz.
Burada temel fikir, SAYAC değişkenimiz beher saniyede yaklaşık 60'a kadar saymaktadır. 60 olduğunda SN bir artırılıyor ve ledler yanık hale getiriliyor. SAYAC sıfırlanıyor ve 30 olduğunda da ledler söndürülüyor.
Böylece saniyenin yarısında ledler yanık diğer yarısında ise sönük kalmış oluyorlar.

ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

obilgi

Usta eline sağlık süper oldu.

Peki "ete" usta bu saatin hafızasını koruması nasıl sağlanabilir. Yani ben codlardan falan pek anlamıyorum işin açıkçası. Basit bir küçük bir akü veya pil yardımıyla göstergeleri kapatıp pic in çalışmasını sağlasak süper ötesi olacak.

Teşekkürler...

ete

Ceryan kesilmelerinden sistemin etkilenmemesi işini önceden biraz düşünmüştüm.
74HC595 lerin MR veya OE bacaklarından birini pic den kontrol edebilirsek display'leri istersek kapatabiliyoruz. Burası tamam. Pic'in besleme uçlarına en az 4700 mf bir (belki biraz daha büyük veya 2 adet 4700 Mf.) kondansatör bağlıyoruz. Besleme girişine bir adet 1N4001 ile aküden gelen beslemeyi bağlıyoruz. Şebeke ceryanı bulunduğu müddetçe aküden akım çekilmiyor. Şebeke kesilince diyotun önü açıldığı için hemen akü devreye giriyor ve beslemeyi devam ettiriyor. Aradaki aktarma zamanı esnasında pic in çalışmasına devamını da kondansatör sağlıyor.
Burada tek sorun, 16F628 de kullanabileceğimiz başka bacak kalmamış olmasıdır. Ya internal OSC yi kullanıp osc bacaklarınıda input/output olarak kullanacağız yada bir üst işlemci olan 16F876 ya geçip bu işi gerçekleştireceğiz.
Aslında basit bir röle düzeneği ile mevcut  sistemide bu mantıkla çalıştırabiliriz. Nasıl derseniz,  Şebeke akımı olduğu müddetçe küçük bir röle çekili olarak durur ve çekili vaziyette 74HC595 lerin OE (13.pin) bacağına GND tatbik eder. Bu bacaklar 10 K ile (hepsi için tek 10K yeterli) pull up da durur. Şebeke kesilince role kapanacağı için OE bacaklarından GND yi keser ve Pull-up direnci nedeni ile bacak HIGH olur. Böylece display lar kapanır. AYnı anda diyotlu besleme sistemi devreye girer ve pic'i besler. Sonuçta sistem böylece çalışır. Geriye yalnızca şarjlı pil veya akü kullanılması halinde bunların şarj edilmesi konusu kalır ki oda basit bir dirençle pil veya akü kapasitesinin %4'ü miktarında bir ma ile şarj edecek kadar bir akım verilmek suretiyle yapılabilir.
Kolay Gelsin
ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

obilgi

Bence gayet mantıklı denemekte fayda var. Yardımlarınız için teşekkürler..

Kolay gelsin..