Anda di halaman 1dari 22

Arduino Seven Segment | Tutorial Arduino

Dasar
tutorial arduino | Halo sobat AWI'ers.... ketemu lagi di akhir pekan. Kali ini kami
akan sedikit bermain main dasar tentang bagaimana bertatap muka antara arduino
dengan seven segment.

Sudah pada tau seven segment kan. itu loh yang biasa dipakai ditampilan-tampilan
jam digital yang bentuknya kayak kotak - kotak ada angkanya 0 - 9

Seven Segment 0 - 9 (*)

Sebelum kita belajar lebih jauh alangkah baiknya kita mengenal apa itu seven
segment, bagaimana konfigurasinya yang ada di seven segment.

Pada Umumnya seven segment terdiri 7 batang led yang disusun membentuk angka 8
(*seperti pada gambar diatas), dimana setiap segmentnya terdiri dari LED yang salah
satu kaki terminal lednya di jadikan satu atau yang disebut dengan common. 

skema dari 7 batang led tadi biasanya di tandai dengan huruf a - g, sebagai berikut

 
skema seven segment (*)

Kaki yang dijadikan satu / common sendiri dibagi menjadi 2 yaitu kaki common
anoda dan kaki common cathoda.
Penjelasan common anoda dan common katoda

Common Anoda
common Anoda merupakan bagian kaki dari anoda (+) yang dijadikan satu dan
dihubungkan dengan arus positif tegangan. sedangkan untuk mengaktifkan kaki yang
lainnya harus di beri tegangan negatif. atau led akan menyala jika dalam kondisi aktif
low (diberi logika 0).
Misalkan ingin menampilkan angka 1, maka yang harus di lakukan adalah. kaki
common di beri tegangan +, sedangkan kaki b dan c di beri tegangan -

Common Katoda
Common katoda ini kebalikannya dari common anoda, jadi kaki common yang
disatukan adalah kaki katoda (-), sehingga untuk mengaktifkan kaki yang lain di beri
tegangan (+) atau diberi logik high (1).

Berikut ini adalah gambar dari seven segment common anoda dan katoda

kaki kaki common (*)

Sekarang langsung ke percobaan arduino dengan seven segment,


yang perlu disiapkan
 projectboard
 arduino uno
 seven segment (boleh anoda maupun katoda)
 kabel jumper
 tegangan (power supply)
Langkah langkah tutorial arduino seven segment 
 pasang seven segment pada project board
 atur kabel jumper dengan susunan sebagai berikut
Arduino Pin 7 Segment Pin Connection
 2 7 (A)
 3 6 (B)
 4 4 (C)
 5 2 (D)
 6 1 (E)
 7 9 (F)
 8   10 (G)
 9  5 (DP)
 pada percobaan kali ini kami menggunakan seven segment common katoda,
maka kaki common dihubungkan dengan ground (-). 
 masukkan program berikut di arduino software 

// www.arduino.web.id
// urut dari 0 - 9
// untuk 7segment common katoda, jika menggunakan common Anoda, silahkan
dganti "1" dengan "0"

void setup() {              


  pinMode(2, OUTPUT); 
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  digitalWrite(9, 0);  // start with the "dot" off
}

void loop() {
   // write '0'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 0);
 delay(500);
  // write '1'
 digitalWrite(2, 0);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 0);
 delay(500);
 // write '2'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 0);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 0);
 digitalWrite(8, 1);
 delay(500);
  // write '3'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 1);
 delay(500);
  // write '4'
 digitalWrite(2, 0);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(500);
 // write '5'
 digitalWrite(2, 1);
 digitalWrite(3, 0);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(500);
// write '6'
 digitalWrite(2, 1);
 digitalWrite(3, 0);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(500);
// write '7'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 0);
 delay(500);
 // write '8'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(500);
 // write '9'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(2000);

}
Seven Segment Menggunakan Push Button dengan Arduino UNO – Counter UP
November 18, 2016 by Muhammad Aldhi Nur Alam Afriyan Daumal

