avatar_ete

Saat Projeleri

Başlatan ete, 05 Eylül 2011, 11:13:26

erdoganacun

ete  hocam  merhaba  saatin  pilini ve  DS1307   değiştirdim hatta  çalışan saatimden  söküp  denedim   pilin yenisini  taktım  ledlede   denedim  sonuç  yine  aynı  enerjiyi  kestiğimde  saat  ayarı  sıfırlanıyor  hocam  bu yazılımla  alakalı  olabilirmiki

ete

Hangi saat bu. Benimkilerden birisi ise yazılımla alakalı olamaz.
Yazılımla alakası yalnızca yeni ayar bilgilerinin DS1307 ye yazılmaması sonucunda bu hatanın meydana gelmesidir.
Ben yazdıktan sonra RTC den okuma yaptırıp bilgileri yenilerim. Böylece saat doğru ise yazılmış demektir.
Son bir deneme daha yap istersen.
Saatin enerjisini kes ve bak bakalım DS1307 nin 3 nolu bacağında kaç volt var.?
Ete

F®T

ds1307 ler patates olmasın?
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

erdoganacun

ete  hocam  diğer çalışan saatimden söktüm 
hocam yazılımdan  olma  ihtimali  varmı  acaba

F®T

enerji yokken ds 1307 nin 4 nolu ayagı eksi 3 nolu ayağında 3 volt olmalı.direk entegrenin ayaklarından ölçün.ayrıca enerji varken 8 nolu ayaktada 5 volt olmalı.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

erdoganacun

ete  hocam  sizin projeniz  değil  bu projeyi  bir  arkadaşa  yazdırmıştım   sadece  nette  olan   analog  saatin  PCB  değişiklik  yaparak uyarladım  DS1307  4  ve 8  nolu  ayaklarda  enerji  varken  5  v  okunuyor   enerjiyi  kestiğimde    3  ve  4 ayakları  ölçtüğümde   3  volt  okunuyor

erdoganacun

DS1307    ve  pili  komple çalışan saatin  malzemesini  söküp  taktım  sonuç  yine  aynı

ete

#217
DS1307 nin voltaj kesik iken 3 ve 4 nolu pinlerine ne voltaj var ölçüp bir türlü söylemedin. Söylemişsin sonradan gördüm.
Malzeme değiştirmekle bir şey elde edemeyeceğini düşünmen gerekir. Neyse sorun o kartta bir problem var.

Aklın yolu birdir derler. Bu arızayı yaratabilecek bir kaç tane sebep var. Neymiş bunlar dersen;
1. Pil (3V luk Lityum Pil) bitmiştir yeterli akımı sağlamıyordur.  Pil değiştirerek bunu eledik.!!!!
2. DS1307 bozuk olabilir. Bu uzak bir ihtimal zira bozuk olsa normalde de çalışmayabilirdi. DS1307 değiştirerek bunuda eledik.
3. Şebeke beslemesi ile pil beslemesi ter bağlı olabilirdi. PCB ye bakarak öyle olmadığını gördük. Bunuda eledik.
4. Pil voltajı DS1307 nin 3 nolu bacağına bağlanıyor. Pil voltajının bu bacağa ulaşıp ulaşmadığına bakmak gerekir dedik.  Burada da 3 V okunuyor bunuda elememiz gerekiyor bu durumda

Geriye bir şey kalmadı. PCB yi atacaksın sanırım.

Ete


F®T

voltajları entegrenin üstünden ayaklarından ölç.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

erdoganacun

ete  hocam   DS1307  3  ve  4  nolu  pinlerde   enerji  kesikken  3  v  okunuyor   enerji verdiğimde de  3  v okunuyor

ete

Önünde tek alternatif kaldı.
Saatin pilini sök ve onunla bir led yakmaya çalış bakalım yakabilecekmi.
Lityum pillerin voltajına aldanmayın. Uzun süre bekleyen veya çalışmış pillerde voltaj 2,5-3V aralığında durmakla birlikte verebileceği akım sıfırlanıyor.  Buna çok fazla rastladım. Şayet led yakabiliyor ise bu birinci alternatifi eleyelim.

Tabiiki bu alternatifi de eleyince ve elinde başka alternatif kalmayınca bu konuyuda burada kapatmak gerekiyor.
Çünki mantıklı hiç bir şey yok o saatte. Uğraşmak gereksiz. Kaldır at gitsin.

Ete

MS_59

Alıntı yapılan: erdoganacun - 31 Ekim 2014, 13:22:42
ete  hocam  sizin projeniz  değil  bu projeyi  bir  arkadaşa  yazdırmıştım   sadece  nette  olan   analog  saatin  PCB  değişiklik  yaparak uyarladım  DS1307  4  ve 8  nolu  ayaklarda  enerji  varken  5  v  okunuyor   enerjiyi  kestiğimde    3  ve  4 ayakları  ölçtüğümde   3  volt  okunuyor
bence geriye tek bişey kalıyor oda yazılım buraya koyda bakalım
mehmet

erdoganacun

  ete  hocam  merhaba  bu sayfadaki  yazılarımda  bahsetmiştim  enerji  kapatılıp  açıldığında   ayarlar  sıfırlanıyor  bu  alt satıra  ait 



