Uploaded by sutarlisteng

Cara mengakses 7segment menggunakan Arduino Uno X2

advertisement
Cara mengakses 7segment menggunakan Arduino
Uno
Penjelasan Singkat
7segment adalah salah satu komponen elektronika yang bentuk seperti balok yang
berfungsi sebagai penampil karakter angka dan karakter huruf tertentu.
Secara umum aplikasi penggunaaan 7Segment misalnya digunakan pada kalkulator,
jam digital, multimeter digital counter digital, serta penunjuk display lainnya.
Prinsip kerja dari komponen yaitu memanfaatkan nyala matinya LED pada setiap
bagian untuk membentuk suatu karakter tertentu dan angka. Selain itu pada komponen
itu terdapat dot / titik dibagian samping kanan bawah.
Contoh nyata aplikasi komponen ini dalam kehidupan sehari – hari yaitu penggunaan
pada Lift memakai 7-Segment untuk menunjukan lantai berapa yang akan dituju.
Jenis dari 7segment
Terdapat 2 tipe, tertampil pada seperti gambar dibawah ini :
a. 7-Segment tipe Katoda (Common Cathode)
Pada tipe ini, kaki katoda dari LED-nya terkoneksi menjadi satu kesatuan, dan kaki
anoda-nya akan difungsikan menjadi input-an data untuk penyalaan setiap segmennya.
Kaki katoda LED merupakan terminal negatif / Gnd dan Control Signal / signal kendali
merupakan kaki pin anoda a-g.
b. 7-Segment tipe Anoda (Common Anode)
Pada tipe ini, kaki anoda dari LED-nya terkoneksi menjadi satu kesatuan,dan kaki
cathoda-nya akan difungsikan menjadi input-an data untuk penyalaan setiap
segmennya.
Kaki katoda LED merupakan terminal negatif / Gnd dan Control Signal / signal kendali
merupakan kaki pin anoda a-g.
Tutorial cara mengakses 7Segment (via simulasi
Proteus)
Tutorial pertama yang sederhana untuk menampilkan angka dari 0 – 9. seperti gambar
dibawah ini:
Percobaan untuk pembuktian tabel kebenaran, bahan yang perlu dipersiapkan antara
lain :



Komputer + proteus
7-segment tipe anoda (Library Proteus)
Logic Toggle (Library Proteus)
Dari gambar dapat dilihat perbedaan antara 7-segment cathoda dan 7-segment anoda
melihat dari tabel kebenaran.
Tutorial Cara mengakses 7Segment menggunakan Arduino
Uno
Bahan yang perlu dipersiapkan antara lain :




Arduino Uno
Komputer + Software IDE Arduino
7-segment tipe katoda
Kabel Jumper
Baca juga : Cara Mengakses Sensor Thermocouple type K menggunakan ESP32
Skema rangkaian antara arduino dengan 7segment
untuk koding pemrogramannya
/* --- www.nyebarilmu.com --- */
const byte numeral[11]={
B11111100, //untuk angka 0
B01100000, //untuk angka 1
B11011010, //untuk angka 2
B11110010, //untuk angka 3
B01100110, //untuk angka 4
B10110110, //untuk angka 5
B00111110, //untuk angka 6
B11100000, //untuk angka 7
B11111110, //untuk angka 8
B11100110, //untuk angka 9
B00000000, //tanpa menampilkan apapun
};
//inisialisasi pin yang digunakan
const int segmentPins[8]= { 2,11,10,5,4,3,8,9 }; //dp,g,f,e,d,c,b,a
void setup(){
for (int i=0; i < 8; i++){
pinMode(segmentPins[i], OUTPUT);
}}
void loop(){
for (int i=0; i <=10; i++){
tunjukanAngka(i);
delay(1000);
}
delay(2000); }
void tunjukanAngka (int number){
boolean isBitSet;
for (int segment=1; segment < 8; segment++){
isBitSet= bitRead(numeral[number], segment);
digitalWrite(segmentPins[segment], isBitSet); }
}
Pada program diatas akan menunjukan angka 0 – 9 secara bergantian dengan jeda 2
detik.
Tutorial Lanjutan cara mengakses module 7Segment
Bahan yang perlu dipersiapkan