Bismillahirrahmanirrahim
Assalamu’alaikum warahmatullahi wabarakatuh
Pada kesempatan ini saya akan membuat project Seven
Segment Counter UP Menggunakan Push Button
dengan Arduino UNO. Disini saya akan menggunakan  pin
2 sampai 9 sebagai output dan pin 13 sebagai input pada
Arduino UNO untuk Menyalakan Seven Segmen. Serta
saya akan menjelaskan mulai dari hardware dan software
serta cara kerjanya, agar para pembaca dapat mengerti
dengan apa yang saya sampaikan. Aamiin.

Alat dan Bahan


 1 Buah Seven Segmen (Common Anode)
 1 Buah Push Button
 2 Buah Resistor 220Ω (Ohm) “untuk resistor di push
button, dapat up to 1KΩ (Ohm)”
 Kabel Jumper secukupnya
 1 Buah Protoboard
 1 Buah Arduino
Rangkaian Seven Segment Counter UP Menggunakan
Push Button dengan Arduino UNO
Sketch Seven Segment Counter UP Use Push Button
With Arduino UNO
Sketch Program :

1 //Pengaturan hardware Seven Segment pins


2 int A = 2;
3 int B = 3;
4 int C = 4;
5 int D = 6;
6 int DP = 5;
7 int E = 7;
8 int F = 8;
9 int G = 9;
10  
11 //pemberian status untuk push buttons pins, push buttons states, dan counter
12 int switchUpPin = 13;
13 int counter = 0;
14 int buttonUpState = 0;
15 int lastButtonUpState = 0;
16  
17 void setup()
18 {
19   Serial.begin(9600);
20   pinMode(A, OUTPUT);
21   pinMode(B, OUTPUT);
22   pinMode(C, OUTPUT);
23   pinMode(D, OUTPUT);
24   pinMode(E, OUTPUT);
25   pinMode(F, OUTPUT);
26   pinMode(G, OUTPUT);
27   pinMode(DP, OUTPUT);
28  
29   digitalWrite(DP ,HIGH);
30 }
31  
32 void loop()
33 {
34   //mulai dengan menggunakan push button
35   buttonUpState = digitalRead(switchUpPin);
36  
37   //Membaca push button status yang di tekan
38   //melakukan proses untuk button yang di tekan
39   if (buttonUpState != lastButtonUpState)
40   {
41     if (buttonUpState == HIGH)
42     {
43       if(counter == 9)
44       {
45         counter = -1;
46       }
47       counter++;
48       Serial.println(counter);
49       changeNumber(counter);
50       delay(300);
51     }
52     else
53     {
54         Serial.println("OFF");
55     }
56    delay(50);
57   }
58   changeNumber(counter);
59 }
60  
61 //tampilan led seven segment ketika aktif.
62 void changeNumber(int buttonPress)
63 {
64   switch (buttonPress)
65   {
66     //number 0
67     case 0:
68       digitalWrite(A, LOW);
69       digitalWrite(B, LOW);
70       digitalWrite(C, LOW);
71       digitalWrite(D, LOW);
72       digitalWrite(E, LOW);
73       digitalWrite(F, LOW);
74       digitalWrite(G, HIGH);
75       break;
76     //number 1
77     case 1:
78       digitalWrite(A, HIGH);
79       digitalWrite(B, LOW);
80       digitalWrite(C, LOW);
81       digitalWrite(D, HIGH);
82       digitalWrite(E, HIGH);
83       digitalWrite(F, HIGH);
84       digitalWrite(G, HIGH);
85       break;
86     //number 2
87     case 2:
88       digitalWrite(A, LOW);
89       digitalWrite(B, LOW);
90       digitalWrite(C, HIGH);
91       digitalWrite(D, LOW);
92       digitalWrite(E, LOW);
93       digitalWrite(F, HIGH);
94       digitalWrite(G, LOW);
95       break;
96     //number 3
97     case 3:
98       digitalWrite(A, LOW);
99       digitalWrite(B, LOW);
100       digitalWrite(C, LOW);
101       digitalWrite(D, LOW);
102       digitalWrite(E, HIGH);
103       digitalWrite(F, HIGH);
104       digitalWrite(G, LOW);
105       break;
106     //number 4
107     case 4:
108       digitalWrite(A, HIGH);
109       digitalWrite(B, LOW);
110       digitalWrite(C, LOW);
111       digitalWrite(D, HIGH);
112       digitalWrite(E, HIGH);
113       digitalWrite(F, LOW);
114       digitalWrite(G, LOW);
115       break;
116     //number 5
117     case 5:
118       digitalWrite(A, LOW);
119       digitalWrite(B, HIGH);
120       digitalWrite(C, LOW);
121       digitalWrite(D, LOW);
122       digitalWrite(E, HIGH);
123       digitalWrite(F, LOW);
124       digitalWrite(G, LOW);
125       break;
126     //number 6
127     case 6:
128       digitalWrite(A, LOW);
129       digitalWrite(B, HIGH);
130       digitalWrite(C, LOW);
131       digitalWrite(D, LOW);
132       digitalWrite(E, LOW);
133       digitalWrite(F, LOW);
134       digitalWrite(G, LOW);
135       break;
136     //number 7
137     case 7:
138       digitalWrite(A, LOW);
139       digitalWrite(B, LOW);
140       digitalWrite(C, LOW);
141       digitalWrite(D, HIGH);
142       digitalWrite(E, HIGH);
143       digitalWrite(F, HIGH);
144       digitalWrite(G, HIGH);
145       break;
146     //number 8
147     case 8:
148       digitalWrite(A, LOW);
149       digitalWrite(B, LOW);
150       digitalWrite(C, LOW);
151       digitalWrite(D, LOW);
152       digitalWrite(E, LOW);
153       digitalWrite(F, LOW);
154       digitalWrite(G, LOW);
155       break;
156     //number 9
157     case 9:
158       digitalWrite(A, LOW);
159       digitalWrite(B, LOW);
160       digitalWrite(C, LOW);
161       digitalWrite(D, LOW);
162       digitalWrite(E, HIGH);
163       digitalWrite(F, LOW);
164       digitalWrite(G, LOW);
165       break;
166   }
167 }
Demo Video Seven Segment Counter UP Use Push
Button With Arduino UNO
[youtube https://www.youtube.com/watch?v=kdYbzM-
5WPE&w=1280&h=720]
Terimakasih, saya harap blog ini dapat bermanfaat, dan
apabila ada pertanyaan jangan malu untuk bertanya
Wassalamu’alaikum warahmatullahi wabarakatuh
 

