problem

Merhaba, Aşağıda linkini verdiğim projeyi gerçekleştirmek istiyorum ancak arkadaş library dosyalarını vermediği için benim bulduğum library?ler ile bir türlü çalıştıramadım, devamlı ?compile error? uyarısı alıyorum. Çok uzun zamandır uğraşıyorum sonuç alamadım, artık nefret etmeye başladım. Böyle basit bir şey için sizleri meşgul etmek istemezdim ancak, sizler kadar bilgim olmadığı için işin içinden çıkamıyorum. Bana doğru library’leri verebilir misiniz? Bulduğum library kaynakların linkleri : LCDI2C http://reefprojects.com/wiki/Code\_Version\_2.4 DS1307: h= /* DS1307.h - library for DS1307 rtc */ // ensure this library description is only included once #ifndef DS1307_h #define DS1307_h // include types & constants of Wiring core API #include “Arduino.h” // include types & constants of Wire ic2 lib #include <../Wire/Wire.h> #define DS1307_SEC 0 #define DS1307_MIN 1 #define DS1307_HR 2 #define DS1307_DOW 3 #define DS1307_DATE 4 #define DS1307_MTH 5 #define DS1307_YR 6 #define DS1307_BASE_YR 2000 #define DS1307_CTRL_ID B1101000 //DS1307 // Define register bit masks #define DS1307_CLOCKHALT B10000000 #define DS1307_LO_BCD B00001111 #define DS1307_HI_BCD B11110000 #define DS1307_HI_SEC B01110000 #define DS1307_HI_MIN B01110000 #define DS1307_HI_HR B00110000 #define DS1307_LO_DOW B00000111 #define DS1307_HI_DATE B00110000 #define DS1307_HI_MTH B00110000 #define DS1307_HI_YR B11110000 // library interface description class DS1307 { // user-accessible “public” interface public: DS1307(); void get(int *, boolean); int get(int, boolean); void set(int, int); void start(void); void stop(void); // library-accessible “private” interface private: byte rtc_bcd[7]; // used prior to read/set ds1307 registers; void read(void); void save(void); }; extern DS1307 RTC; #endif ds1307 cpp = #include “Arduino.h” extern “C” { #include <wire.h>
#include
}

#include “DS1307.h”

DS1307::DS1307()
{
Wire.begin();
}

DS1307 RTC=DS1307();

// PRIVATE FUNCTIONS

// Aquire data from the RTC chip in BCD format
// refresh the buffer
void DS1307::read(void)
{
// use the Wire lib to connect to tho rtc
// reset the resgiter pointer to zero
Wire.beginTransmission(DS1307_CTRL_ID);
Wire.write((uint8_t)0x00);
Wire.endTransmission();

// request the 7 bytes of data (secs, min, hr, dow, date. mth, yr)
Wire.requestFrom(DS1307_CTRL_ID, 7);
for(int i=0; i<7; i++)
{
// store data in raw bcd format
rtc_bcd[i]=Wire.read();
}
}

// update the data on the IC from the bcd formatted data in the buffer
void DS1307::save(void)
{
Wire.beginTransmission(DS1307_CTRL_ID);
Wire.write((byte)0x00); // reset register pointer
for(int i=0; i<7; i++)
{
Wire.write(rtc_bcd[i]);
}
Wire.endTransmission();
}

// PUBLIC FUNCTIONS
void DS1307::get(int *rtc, boolean refresh) // Aquire data from buffer and convert to int, refresh buffer if required
{
if(refresh) read();
for(int i=0;i<7;i++) // cycle through each component, create array of data
{
rtc[i]=get(i, 0);
}
}

int DS1307::get(int c, boolean refresh) // aquire individual RTC item from buffer, return as int, refresh buffer if required
{
if(refresh) read();
int v=-1;
switch(c)
{
case DS1307_SEC:
v=(10*((rtc_bcd[DS1307_SEC] & DS1307_HI_SEC)>>4))+(rtc_bcd[DS1307_SEC] & DS1307_LO_BCD);
break;
case DS1307_MIN:
v=(10*((rtc_bcd[DS1307_MIN] & DS1307_HI_MIN)>>4))+(rtc_bcd[DS1307_MIN] & DS1307_LO_BCD);
break;
case DS1307_HR:
v=(10*((rtc_bcd[DS1307_HR] & DS1307_HI_HR)>>4))+(rtc_bcd[DS1307_HR] & DS1307_LO_BCD);
break;
case DS1307_DOW:
v=rtc_bcd[DS1307_DOW] & DS1307_LO_DOW;
break;
case DS1307_DATE:

   v=rtc_bcd[DS1307_DATE]/16 * 10 + rtc_bcd[DS1307_DATE] % 16;

break;

case DS1307_MTH:
v=(10*((rtc_bcd[DS1307_MTH] & DS1307_HI_MTH)>>4))+(rtc_bcd[DS1307_MTH] & DS1307_LO_BCD);
break;
case DS1307_YR:

  v=2000 + rtc_bcd[DS1307_YR]/16 * 10 + rtc_bcd[DS1307_YR] % 16;

break; 

} // end switch
return v;
}

