Kontak Kami

( pcs) Checkout

Grand Opening Cahaya LED Selamat Datang di Cahaya LED
Beranda » Artikel Terbaru » Algoritma Menampilkan Angka pada 7 Segmen Module

Algoritma Menampilkan Angka pada 7 Segmen Module

Diposting pada 28 September 2017 oleh cahayaled

Intro

Pada artikel sebelumnya kita membahas Tutorial Pemrograman 7 Segmen 74HC595 Shift Register. Mulai dari cara kerja IC driver 74HC595, Kemudian membuat tabel kebenaran dari skematik rangkaian, dan sampai masuk pada tahap pemrograman. Pada artikel ini akan dibawah lebih detail pemrograman untuk display tampilan module 7 segmen untuk memudahakan menampilkan angakan dari sebuah variable.

Fungsi Algoritma

Dalam tutorial sebelumnya kita membahas pemrogram untuk menampilkan data serial pada 7 segmen disetiap digitnya. Namun jika kita memiliki sebuah nilai variabel integer dengan nilai = 1200, maka akan kesulitan untuk menampilkan data tersebut display 7 segmen. Oleh karena itu dibutuhkan sebuah algoritma pemrograman untuk memisahkan masing masing nilai dari variabel tersebut. Sehingga dapat menghasilkan angka satuan dari masing masing nilai (1200 menjadi 1,2,0,0).

Pada tutorial ini kita akan mengambil contoh untuk dijelaskan dengan menggunakan 4 digit 7 segmen, yang artinya nilai variable maksimal untuk ditampilkan adalah 0 s/d 9999. Berikut ini adalah contoh algoritma yang sudah dibuat.

// ==================================================================================
int ratusanribu, puluhanribu, ribuan, ratusan, puluhan, satuan;

void printRibuan(int nilai) {
  ribuan = nilai / 1000;
  ratusan = (nilai % 1000) / 100;
  puluhan = ((nilai % 1000) % 100) / 10;
  satuan = (((nilai % 1000) % 100) % 10) % 10;

  if (nilai >= 1000 && nilai <= 9999) {
    shiftData(satuan);
    shiftData(puluhan);
    shiftData(ratusan);
    shiftData(ribuan);
  }
  else if (nilai >= 100 && nilai <= 999) {
    shiftData(satuan);
    shiftData(puluhan);
    shiftData(ratusan);
    shiftData(0);
  }
  else if (nilai >= 10 && nilai <= 99) {
    shiftData(satuan);
    shiftData(puluhan);
    shiftData(0);
    shiftData(0);
  }
  else {
    shiftData(satuan);
    shiftData(0);
    shiftData(0);
    shiftData(0);
  }
}
// ==================================================================================

Nah dari potongan program diatas, merupakan algoritma untuk menampilkan data dari variable. Disini akan sedikit dibahas dari perintah algortima diatas.

 ribuan = nilai / 1000;
 ratusan = (nilai % 1000) / 100;
 puluhan = ((nilai % 1000) % 100) / 10;
 satuan = (((nilai % 1000) % 100) % 10) % 10;

Potongan dari program diatas berfungsi untuk memisahkan setiap digit dari variable nilai. Contoh dengan nilai 1234, pada variabel ribuan (1234 dibagi 1000 menghasilkan nilai 1,234) dikarenakan nilai variabel integer pasti bernialai bulat, maka hasilnya sama dengan 1. Selanjutnya variable ratusan (1234 modulus (%) 1000 = 234, kemudian dibagi 100 menjadi 2). Variabel puluhan (1234 % 1000 = 234 % 100 = 34 dibagi 10 = 3). Variable satuan (1234 % 1000 = 234 % 100 = 34 % 10 = 4). Nah dari rumus diatas menghasilkan masing masing nilai yang dapat ditampilkan pada setiap digit 7 segmen. Namun disini perlu sebuh perintah pecabangan yang digunakan untuk menyataka variable nilai bernilai ribuan, ratusan, puluhan, atau satuan. Berikut ini adalah potongan programnya.

if (nilai >= 1000 && nilai <= 9999) {
    shiftData(satuan);
    shiftData(puluhan);
    shiftData(ratusan);
    shiftData(ribuan);
  }
  else if (nilai >= 100 && nilai <= 999) {
    shiftData(satuan);
    shiftData(puluhan);
    shiftData(ratusan);
    shiftData(0);
  }
  else if (nilai >= 10 && nilai <= 99) {
    shiftData(satuan);
    shiftData(puluhan);
    shiftData(0);
    shiftData(0);
  }
  else {
    shiftData(satuan);
    shiftData(0);
    shiftData(0);
    shiftData(0);
  }

