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
// [Link]
// 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 [Link](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 [Link](counter);
49 changeNumber(counter);
50 delay(300);
51 }
52 else
53 {
54 [Link]("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 [Link]
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 /* --- [Link] --- */
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 /* ... [Link] ... */
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 [Link](0x0f);
31
32 // pemanggilan nilai "data" menghidupkan semua led 7segment
33 [Link](data);
34 delay(TEST_DELAY);
35
36 // Selectively set different digits
37 data[0] = 0b01001001;
38 data[1] = [Link](1);
39 data[2] = [Link](2);
40 data[3] = [Link](3);
41
42 for(h = 3; h >= 0; h--) {
43 [Link](data, 1, h); //format perubahan data led 1
44 delay(TEST_DELAY);
45 }
46
47 [Link](data+2, 2, 2);
48 delay(TEST_DELAY);
49
50 [Link](data+2, 2, 1);
51 delay(TEST_DELAY);
52
53 [Link](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 [Link](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 [Link](data);
71
72 // Jalankan melalui semua dot
73 for(k=0; k <= 4; k++) {
74 [Link](0, (0x80 >> k), true);
75 delay(TEST_DELAY);
76 }
77
78 [Link](153, false, 3, 1);
79 delay(TEST_DELAY);
80
81 [Link](22, false, 2, 2);
82 delay(TEST_DELAY);
83
84 [Link](0, true, 1, 3);
85 delay(TEST_DELAY);
86
87 [Link](0, true, 1, 2);
88 delay(TEST_DELAY);
89
90 [Link](0, true, 1, 1);
91 delay(TEST_DELAY);
92
93 [Link](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 [Link](k);
101 [Link](data);
102 delay(TEST_DELAY);
103 }
104
105 // On/Off test
106 for(k = 0; k < 4; k++) {
107 [Link](7, false); // Turn off
108 [Link](data);
109 delay(TEST_DELAY);
110 [Link](7, true); // Turn on
111 [Link](data);
112 delay(TEST_DELAY);
113 }
114 //jika sudah selesai akan tertampil tulisan "sip"
115 [Link](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 [Link]!
>> CMIIW <<