Anda di halaman 1dari 4

Pertemuan 2.

Praktikum Digital Input Output


ESP32 adalah platform elektronik open-source populer yang dapat digunakan untuk
mengontrol dan berinteraksi dengan berbagai perangkat elektronik, termasuk display tujuh
segmen. Dengan menggunakan mikrokontroler ESP32, memungkinkan untuk dengan mudah
mengontrol keadaan setiap segmen dalam display tujuh segmen, sehingga memungkinkan
untuk membuat tampilan numerik kustom dan proyek interaktif lainnya.

1: Pendahuluan Seven Segment


Display tujuh segmen dapat menampilkan informasi numerik menggunakan program
mikrokontroler. Display tersebut terdiri dari tujuh segmen individual, masing-masing dapat
dinyalakan atau dimatikan secara independen untuk menciptakan berbagai karakter numerik.

Display tujuh segmen bekerja dengan menerangi kombinasi yang berbeda dari tujuh
segmennya untuk menampilkan karakter numerik. Setiap segmen dikendalikan oleh pin
individual, yang dapat dinyalakan atau dimatikan untuk menciptakan karakter numerik yang
diinginkan. Ketika segmen-segmen diterangi dalam kombinasi yang tepat, karakter numerik
tersebut terlihat oleh pengguna.

Ketika menggunakan mikrokontroler ESP32 untuk mengontrol display tujuh segmen, ESP32
mengirimkan sinyal ke pin tertentu pada display tujuh segmen, memberitahukan segmen
mana yang harus dinyalakan atau dimatikan untuk menampilkan karakter numerik tertentu.

Hal ini dilakukan dengan menulis program di Arduino IDE (Integrated Development
Environment) menggunakan bahasa pemrograman C++. Program menggunakan perpustakaan
Arduino untuk mengontrol status setiap segmen dengan perintah sederhana. Program juga
dapat dikonfigurasi untuk menampilkan karakter numerik yang berbeda berdasarkan input
dari sensor atau interaksi pengguna.

2: Seven Segment Pinout


Tampilan tujuh segmen biasanya memiliki 10 pin, dengan satu pin untuk setiap segmen, satu
untuk titik desimal, dan dua pin umum. Berikut adalah tabel pinout yang umum:
Setiap segmen diberi label a, b, c, d, e, f, dan g. Pin bersama biasanya digunakan untuk
mengontrol semua segmen sekaligus. Pin bersama tersebut aktif rendah atau aktif tinggi
tergantung pada tipe dari display.

3: Tipe Seven Segment


Ada dua tipe seven-segment displays:

 Common Cathode
 Common Anode.

5: Rangkaian
Untuk memprogram seven-segment, pertama-tama kita perlu merancang sirkuit dan
menghubungkannya dengan ESP32. Menggunakan skema referensi di bawah ini, hubungkan
papan ESP32 Anda dengan display tujuh segmen.
6: Control Seven Segment Using Library with ESP32

int segPins[] = {15, 2, 4, 5, 18, 19, 21};/*ESP32 pin for seven-segment*/


byte segCode[10][7] = { /*array of number 0-9 in order from a of g*/
  //a  b  c  d  e  f  g
  { 0, 0, 0, 0, 0, 0, 1},  /*display 0*/
  { 1, 0, 0, 1, 1, 1, 1},  /*display 1*/
  { 0, 0, 1, 0, 0, 1, 0},  /*display 2*/
  { 0, 0, 0, 0, 1, 1, 0},  /*display 3*/
  { 1, 0, 0, 1, 1, 0, 0},  /*display 4*/
  { 0, 1, 0, 0, 1, 0, 0,}, /*display 5*/
  { 0, 1, 0, 0, 0, 0, 0},  /*display 6*/
  { 0, 0, 0, 1, 1, 1, 1},  /*display 7*/
  { 0, 0, 0, 0, 0, 0, 0},  /*display 8*/
  { 0, 0, 0, 0, 1, 0, 0},  /*display 9*/
};
void displayDigit(int digit) /*Function to initialize each segment*/
{
  for (int a=0; a < 7; a++)
  {
    digitalWrite(segPins[a], segCode[digit][a]);/* instructing the respective segments for the
numbers from 0 to 9 */
  }
}
void setup()
{
  for (int a=0; a < 7; a++) // for loop for setting the pins as output*/
  {
    pinMode(segPins[a], OUTPUT);
  }
 }
void loop()
{
   for (int b = 0; b < 10; b++)/* generating numbers from 0 to 9 */
  {
     displayDigit(b);/*display the numbers generated*/
     delay(1000);
  }
}

#include "SevSeg.h"  /*Included seven-segment library*/


SevSeg sevseg;       /*Create a seven-segment library*/

void setup()
{
  byte sevenSegments = 1;  /*Number of connected seven-segment*/
  byte CommonPins[] = {};  /*Define Common pin of seven-segment*/
  byte LEDsegmentPins[] = {15, 2, 4, 5, 18, 19, 21};  /*Define ESP32 digital pins for seven-
segment*/
  bool resistorsOnSegments = true; /*assigning Boolean type to the registers of the
seven=segment*/
 
sevseg.begin(COMMON_ANODE, sevenSegments, CommonPins, LEDsegmentPins, resisto
rsOnSegments);/*seven-segment configuration */
  sevseg.setBrightness(80);  /*Seven segment brightness*/
}
void loop()
{
   for(int i = 0; i < 10; i++)   /*Display number from 0 to 9 using for loop*/
   {
     sevseg.setNumber(i);
     sevseg.refreshDisplay(); /*Refresh seven-segment display after each iteration*/
     delay(1000);    /*Time delay for loop iteration*/
   }
}

Anda mungkin juga menyukai