Skip to content

NYEBARILMU
smart home devices, electonics project tutorial, technology
automation, tutorial microcontroller, etc

Mobile Menu

Cara mengakses 7segment


menggunakan Arduino Uno
On 15 August 2017 In Arduino Projects Tutorial, Module Arduino Leave
a comment 

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 :  Memahami dengan mudah apa itu breadboard


atau project board

Skema rangkaian antara arduino dengan 7segment

untuk koding pemrogramannya


Kode Pemrograman

1  
2  

3 /* --- www.nyebarilmu.com --- */

4  

5 const byte numeral[11]={

6 B11111100, //untuk angka 0

7 B01100000, //untuk angka 1

8 B11011010, //untuk angka 2

9 B11110010, //untuk angka 3

10 B01100110, //untuk angka 4

11 B10110110, //untuk angka 5

12 B00111110, //untuk angka 6

13 B11100000, //untuk angka 7

14 B11111110, //untuk angka 8

15 B11100110, //untuk angka 9

16 B00000000, //tanpa menampilkan apapun

17 };

18  

19 //inisialisasi pin yang digunakan

20 const int segmentPins[8]= { 2,11,10,5,4,3,8,9 }; //dp,g,f,e,d,c,b,a

21  

22 void setup(){

23 for (int i=0; i < 8; i++){

24 pinMode(segmentPins[i], OUTPUT);

25 }}

26  

27 void loop(){

28 for (int i=0; i <=10; i++){

29 tunjukanAngka(i);
30 delay(1000);

31 }

32 delay(2000); }

33  

34 void tunjukanAngka (int number){

35 boolean isBitSet;

36 for (int segment=1; segment < 8; segment++){

37 isBitSet= bitRead(numeral[number], segment);

38 digitalWrite(segmentPins[segment], isBitSet); }

39 }

40  

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


Arduino

1  

2  

3 /* ... www.nyebarilmu.com ... */

