Search This Blog

Thursday, February 6, 2014

RTC pada Netduino+

Real Time Clock

RTC merupakan salah satu I2C device, RTC membantu Netduino untuk mendapat set waktu yang sesuai bahkan sampai ke resolusi millisecond. RTC memilki sumber catu daya yang berbeda dari Netduino sehingga set waktu tidak akan bergeser apabila Netduino dalam keadaan mati. Netduino tidak memiliki internal RTC, karena itulah setiap Netduino di reset maka waktu akan menunjukkan tanggal yang tidak sesuai atau kembali pada factory default -nya. 

kali ini saya menggunakan RTC DS1307 buatan iteadstudio (RTC v1.1). cukup mudah untuk di implementasikan kedalam netduino. tapi sebelum nya catatan nya adalah, pada RTC tersebut Resistor pada pin SDA dan SCL di pull up langsung ke catu daya 5V dari Netduino, hal ini tidak menjadi masalah apabila kita tidak menggunakan pin Analog input untuk melakukan pengukuran. namun apabila kita hendak menggunakan pin tersebut sebagai input analog, maka kita perlu sedikit merubah posisi pull up tersebut ke 3V. hal ini dapat dilakukan dengan memotong Jalur pada bagian belakang RTC yang menghubungkan catu daya 5V ke serangkaian resister tersebut dan menambahkan satu kabel yang terpisah untuk menyambungkannya pada catu daya 3.3v pada netduino. saya mendapatkan catatan ketika pin SDA dan SCL yang du pull up ke catu daya 5v maka analog read akan mendapatkan nilai yang jauh dari nilai sebenarnya. meskipun secara elektronik netduino akan memutuskan A4 dan A5 dari ADC chip ketika kita mendeklarasikannya sebagai I2C devices.

baik, sampai di sini mari kita lihat bagaimana menset up RTC pada Netduino Plus.
1. Secara fisik set up kabel seperti  di bawah ini:
   SDA -> Analog Pin 4
    SCL -> Analog Pin 5
    GND -> GND
    5V  -> 5V
    Pull Up Resistor ->3.3v (pull resistor di sini sebesar 4.7k)

2. Download Project nya di sini .
3. Untuk pertama kali menjalankan RTC, ubah sedikit code dibawah ini pada bagian main program.


 // TODO: Do this only once to set your 
 //clock.SetClock(14, 2, 4, 10, 40, 0, DayOfWeek.Sunday); //set sesuai dengan waktu upload sketch.
 // tahun, bulan, tanggal, jam, menit, detik

4. setelah upload sketch, nonaktifkan kembali code tersebut dan upload sekali lagi. hal ini perlu dilakukan agar waktu tidak berubah ketika netduino di reset.

5. panggil waktu yang sudah di setup menggunakan DateTime.Now(Format waktu nya). contoh:

Debug.Print("The time is: " + DateTime.Now.ToString("HH:mm:ss"));
Debug.Print(DateTime.Today.Date.ToString("dd/mm/yyyy")) 

tadaaaa.... selesai.... kita bisa memanggil method DateTime.now kapan pun dan sudah sync dengan DS1307 yang kita tambahkan.
kita bisa membuat format waktu sesuai dengan keinginan kita dengan memanggil method tersebut seperti ini

DateTime.now.today // return value : int tanggal hari ini (misal: 7)
DateTime.now.Hour // return value : int jam saat ini (misal: 22)
DateTime.now.millisecond // return value : int millisecond


selamat mencoba. jika perlu penjelasan lebih silahkan ditanyakan.

Cheers

No comments:

Post a Comment