I. TUJUAN
1. Mahasiswa memahami rangkaian interface mikrokontroller dengan 7 segmen
2. Mahasiswa dapat memahami program Arduino untuk menampilkan data ke 7 segment
3. Mahasiswa memahami beberapa instruksi Arduino dasar, array data dan bitRead.
4. Mahasiswa memahami rangkaian mikrokontroller dengan interface ke saklar.
5. Mahasiswa dapat memahami program Arduino untuk mengambil data saklar dan
mengeluarkan data ke LED.
6. Mahasiswa memahami beberapa instruksi Arduino dasar, digitalRead, if, dan for.
II. PERALATAN
1. Arduino board connected to the computer via USB
2. Breadboard dan kabel jumper
3. 7-segment
4. Resistors 220–1,000 ohm
5. Sebuah Komputer /Laptop
6. Saklar push button
7. Resistor antara 1K–100K ohm
A. Seven Segment
Seven segment merupakan segment-segment yang digunakan untuk menampilkan angka-
angka atau huruf. Seven segment ini tersusun atas 7 buah LED yang membentuk
membentuk angka atau huruf dimana penyusunnya menggunakan label dari ‘a’ sampai ‘g’
dan satu lagi untuk dot point (DP). Salah satu terminal LED dihubungkan menjadi satu
sebagai kaki common (biasanya pin-nya berada ditengah).
Pin 3 dan 8 = untuk mengaktifkan seven segment diberikan logika high (common anode)
dan logika low (common cathode). Jenis-jenis Seven Segment:
Prinsip Kerja :
Prinsip kerja seven segment ialah input biner pada switch dikonversikan masuk ke dalam
decoder, baru kemudian decoder mengkonversi bilangan biner tersebut menjadi decimal,
yang nantinya akan ditampilkan pada seven segment.
Seven segment dapat menampilkan angka-angka desimal dan beberapa karakter tertentu
melalui kombinasi aktif atau tidaknya LED dalam seven segment. Untuk memudahkan
penggunaan seven segment, umumnya digunakan sebuah decoder( mengubah/ mengkoversi
input bilangan biner menjadi decimal) atau seven segment driver yang akan mengatur aktif
tidaknya led-led dalam seven segment sesuai dengan nilai biner yang diberikan.
Dekoder BCD ke seven segment digunakan untuk menerima masukan BCD 4-bit dan
memberikan keluaran yang melewatkan arus melalui segmen untuk menampilkan angka
desimal. Jenis dekoder BCD ke seven segment ada dua macam yaitu dekoder yang
berfungsi untuk menyalakan seven segment mode common anoda dan dekoder yang
berfungsi untuk menyalakan seven segment mode common katoda.
Langkah Kerja :
1. Pasang 7-segment dalam breadboard
2. Jika menggunakan konfigurasi anode (+), hubungkan anoda (+) ke VCC di arduino ( 5 v
atau 3.3 v). Jika menggunakan konfigurasi katoda (-), hubungkan katode dengan ground
dari Arduino.
3. Hubungkan setiap kaki dari 7-segmen pada pin digital yang digunakan. Setiap pin
output digunakan resistor untuk mengamankan LED dari seven segmen.
Skema Rangkaian :
Gambar 3.3 Skema rangkaian 7-Segment
Dengan skema rangkaian diatas akan bisa dibuat rangkaian dengan menggunakan arduino
dan resistor seperti berikut :
Kode Program :
Akan menampilkan 7-segment dengan tampilan dari 3 sampai 0 dan restart dari awal.
void setup() {
// Declare the pins as Outputs
pinMode(pinUP, OUTPUT);
pinMode(pinUPR, OUTPUT);
pinMode(pinDWR, OUTPUT);
pinMode(pinDW, OUTPUT);
pinMode(pinDWL, OUTPUT);
pinMode(pinUPL, OUTPUT);
pinMode(pinCT, OUTPUT);
}
}
// If we want to write 1
if (value == 1)
{ digitalWrite(pinUPR, LOW);
digitalWrite(pinUP, LOW);
digitalWrite(pinCT, LOW);
digitalWrite(pinDWR, LOW);
digitalWrite(pinDW, LOW);
}
// If we want to write 2 if
(value == 2){
digitalWrite(pinUPL, LOW);
//digitalWrite(pinCT, LOW);
//digitalWrite(pin, LOW);
digitalWrite(pinDWR, LOW);
//digitalWrite(pinDW, LOW);
}
// If we want to write 3 if
(value == 3){
//digitalWrite(pinUP, LOW);
digitalWrite(pinUPL, LOW);
//digitalWrite(pinCT, LOW);
digitalWrite(pinDWL, LOW);
//digitalWrite(pinDW, LOW);
}
}
void loop(){
// A resetting count-down
writeNumber(3); delay(1000);
/*writeNumber(2);
delay(1000);
writeNumber(1);
delay(1000);
writeNumber(0);
delay(1000);*/
}
Penjelasan kode :
2. Mengkonfigurasikan pemakaian pin pada arduino sesui dengan nilai variabel yang
diberikan.
void setup() {
// Declare the pins as Outputs
pinMode(pinUP, OUTPUT);
pinMode(pinUPR, OUTPUT);
pinMode(pinDWR, OUTPUT);
pinMode(pinDW, OUTPUT);
pinMode(pinDWL, OUTPUT);
pinMode(pinUPL, OUTPUT);
pinMode(pinCT, OUTPUT);
}
3. Dengan memanggil fungsi writeNumber() ini kita bisa mematikan semua LED
yang semula dihidupkan pada tiap kaki-kaki 7-segmen dan memberikan nilai pada kaki
yang diinginkan sesuai dengan nilai inputan.
Sederhananya fungsi ini digunakan untuk mereset dan mengkonfigurasikan sesuai
dengan nilai angka yang diinginkan.
if (value == 1){
digitalWrite(pinUPR, LOW);
digitalWrite(pinDWR, LOW);
}
...
}
4. Dalam fungsi loop() akan mengeksekusi fungsi write dengan parameter yang akan
digunakan untuk konfigurasi LED pada 7-segment.
void loop(){
writeNumber(2);
delay(1000);
writeNumber(1);
delay(1000);
writeNumber(0);
delay(1000);
}
Tampilan akan bertahan dengan memanggil fungsi delay() dengan parameter 1000
yang berarti 1000ms atau 1 detik.
B. MULTI-SEVEN SEGMENT
Percobaan kali ini akan menggunakan 7-segment seri 4 buah atau sering dituliskan 4 x 7-
segment. Penggunaan multi display ini sama aturannya dengan menggunakan single display,
yaitu seven segment akan menganut common anode da common cathode tergantung
pemberian daya pada konfigurasi pinnya. Untuk konfigurasi Pin untuk tiap segment harus
digunakan mode digit untuk mengatur pengaktifan tiap segment nya. Dengan
mengendalikan digit yang ditampilkan kita bisa kendalikan display meskipun nilai sudah
diberikan. Misal kita sudah definisikan nilai untuk segment ke-2 dengan nilai desimal 5, tapi
ketika kita tidak set segment ke-2 tersebut aktif maka tidak akan ditampilkan nilai desimal 5
tersebut. Pada penggunaan multi segment hanya akan ada 1 digit yang aktif pada satu
waktu, sehingga pengkonfigurasian untuk 4 digit membutuhkan 4 step pemindahan digit dan
pemberian nilai.
Gambar 3.6 Rangkaian 4 x 7-segment
Pada komponen yang dijual dipasaran banyak varian yang harus kita lihat detail dari
komposisi komponen tersebut melalui datasheet yang biasanya sudah disediakan oleh
produsen pembuat komponen. Gambar 3.7 berikut merupakan komponen yang kita punyai
dalam lab, dan penggunaanya akan berbeda jika menggunakan komponen yang berbeda,
begitupula kode programnya.
Untuk percobaan konfigurasikan pin arduino dan display seperti berikut dibawah :
Gambar 3.8 Konfigurasi posisi dan nilai pin Konfigurasikan sesuai
dengan tabel
A 1 2 3 4 5 6 7 8 9 10 11 12
B 11 7 4 2 1 10 5 3 12 9 8 6
(A) (B) (C) (D) (E) (F) (G) (P) (D1) (D2) (D3) (D4)
A : Pin ArduinoUNO B :
Pin Display
Kode Program
Kode program berikut untuk common anode, yang akan menjalankan penambahan desimal
secara increment dengan menggunakan fungsi millis() yang build in di arduino IDE.
void setup() {
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
pinMode(digit1, OUTPUT);
pinMode(digit2, OUTPUT);
pinMode(digit3, OUTPUT);
pinMode(digit4, OUTPUT);
pinMode(13, OUTPUT);
}
void loop()
{ displayNumber(millis()/1000);
}
void displayNumber(int toDisplay)
{ #define DISPLAY_BRIGHTNESS 1000
delayMicroseconds(DISPLAY_BRIGHTNESS);
//Display digit for fraction of a second (1us to 5000us,
500 is pretty good)
switch (numberToDisplay)
{ case 0:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_OFF);
break;
case 1:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
break;
case 2:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_OFF);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_ON);
break;
case 3:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_ON);
break;
case 4:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 5:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 6:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 7:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
break;
case 8:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 9:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON); break;
case 10:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_OFF);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
break;
}
}
pinMode(digit1, OUTPUT);
pinMode(digit2, OUTPUT);
pinMode(digit3, OUTPUT);
pinMode(digit4, OUTPUT);
3. Memulai loop() dengan memanggil fungsi millis() yang akan digunakan sebagai timer
dengan nilai perubahan per miliseconds.
void loop() {
displayNumber(millis()/1000);
Dengan script di dalam loop tersebut akan mengkonversi nilai hasil eksekusi fungsi
millis() dibagi 1000 sehingga dihasilkan 1, yang dimanfaatkan sebagai increment
desimal. Karena fungsi millis akan mengembalikan nilai dalam millisecond dihitung
sejak arduino board menyala. Penapungnya harus long integer.
Fungsi displayNumber() akan mengkonfigurasikan nilai sesuai dengan digit yang harus
dihidupkan sesuai dengan nilai desimal yang harus ditampilkan.
Nilai yang dapat diberikan dari 1 sampai 5000 dengan status kenyamanan dan konsumsi
daya :
• 5000 blindingly bright (15.7mA current draw per digit)
• 2000 shockingly bright (11.4mA current draw per digit)
• 1000 pretty bright (5.9mA)
• 500 normal (3mA)
• 200 dim but readable (1.4mA)
• 50 dim but readable (0.56mA)
• 5 dim but readable (0.31mA)
• 1 dim but readable in dark (0.28mA)
C. PUSH BUTTON
Sebuah lampu adalah perangkat sederhana dengan dua posisi, menghidupkan dan
mematikan. Ketika di dua kawat yang terhubung di dalam, yang memungkinkan arus
mengalir. Ketika off, dua kabel terputus dan berarti arus terputus.
Push Button adalah saklar tekan yang berfungsi untuk menghubungkan atau memisahkan
bagian – bagian dari suatu instalasi listrik satu sama lain (suatu sistem saklar tekan push
button terdiri dari saklar tekan start. Pada dasarnya, terdapat 2 jenis Push-Button di pasaran:
Push-On dan Push- Off . Tetapi yang kita gunakan pada tutorial ini adalah yang berjenis
Push-On, yaitu komponen yang terdiri atas dua kutub yang saling terpisah / tidak terhubung,
dan sebuah tombol yang ketika ditekan akan menghubungkan kedua kutub tersebut
sehingga akan mengalirkan arus listrik dari satu sisi kutub ke sisi kutub berikutnya.
Dengan 4 kaki tersebut, jika tombol ditekan otomatis semua pin yang ada pada kedua elips
merah tersebut akan terhubung keempat-empatnya.
Kode Program
// Declare the pins for the Button and the LED int
buttonPin = 2;
int LED = 13;
void setup() {
// Define pin #2 as input
pinMode(buttonPin, INPUT);
// Define pin #13 as output, for the LED
pinMode(LED, OUTPUT);
}
void loop() {
// Read the value of the input. It can either be 1 or 0.
int buttonValue = digitalRead(buttonPin); if
(buttonValue == HIGH) {
// If button pushed, turn LED on
digitalWrite(LED,HIGH);
} else {
// Otherwise, turn the LED off
digitalWrite(LED, LOW);
}
}
// Declare the pins for the Button and the LED int
buttonPin = 2;
int LED = 13;
2. Mengkonfigurasikan pin 2 menjadi bersifat sebagai input dan pin 13 sebagai output
void setup() {
// Define pin #2 as input
pinMode(buttonPin, INPUT);
// Define pin #13 as output, for the LED
pinMode(LED, OUTPUT);
}
3. Dengan menggunakan fungsi digitalRead pada pin 2, maka jika pin 2 dalam keadaan
high atau 1 maka pin 13 high atau Led akan menyala, jika pin 2 keadaan low atau 0
maka pin 13 bernilai low yang berarti led padam.
void loop() {
// Read the value of the input. It can either be 1 or 0.
int buttonValue = digitalRead(buttonPin); if
(buttonValue == HIGH) {
// If button pushed, turn LED on
digitalWrite(LED,HIGH);
} else {
// Otherwise, turn the LED off
digitalWrite(LED, LOW);
}
}
Buat konfigurasi yang dibutuhkan untuk menampilkan kode program berikut dalam 4 x 7-
segment.
//segments int a
= 1;//a int b =
2;//b int c =
3;//c int d =
4;//d int e =
5;//e int f =
6;//f int g =
7;//g
int p = 8;//dot
//digits int d4
= 9; int d3 =
10; int d2 = 11;
int d1 = 12;
//other
int del = 100;
int buttoncount = 0; int
loopcount = 0;
void setup()
{
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT);
pinMode(d4, OUTPUT);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(p, OUTPUT);
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(p, HIGH);
}
void loop()
{
roulette(2);
delay(500);
zigzag(2);
delay(500);
circles(2);
delay(500);
flash();
delay(1000);
void pickDigit(int x)
{
digitalWrite(d1, LOW);
digitalWrite(d2, LOW);
digitalWrite(d3, LOW);
digitalWrite(d4, LOW);
switch(x)
{
case 1:
digitalWrite(d1, HIGH);
break;
case 2:
digitalWrite(d2, HIGH);
break;
case 3:
digitalWrite(d3, HIGH);
break;
default:
digitalWrite(d4, HIGH);
break;
}
}
void clearLEDs()
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(p, HIGH);
}
void roulette(int x)
{
loopcount = 0;
while (loopcount < x)
{
clearLEDs();
digitalWrite(a, LOW);
//digitalWrite(p, LOW);
pickDigit(1); delay(del);
pickDigit(2); delay(del);
pickDigit(3); delay(del);
pickDigit(4); delay(del);
digitalWrite(a, HIGH);
digitalWrite(f, LOW);
delay(del); digitalWrite(f,
HIGH); digitalWrite(e,
LOW); delay(del);
digitalWrite(e, HIGH);
digitalWrite(d, LOW);
delay(del); pickDigit(3);
delay(del); pickDigit(2);
delay(del); pickDigit(1);
delay(del);
digitalWrite(d, HIGH);
digitalWrite(c, LOW);
delay(del);
digitalWrite(c, HIGH);
digitalWrite(b, LOW);
delay(del);
digitalWrite(b, HIGH);
//delay(del);
loopcount++;
}
}
void zigzag(int x)
{
loopcount = 0;
while(loopcount < x)
{
digitalWrite(a, LOW);
pickDigit(1); delay(del);
pickDigit(2); delay(del);
pickDigit(3); delay(del);
pickDigit(4); delay(del);
digitalWrite(a, HIGH);
digitalWrite(f, LOW);
delay(del);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
delay(del); pickDigit(3);
delay(del); pickDigit(2);
delay(del); pickDigit(1);
delay(del);
digitalWrite(g, HIGH);
digitalWrite(c, LOW);
delay(del);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
delay(del); pickDigit(2);
delay(del); pickDigit(3);
delay(del); pickDigit(4);
delay(del);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
delay(del);
digitalWrite(e, HIGH);
digitalWrite(g, LOW);
delay(del); pickDigit(3);
delay(del); pickDigit(2);
delay(del); pickDigit(1);
delay(del);
digitalWrite(g, HIGH);
digitalWrite(b, LOW);
delay(del);
clearLEDs();
loopcount++;
}
}
void circles(int x)
{
loopcount = 0;
while (loopcount < x)
{
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
pickDigit(1); delay(250);
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(f, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
pickDigit(2); delay(250);
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(f, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
pickDigit(3); delay(250);
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(f, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
pickDigit(4); delay(250);
clearLEDs(); loopcount++;
}
}
//tampilan 0000 untuk semua segmen
void nyala()
{
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(d1, HIGH);
digitalWrite(d2, HIGH);
digitalWrite(d3, HIGH);
digitalWrite(d4, HIGH);
}
void flash()
{
int i; for(i=0;i<5;i+
+){
nyala();delay(250);
clearLEDs();delay(500);
nyala(); i+
+;
}
}
a. Roulette
b. Zigzag
c. Circle
d. Flash
#define SegA 12
#define SegB 11
#define SegC 10
#define SegD 9
#define SegE 8
#define SegF 7
#define SegG 6
#define Dig1 5
#define Dig2 4
#define Dig3 3
#define Dig4 2
byte current_digit;
int count = 0;
void setup()
{
pinMode(button, INPUT_PULLUP);
pinMode(SegA, OUTPUT);
pinMode(SegB, OUTPUT);
pinMode(SegC, OUTPUT);
pinMode(SegD, OUTPUT);
pinMode(SegE, OUTPUT);
pinMode(SegF, OUTPUT);
pinMode(SegG, OUTPUT);
pinMode(Dig1, OUTPUT);
pinMode(Dig2, OUTPUT);
pinMode(Dig3, OUTPUT);
pinMode(Dig4, OUTPUT);
disp_off();
TCCR1A = 0;
TCCR1B = 1;
TCNT1 = 0;
TIMSK1 = 1;
}
ISR(TIMER1_OVF_vect)
{
disp_off(); // turn off the display
switch (current_digit)
{
case 1:
disp(count / 1000); // prepare to display digit 1 (most left)
digitalWrite(Dig1, LOW); // turn on digit 1
break;
case 2:
disp( (count / 100) % 10); // prepare to display digit 2
digitalWrite(Dig2, LOW); // turn on digit 2
break;
case 3:
disp( (count / 10) % 10); // prepare to display digit 3
digitalWrite(Dig3, LOW); // turn on digit 3
break;
case 4:
disp(count % 10); // prepare to display digit 4 (most right)
digitalWrite(Dig4, LOW); // turn on digit 4
}
current_digit = (current_digit % 4) + 1;
}
void loop()
{
if(digitalRead(button) == 0)
{
count++; // increment 'count' by 1
if(count > 9999)
count = 0;
delay(200); // wait 200 milliseconds
}
}
case 1: // print 1
digitalWrite(SegA, HIGH);
digitalWrite(SegB, LOW);
digitalWrite(SegC, LOW);
digitalWrite(SegD, HIGH);
digitalWrite(SegE, HIGH);
digitalWrite(SegF, HIGH);
digitalWrite(SegG, HIGH);
break;
case 2: // print 2
digitalWrite(SegA, LOW);
digitalWrite(SegB, LOW);
digitalWrite(SegC, HIGH);
digitalWrite(SegD, LOW);
digitalWrite(SegE, LOW);
digitalWrite(SegF, HIGH);
digitalWrite(SegG, LOW);
break;
case 3: // print 3
digitalWrite(SegA, LOW);
digitalWrite(SegB, LOW);
digitalWrite(SegC, LOW);
digitalWrite(SegD, LOW);
digitalWrite(SegE, HIGH);
digitalWrite(SegF, HIGH);
digitalWrite(SegG, LOW);
break;
case 4: // print 4
digitalWrite(SegA, HIGH);
digitalWrite(SegB, LOW);
digitalWrite(SegC, LOW);
digitalWrite(SegD, HIGH);
digitalWrite(SegE, HIGH);
digitalWrite(SegF, LOW);
digitalWrite(SegG, LOW);
break;
case 5: // print 5
digitalWrite(SegA, LOW);
digitalWrite(SegB, HIGH);
digitalWrite(SegC, LOW);
digitalWrite(SegD, LOW);
digitalWrite(SegE, HIGH);
digitalWrite(SegF, LOW);
digitalWrite(SegG, LOW);
break;
case 6: // print 6
digitalWrite(SegA, LOW);
digitalWrite(SegB, HIGH);
digitalWrite(SegC, LOW);
digitalWrite(SegD, LOW);
digitalWrite(SegE, LOW);
digitalWrite(SegF, LOW);
digitalWrite(SegG, LOW);
break;
case 7: // print 7
digitalWrite(SegA, LOW);
digitalWrite(SegB, LOW);
digitalWrite(SegC, LOW);
digitalWrite(SegD, HIGH);
digitalWrite(SegE, HIGH);
digitalWrite(SegF, HIGH);
digitalWrite(SegG, HIGH);
break;
case 8: // print 8
digitalWrite(SegA, LOW);
digitalWrite(SegB, LOW);
digitalWrite(SegC, LOW);
digitalWrite(SegD, LOW);
digitalWrite(SegE, LOW);
digitalWrite(SegF, LOW);
digitalWrite(SegG, LOW);
break;
case 9: // print 9
digitalWrite(SegA, LOW);
digitalWrite(SegB, LOW);
digitalWrite(SegC, LOW);
digitalWrite(SegD, LOW);
digitalWrite(SegE, HIGH);
digitalWrite(SegF, LOW);
digitalWrite(SegG, LOW);
}
}
void disp_off()
{
digitalWrite(Dig1, HIGH);
digitalWrite(Dig2, HIGH);
digitalWrite(Dig3, HIGH);
digitalWrite(Dig4, HIGH);
}
3. Hasil Praktik
void setup()
{
// inisiasi pin LED sebagai OUTPUT
pinMode(LEDPin, OUTPUT);
// inisiasi pin tombol sebagai INPUT
pinMode(buttonPin, INPUT);
}
void loop()
{
// baca status tombol apakah LOW atau HIGH
value = digitalRead(buttonPin);
// jika status tombol HIGH maka
if (value == HIGH)
{
// menyalakan LED
digitalWrite(LEDPin, HIGH);
}
// jika status tombol selain HIGH maka
else
{
// mematikan LED
digitalWrite(LEDPin, LOW);
}
}
3. Hasil Praktik