Dari program diatas jika nilai kurang diantara 1000 s/d 9999, kemudian ditampilkan dengan perinti shifData(), sesuai dengan variable yang akan ditampilkan telebih dahulu. Dan seterusnya untuk data variabel nilai 100 s/d 999, 10 s/d 99, dan 0 s/d 9, memiliki digit yang kosong sehingga digunakan shifData(0), untuk menutupi digit tersebuh dengan angka 0 atau dapat menggunakan shifData(10), untuk mematikan semua diplay pada digit yang tidak digunakan. nah selanjutnya kita kan mencoba programan display 7 segmen dengan menggunakan progra diatas.

Part

 

Tutorial Pemrograman

Buatlah sebuah modul 7 segmen dengan menggunakan skematik diatas, disini digunakan module yang sudah dibuat seperti pada list part diatas. Kemudian hubungkan pada arduino module sesuai skematik diatas. dan upload program berikut ini.

// ==================================================================================
#define Data   7
#define Clock  10
#define Latch  8

// ==================================================================================
byte lowChar[] = {B00010010, B11010111, B00110001, B10010001, B11010100, B10011000,
                  B00011000, B11010011, B00010000, B10010000, B11111111
                 };
int ratusanribu, puluhanribu, ribuan, ratusan, puluhan, satuan;
int nilai = 1234; // Ubah nilainya

// ==================================================================================
void setup() {
  pinMode(Data, OUTPUT);
  pinMode(Clock, OUTPUT);
  pinMode(Latch, OUTPUT);
}

// ==================================================================================
void loop() {
  digitalWrite(Latch, LOW);
  printRibuan(nilai);
  digitalWrite(Latch, HIGH);
}

// ==================================================================================
void printRibuan(int nilai) {
  ribuan = nilai / 1000;
  ratusan = (nilai % 1000) / 100;
  puluhan = ((nilai % 1000) % 100) / 10;
  satuan = (((nilai % 1000) % 100) % 10) % 10;

  if (nilai >= 1000 && nilai <= 9999) {
    shiftData(satuan);
    shiftData(puluhan);
    shiftData(ratusan);
    shiftData(ribuan);
  }
  else if (nilai >= 100 && nilai <= 999) {
    shiftData(satuan);
    shiftData(puluhan);
    shiftData(ratusan);
    shiftData(0);
  }
  else if (nilai >= 10 && nilai <= 99) {
    shiftData(satuan);
    shiftData(puluhan);
    shiftData(0);
    shiftData(0);
  }
  else {
    shiftData(satuan);
    shiftData(0);
    shiftData(0);
    shiftData(0);
  }
}

// ==================================================================================
void shiftData(int nilai) {
  switch (nilai) {
    case 0: shiftOut(Data, Clock, MSBFIRST, lowChar[0]); break;
    case 1: shiftOut(Data, Clock, MSBFIRST, lowChar[1]); break;
    case 2: shiftOut(Data, Clock, MSBFIRST, lowChar[2]); break;
    case 3: shiftOut(Data, Clock, MSBFIRST, lowChar[3]); break;
    case 4: shiftOut(Data, Clock, MSBFIRST, lowChar[4]); break;
    case 5: shiftOut(Data, Clock, MSBFIRST, lowChar[5]); break;
    case 6: shiftOut(Data, Clock, MSBFIRST, lowChar[6]); break;
    case 7: shiftOut(Data, Clock, MSBFIRST, lowChar[7]); break;
    case 8: shiftOut(Data, Clock, MSBFIRST, lowChar[8]); break;
    case 9: shiftOut(Data, Clock, MSBFIRST, lowChar[9]); break;
    case 10: shiftOut(Data, Clock, MSBFIRST, lowChar[10]); break;
  }
}

// ==================================================================================

Dari program diatas, di tampilkan display pada variable dengan nilai 1234 dengan menggunakan perintah printRibuan(nilai); perlu diingat pada artikel sebelumnya anda harus meletakan perintah tersebut diantara perintah switch pin LATCH. berikut ini hasil tampilan dari program diatas.

Ok sekian dulu tutorial kali ini, jika masih terkendala dengan tutorial ini, anda dapat meninggalkan pesan pada kotak komentar dibawah. Semoga bermanfaat.

Bagikan informasi tentang Algoritma Menampilkan Angka pada 7 Segmen Module kepada teman atau kerabat Anda.

Algoritma Menampilkan Angka pada 7 Segmen Module | Cahaya LED

Belum ada komentar untuk Algoritma Menampilkan Angka pada 7 Segmen Module

Silahkan tulis komentar Anda

Your email address will not be published. Required fields are marked *

*

Mungkin Anda tertarik produk berikut ini:
OFF 30%
Rp 400.000 Rp 575.000
Ready Stock / JWS0001
Rp 175.000
Ready Stock / PSU0001
SIDEBAR