Arduino Uno
Komputer + Software IDE Arduino
Modul 7-segment
Kabel Jumper
Gambar dari modul 7segment (modul TM1637)
Skema rangkaian
Library yang diperlukan >>
Filenya ini
Peletakan Library pada masing – masing Operation System :



PC (Windows) : Program file /Arduino/ libraries
Mac : (home directory)/Applications/Arduino (Show Package Content)
/Contents/Java/Libraries
Linux : (home directory)/sketchbook/libraries
Contoh koding pemrogramanya
/* ... www.nyebarilmu.com ... */
#include <TM1637Display.h>
#include <Arduino.h>
//waktu tunda yang digunakan 3 detik
#define TEST_DELAY 3000
//Pin yang digunakan
#define CLK 2
#define DIO 3
//format inisialisasi pin
TM1637Display display(CLK, DIO);
//fungsi untuk pemanggilan tulisan "sip"
const uint8_t SEG_sip[] = {
SEG_A | SEG_F | SEG_G | SEG_C | SEG_D,
// s
SEG_F | SEG_E,
// i
SEG_B | SEG_A | SEG_F | SEG_G | SEG_E
// p
};
void fungsi_utama(){
int h;
//data untuk menghidupkan led
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
display.setBrightness(0x0f);
// pemanggilan nilai "data" menghidupkan semua led 7segment
display.setSegments(data);
delay(TEST_DELAY);
// Selectively set different digits
data[0] = 0b01001001;
data[1] = display.encodeDigit(1);
data[2] = display.encodeDigit(2);
data[3] = display.encodeDigit(3);
for(h = 3; h >= 0; h--) {
display.setSegments(data, 1, h);
delay(TEST_DELAY);
}
display.setSegments(data+2, 2, 2);
//format perubahan data led 1
delay(TEST_DELAY);
display.setSegments(data+2, 2, 1);
delay(TEST_DELAY);
display.setSegments(data+1, 3, 1);
delay(TEST_DELAY);
// mendisplay nilai desimal dengan maupun tanpa leading zeros
bool lz = false;
for (uint8_t z = 0; z < 2; z++) {
for(k = 0; k < 10000; k += k*4 + 7) {
display.showNumberDec(k, lz);
delay(TEST_DELAY);
}
lz = true;
}
// Tampilkan angka desimal yang panjangnya lebih kecil dari 4
for(k = 0; k < 4; k++)
data[k] = 0;
display.setSegments(data);
// Jalankan melalui semua dot
for(k=0; k <= 4; k++) {
display.showNumberDecEx(0, (0x80 >> k), true);
delay(TEST_DELAY);
}
display.showNumberDec(153, false, 3, 1);
delay(TEST_DELAY);
display.showNumberDec(22, false, 2, 2);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 3);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 2);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 1);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 0);
delay(TEST_DELAY);
// Brightness Test
for(h = 0; h < 4; h++)
data[k] = 0xff;
for(h = 0; h < 7; h++) {
display.setBrightness(k);
display.setSegments(data);
delay(TEST_DELAY);
}
// On/Off test
for(k = 0; k < 4; k++) {
display.setBrightness(7, false);
// Turn off
display.setSegments(data);
delay(TEST_DELAY);
display.setBrightness(7, true); // Turn on
display.setSegments(data);
delay(TEST_DELAY);
}
//jika sudah selesai akan tertampil tulisan "sip"
display.setSegments(SEG_sip);
while(1);
}
void setup()
{
}
void loop()
{
//pemanggilan fungsi
fungsi_utama();
}
Download