Follow Us

Kamis, 05 Oktober 2017

TEORI :

Module 8 Digit 7 Segment max7219 merupakan penggabungan dari 8 module display seven segment yang dipasang atau disusun secara horizontal yang dikontrol menggunakan driver max7219. Kelebihan dari Module ini hanya membutuhkan 3 buah pin I/O sebagai komunikasi pada arduino sehingga dapat meminimalkan penggunaan pin I/O arduino. Module 8 digit Seven Segment ini dapat diaplikasikan pada berbagai macam project yang memerlukan tampilan karakter khususnya karakter angka, misalnya : Project jam digital (seperti yang akan dibahas).
Komponen keypad akan berfungsi sebagai input data untuk setting time dari detik sampai dengan jam. seven segment, akan menjadi tampilan dari jam digitalnya DS1307, akan menjadi sumber data waktu yang dapat diakses oleh Arduino Microcontroller Arduino Microcontroller akan berfungsi sebagai pengolah data utama dari Keypad, komponen DS1307, dan mengatur display seven segment.


Module 7 Segmen 8 Digit MAX7219
Spesifikasi Module 8 Digit 7 Segmen max7219 ini :
  • Power Supply : 5V DC
  • Data Interface : SPI Serial (Din & Dout)
  • Warna 7 Segment : Merah
  • 7 Segment : 8 Digit
  • Driver : 1 x MAX7219
Pada Module 8 Digit 7 Segmen ini memiliki 5 pin interface :
  • VCC = 5V DC
  • GND = 0V / Ground
  • DIN = Data IN / SDA / MOSI
  • CS = Shift / SS
  • CLK = Clock / SCK
DOUT memungkinkan untuk menambah module 7 segment dengan jumlah sesuai kebutuhan.
Pada project kali ini akan diberikan contoh pembuatan Jam Digital menggunakan module SFE 8 Digit 7 Segment max7219, dengan menggunakan Module 8 digit 7 Segment dalam project jam digital kali ini dapat menampilkan jam, menit dan detik maupun hari, bulan dan tahun secara bergantian.

ALAT YANG DIBUTUHKAN :

1. Module 7 Segment 8 Digit MAX7219
2. Module Arduino UNO

3. RTC DS 1307
4. Kabel Jumper

Petunjuk :

  • Hubungkan masing-masing modul dengan SFEDuino sesuai dengan konfigurasi pin dibawah ini:

7 Segment RTC DS1307

CLK = 2 SDA = A4
CS = 3 SCL = A5
DIN = 4 VCC = 5V
GND = 0V GND = 0V
VCC = 5V

Sketch

Libraries
  • Masukkan library pada sketch program arduino IDE
  • Masukkan contoh sketch dibawah ini, kemudian upload program yang telah dibuat
#include <RTClib.h>
#include <LedControl.h>
//========================================================================================
// pin data, clock, latch
double hold;
LedControl lc = LedControl(4, 2, 3, 1);
RTC_DS1307 rtc;

//========================================================================================
void setup() {
  rtc.begin();
  lc.shutdown(0, false);
  lc.setIntensity(0, 8);                          // kecerahan display
  lc.clearDisplay(0);                             //  hapus display
  //rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); //set jam sesuai dengan jam komputer
  //rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}

//========================================================================================
void loop() {
  hold = millis();
  while ((hold + 20000) > millis() ) {
    DateTime now = rtc.now();
    setCol1(now.hour());
    setCol2(now.minute());
    setCol3(now.second());
    lc.setChar (0, 2, '-', false);
    lc.setChar (0, 5, '-', false);
  }

  hold = millis();
  while ((hold + 5000) > millis() ) {
    DateTime now = rtc.now();
    setCol1(now.day());
    setCol2(now.month());
    setCol3(now.year() - 2000);
    lc.setChar (0, 2, '-', false);
    lc.setChar (0, 5, '-', false);
  }

}

//========================================================================================
void setCol1 (byte jam) {
  String strBuffer = Konversi(jam);
  byte pjg = strBuffer.length() + 1;
  char val[pjg];
  strBuffer.toCharArray(val, pjg);
  lc.setChar (0, 0, val[0], false);
  lc.setChar (0, 1, val[1], false);
}

//========================================================================================
void setCol2 (byte mnt) {
  String strBuffer = Konversi(mnt);
  byte pjg = strBuffer.length() + 1;
  char val[pjg];
  strBuffer.toCharArray(val, pjg);
  lc.setChar (0, 3, val[0], false);
  lc.setChar (0, 4, val[1], false);
}

void setCol3 (byte dtk) {
  String strBuffer = Konversi(dtk);
  byte pjg = strBuffer.length() + 1;
  char val[pjg];
  strBuffer.toCharArray(val, pjg);
  lc.setChar (0, 6, val[0], false);
  lc.setChar (0, 7, val[1], false);
}

String Konversi(int nilai) {
  if (nilai < 10) {
    return "0" + String(nilai);
  }
  else {
    return String(nilai);
  }
}
Setelah program berhasil diupload maka display 8 digit 7 segment akan menampilkan tampilan jam dan tanggal secara bergantian


Categories:

0 komentar:

Posting Komentar

Theme Support