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(); }