Lee_DS1307
     HORAS=  Bcd2Dec(hora)
     HORAS=horas+1
     IF HORAS > 23 THEN
     HORAS=0
     END IF
     hora= dec2bcd(horas)
     Escribe_Ds1307_hora()

     WHILE  P_HORA=0
     WEND

     END IF

    if Button(PORTA, 3, 10, 0) then  ' CHEQUEA MINUTOS

       Lee_DS1307
       minutos=  Bcd2Dec(minuto)
     MINUTOS= MINUTOS+1
     IF MINUTOS > 59 THEN
      MINUTOS=0
     END IF
       minuto= dec2bcd(minutos)
     Escribe_Ds1307_minuto()
     WHILE  P_MINUTO=0
     WEND
     END IF

erdoganacun

#223
 
 Sub Procedure Inicializa_DS1307()
       Soft_I2C_Start()
       Soft_I2C_Write(%11010000)
       Soft_I2C_Write(%00000111)
       Soft_I2C_Write(%10010000)
       Soft_I2C_Stop()
End Sub

Sub Procedure Escribe_DS1307()
       Soft_I2C_Start()
       Soft_I2C_Write(%11010000)
       Soft_I2C_Write(0)
       Soft_I2C_Write(Segundo)
       Soft_I2C_Write(Minuto)
       Soft_I2C_Write(Hora)
       Soft_I2C_Write(Dia_Semana)
       Soft_I2C_Write(Dia)
       Soft_I2C_Write(Mes)
       Soft_I2C_Write(Year)
       Soft_I2C_Write(%10010000)
       Soft_I2C_Stop()
End Sub

Sub Procedure Escribe_DS1307x()
       Soft_I2C_Start()
       Soft_I2C_Write(%11010000)
       Soft_I2C_Write(0)
       Soft_I2C_Write(Segundo)
       Soft_I2C_Write(Minuto)
       Soft_I2C_Write(Hora)
       Soft_I2C_Write(Dia_Semana)
       Soft_I2C_Write(Dia)
       Soft_I2C_Write(Mes)
       Soft_I2C_Write(Year)
    '   Soft_I2C_Write(%10010000)
       Soft_I2C_Stop()
End Sub


Sub Procedure Escribe_Ds1307_DIA_SEMANA()
       SEGUNDO=0
       Soft_I2C_Start()
       Soft_I2C_Write(%11010000)
       Soft_I2C_Write(3)
       Soft_I2C_Write(DIA_SEMANA)
       Soft_I2C_Stop()
End Sub

Sub Procedure Escribe_Ds1307_minuto()
       SEGUNDO=0
       Soft_I2C_Start()
       Soft_I2C_Write(%11010000)
       Soft_I2C_Write(0)
       Soft_I2C_Write(Segundo)
       Soft_I2C_Write(Minuto)
       Soft_I2C_Stop()
End Sub

Sub Procedure Escribe_Ds1307_hora()
       SEGUNDO=0
       Soft_I2C_Start()
       Soft_I2C_Write(%11010000)
       Soft_I2C_Write(2)
       Soft_I2C_Write(hora)
       Soft_I2C_Stop()
End Sub


sub procedure hora_inicial()
    ' Inicializa_DS1307()
     SEGUNDO = Dec2Bcd(segundo)
     minuto = Dec2Bcd(minuto)
     hora = Dec2Bcd(hora)
     DIA_semana = Dec2Bcd(dia_semana)
     DIA = Dec2Bcd(dia)
     mes = Dec2Bcd(mes)
     year = Dec2Bcd(year)
     escribe_ds1307

end sub


Sub Procedure Lee_DS1307()
       Soft_I2C_Start()
       Soft_I2C_Write(%11010000)
       Soft_I2C_Write(0)
       Soft_I2C_Stop()
       Soft_I2C_Start()
       Soft_I2C_Write(%11010001)
       Segundo = Soft_I2C_Read(1)
       Minuto = Soft_I2C_Read(1)
       Hora = Soft_I2C_Read(1)
       Dia_Semana = Soft_I2C_Read(1)
       Dia = Soft_I2C_Read(1)
       Mes = Soft_I2C_Read(1)
       Year = Soft_I2C_Read(0)

End Sub

erdoganacun

program reloj_ds1307

   
   
   Symbol P_HORA = PORTA.2
   Symbol P_MINUTO = PORTA.3

   
   Symbol LED_DS1307 = PORTA.1
   
   Symbol LATCH_L = PORTB.7
   Symbol DATA_L = PORTB.6
   Symbol CLOCK_L = PORTB.5
   
   Symbol LATCH_R = PORTB.2
   Symbol DATA_R = PORTB.0
   Symbol CLOCK_R = PORTB.1
   
'  Set TEMP_RESOLUTION to the corresponding resolution of used DS18B20 sensor:
'  18B20: 
const TEMP_RESOLUTION as byte = 12
   
   
     dim Soft_I2C_Scl  as sbit at RA1_bit
               Soft_I2C_Sda  as sbit at RA0_bit
               Soft_I2C_Scl_Direction as sbit at TRISA1_bit
               Soft_I2C_Sda_Direction as sbit at TRISA0_bit

Powered by EzPortal