void DS1307::set(int c, int v) // Update buffer, then update the chip
{
switch(c)
{
case DS1307_SEC:
if(v<60 && v>-1)
{
//preserve existing clock state (running/stopped)
int state=rtc_bcd[DS1307_SEC] & DS1307_CLOCKHALT;
rtc_bcd[DS1307_SEC]=state | ((v / 10)<<4) + (v % 10);
}
break;
case DS1307_MIN:
if(v<60 && v>-1)
{
rtc_bcd[DS1307_MIN]=((v / 10)<<4) + (v % 10);
}
break;
case DS1307_HR:
// TODO : AM/PM 12HR/24HR
if(v<24 && v>-1)
{
rtc_bcd[DS1307_HR]=((v / 10)<<4) + (v % 10);
}
break;
case DS1307_DOW:
if(v<8 && v>-1)
{
rtc_bcd[DS1307_DOW]=v;
}
break;
case DS1307_DATE:
if(v<32 && v>-1)
{
rtc_bcd[DS1307_DATE]=((v / 10)<<4) + (v % 10);
}
break;
case DS1307_MTH:
if(v<13 && v>-1)
{
rtc_bcd[DS1307_MTH]=((v / 10)<<4) + (v % 10);
}
break;
case DS1307_YR:
if(v<50 && v>-1)
{
rtc_bcd[DS1307_YR]=((v / 10)<<4) + (v % 10);
}
break;
} // end switch
save();
}

void DS1307::stop(void)
{
// set the ClockHalt bit high to stop the rtc
// this bit is part of the seconds byte
rtc_bcd[DS1307_SEC]=rtc_bcd[DS1307_SEC] | DS1307_CLOCKHALT;
save();
}

void DS1307::start(void)
{
// unset the ClockHalt bit to start the rtc
// TODO : preserve existing seconds
rtc_bcd[DS1307_SEC]=0;
save();
}

Yardımlarınızı esirgemezsiniz inşallah.

Yapmak istediğim proje aşağıdadır:

http://www.resifbolgesi.com/forum/index.php?showtopic=27051&amp;&amp;page=2

</wire.h>

en tepedeki linkte i2clcd kütüphanesi linki var şuradan http://www.reefprojects.com/LCDI2C-v0.4.zip ve tuş takımı için http://reefprojects.com/wiki/Keypad()\_function\_modified\_v.1 indirip arduino içine kopyalayıp deneyin sitede şuradaki http://reefprojects.com/wiki/Hardware elektroniklerin hepsini aldınız mı eksik olursa çalıştıramazsınız hiç bir şey? yada ufak ufak kendiniz projeyi geliştirmeniz gerekir imkanlara göre. arduino tecrübeniz ne kadar var kod yazmaya hakim misiniz? coşkunun kitabını alıp çalıştınız mı örnekler üzerinden?

Sizden sadece şunu isteyebilirmiyim? heralde sizin sadece 5 dakikanızı falan alır, Ayrı ayrı sadece LCDI2C’ yi ve daha sonra yukarıda dosyalarını verdiğim DS1307’yi compile edermisiniz? Herhalde haklıysam ne demek istediğimi anlıyacaksınız :slight_smile:

lcd kütüphanesinde sorun var kütüphaneyi indirip helloworld u denedim compile edilmiyor malzeme varsa hiç uğraşmayın direk şununla http://arduinoturkiye.com/pcf8574-ile-i2c-lcd-yapimi-ve-arduino-ile-kullanimi/ devam edin yazının altında çalışan kütüphaneler var. ds1307 içinde şununla http://arduinoturkiye.com/ds1307-ile-gercek-zaman-saati-rtc-yapimi-ve-arduino-ile-kullanimi/ devam edersiniz. eğer lcd elinizde varsa bizim kütüphane size uymaz farklı bir hardware sizin kullanmak istediğiniz. kütüphanenin içinde readme de sorun olursa mail atın diyor oraya da bir mail atın.