4  
5 #include <TM1637Display.h>

6 #include <Arduino.h>

7  

8 //waktu tunda yang digunakan 3 detik

9 #define TEST_DELAY 3000

10  

11 //Pin yang digunakan

12 #define CLK 2

13 #define DIO 3

14  

15 //format inisialisasi pin

16 TM1637Display display(CLK, DIO);

17  

18 //fungsi untuk pemanggilan tulisan "sip"

19 const uint8_t SEG_sip[] = {

20 SEG_A | SEG_F | SEG_G | SEG_C | SEG_D,           // s

21 SEG_F | SEG_E,                                   // i

22 SEG_B | SEG_A | SEG_F | SEG_G | SEG_E            // p

23 };

24  

25 void fungsi_utama(){

26   int h;

27  

28 //data untuk menghidupkan led

29 uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };

30 display.setBrightness(0x0f);

31  

32   // pemanggilan nilai "data" menghidupkan semua led 7segment


33   display.setSegments(data);

34   delay(TEST_DELAY);

35  

36   // Selectively set different digits

37   data[0] = 0b01001001;

38   data[1] = display.encodeDigit(1);

39   data[2] = display.encodeDigit(2);

40   data[3] = display.encodeDigit(3);

41  

42   for(h = 3; h >= 0; h--) {

43 display.setSegments(data, 1, h);  //format perubahan data led 1

44 delay(TEST_DELAY);

45 }

46  

47   display.setSegments(data+2, 2, 2);

48   delay(TEST_DELAY);

49  

50   display.setSegments(data+2, 2, 1);

51   delay(TEST_DELAY);

52  

53   display.setSegments(data+1, 3, 1);

54   delay(TEST_DELAY);

55  

56  

57   // mendisplay nilai desimal dengan maupun tanpa leading zeros

58   bool lz = false;

59   for (uint8_t z = 0; z < 2; z++) {

60 for(k = 0; k < 10000; k += k*4 + 7) {


61 display.showNumberDec(k, lz);

62 delay(TEST_DELAY);

63 }

64 lz = true;

65   }

66  

67   // Tampilkan angka desimal yang panjangnya lebih kecil dari 4

68   for(k = 0; k < 4; k++)

69 data[k] = 0;

70   display.setSegments(data);

71  

72 // Jalankan melalui semua dot

73 for(k=0; k <= 4; k++) {

74 display.showNumberDecEx(0, (0x80 >> k), true);

75 delay(TEST_DELAY);

76 }

77  

78   display.showNumberDec(153, false, 3, 1);

79   delay(TEST_DELAY);

80   

81   display.showNumberDec(22, false, 2, 2);

82   delay(TEST_DELAY);

83   

84   display.showNumberDec(0, true, 1, 3);

85   delay(TEST_DELAY);

86   

87   display.showNumberDec(0, true, 1, 2);

88   delay(TEST_DELAY);
89   

90   display.showNumberDec(0, true, 1, 1);

91   delay(TEST_DELAY);

92   

93   display.showNumberDec(0, true, 1, 0);

94   delay(TEST_DELAY);

95  

96   // Brightness Test

97   for(h = 0; h < 4; h++)

98 data[k] = 0xff;

99   for(h = 0; h < 7; h++) {

100     display.setBrightness(k);

101     display.setSegments(data);

102     delay(TEST_DELAY);

103   }

104   

105   // On/Off test

106   for(k = 0; k < 4; k++) {

107     display.setBrightness(7, false);  // Turn off

108     display.setSegments(data);

109     delay(TEST_DELAY);

110     display.setBrightness(7, true); // Turn on

111     display.setSegments(data);

112     delay(TEST_DELAY);  

113   }

114 //jika sudah selesai akan tertampil tulisan "sip"

115   display.setSegments(SEG_sip);

116  
117   while(1);

118 }

119  

120 void setup()

121 {

122 }

123  

124 void loop()

125 {

126 //pemanggilan fungsi

127   fungsi_utama();

128 }

129  

Selamat mencoba!
Terimakasih sudah berkunjung, dan semoga bermanfaat.
Salam nyebarilmu.com!
>> CMIIW <<

Anda mungkin juga menyukai