Proyek 2 - 7-Segment Counter


Hai! Kita bertemu lagi di tutorial Arduino Buba! 
Yup kali ini, kami akan memberikan tutorial bagaimana membuat penghitung sederhana menggunakan 7-segment dan push button. For your information, layar atau display 7-segment secara sederhana merupakan salah satu perangkat display untuk menampilkan sistem angka desimal.

Persiapan
Sebelum kita membuat counter menggunakan Arduino dan 7-Segment, kita perlu mempersiapkan alat dan bahannya terlebih dahulu yaitu:
  1. Arduino Uno 
  2. Kabel USB 
  3. Kabel Jumper 
  4. Resistor 220 ohm (2 buah)
  5. LED 7-Segment 
  6. Breadboard 
  7. Push Button 
  8. Komputer yang telah diinstall software Arduino 
Dari daftar alat dan bahan di atas, kita dapat membaginya menjadi komponen input, proses, dan output. komponen yang termasuk ke dalam kategori input yaitu push button. Komponen proses diantaranya Arduino, kabel jumper, dan resistor. Sedangkan komponen outputnya adalah LED 7-segment.

Gambar 1 - Arduino Uno

Gambar 2 - Breadboard

Gambar 3 - Push Button

Gambar 4 - LED 7-Segment

Implementasi (perakitan dan pembuatan kode program)
Setelah alat dan bahannya siap, mari kita mulai merangkai. Skema rangkaiannya kurang lebih sebagai berikut.

Gambar 5 - Diagram Skematik Rangkaian 7 Segment Counter

Keterangan: 

  • Kabel biru muda menghubungkan resistor dengan ground
  • Kabel biru tua menghubungkan resistor dengan sumber daya 5V
  • Kabel merah menghubungkan push button dengan ground
  • Kabel ungu tua menghubungkan resistor dengan pin output 13
  • Kabel orange menghubungkan resistor dengan LED 7-segment
  • Kabel coklat muda menghubungkan resistor dengan LED 7-segment
  • Kabel merah tua menghubungkan LED 7-segment dengan pin input 2
  • Kabel hitam menghubungkan LED 7-segment dengan pin input 3
  • Kabel pink menghubungkan LED 7-segment dengan pin input 4
  • Kabel kuning menghubungkan LED 7-segment dengan pin input 5
  • Kabel hijau menghubungkan LED 7-segment dengan pin input 6
  • Kabel abu-abu menghubungkan LED 7-segment dengan pin input 7
  • Kabel putih menghubungkan LED 7-segment dengan pin output 8

Setelah mengikuti susunan yang terdapat pada gambar 5, kurang lebih rangkaiannya akan menjadi seperti gambar di bawah ini.

Gambar 6 - Rangkaian Arduino 7-Segment Counter

Setelah selesai merangkai, sekarang kita harus membuat kode program yang memerintahkan Arduino agar sesuai dengan keinginan kita. Buka software Arduino yang dapat diunduh di sini. Setelah software siap digunakan, ketikkan kode program yang akan digunakan. Berikut kode program yang digunakan pada proyek kali ini.

#define segA 7//connecting segment A to PIN2
#define segB 8// connecting segment B to PIN3
#define segC 4// connecting segment C to PIN4
#define segD 5// connecting segment D to PIN5
#define segE 6// connecting segment E to PIN6
#define segF 2// connecting segment F to PIN7
#define segG 3// connecting segment G to PIN8

// define variable
int counter = 9;
int counter2 = 0;
int reading;
int previous = LOW;

void setup() {
  for (int i=2;i<9 font="" i="">
    {
      pinMode(i,OUTPUT); // define pins 2-8 OUTPUT
    }
  pinMode(13, INPUT); // define pin 13 INPUT
  Serial.begin(9600);
}

void loop() {
  reading = digitalRead(13);
  if (reading == HIGH && previous == LOW) {
    if (counter == 9 && counter2 == 1){
      counter = (counter+1);
    }
    counter = (counter+1) % 11;
  }
  digit(counter);
  previous = reading;
}

void digit(int num) { // set the 7-segment LED
  switch (num) {
    case 0 :
      // write '0'
      Serial.println("0\n");
      digitalWrite(segA,1);
      digitalWrite(segB,1);
      digitalWrite(segC,1);
      digitalWrite(segD,1);
      digitalWrite(segE,1);
      digitalWrite(segF,1);
      digitalWrite(segG,0);
      break;
    case 1 :
      // write '1'
      Serial.println("1\n");
      digitalWrite(segA,0);
      digitalWrite(segB,1);
      digitalWrite(segC,1);
      digitalWrite(segD,0);
      digitalWrite(segE,0);
      digitalWrite(segF,0);
      digitalWrite(segG,0);
      break;
    case 2 :
      // write '2'
      Serial.println("2\n");
      digitalWrite(segA,1);
      digitalWrite(segB,1);
      digitalWrite(segC,0);
      digitalWrite(segD,1);
      digitalWrite(segE,1);
      digitalWrite(segF,0);
      digitalWrite(segG,1);
      break;
    case 3 :
      // write '3'
      Serial.println("3\n");
      digitalWrite(segA,1);
      digitalWrite(segB,1);
      digitalWrite(segC,1);
      digitalWrite(segD,1);
      digitalWrite(segE,0);
      digitalWrite(segF,0);
      digitalWrite(segG,1);
      break;
    case 4 :
      // write '4'
      Serial.println("4\n");
      digitalWrite(segA,0);
      digitalWrite(segB,1);
      digitalWrite(segC,1);
      digitalWrite(segD,0);
      digitalWrite(segE,0);
      digitalWrite(segF,1);
      digitalWrite(segG,1);
      break;
    case 5 :
      // write '5'
      Serial.println("5\n");
      digitalWrite(segA,1);
      digitalWrite(segB,0);
      digitalWrite(segC,1);
      digitalWrite(segD,1);
      digitalWrite(segE,0);
      digitalWrite(segF,1);
      digitalWrite(segG,1);
      break;
    case 6 :
      // write '6'
      Serial.println("6\n");
      digitalWrite(segA,1);
      digitalWrite(segB,0);
      digitalWrite(segC,1);
      digitalWrite(segD,1);
      digitalWrite(segE,1);
      digitalWrite(segF,1);
      digitalWrite(segG,1);
      break;
    case 7 :
      // write '7'
      Serial.println("7\n");
      digitalWrite(segA,1);
      digitalWrite(segB,1);
      digitalWrite(segC,1);
      digitalWrite(segD,0);
      digitalWrite(segE,0);
      digitalWrite(segF,0);
      digitalWrite(segG,0);
      break;
    case 8 :
      // write '8'
      Serial.println("8\n");
      digitalWrite(segA,1);
      digitalWrite(segB,1);
      digitalWrite(segC,1);
      digitalWrite(segD,1);
      digitalWrite(segE,1);
      digitalWrite(segF,1);
      digitalWrite(segG,1);
      counter2 = 1;
      break;
    case 9 :
      // write '9'
      Serial.println("9\n");
      digitalWrite(segA,1);
      digitalWrite(segB,1);
      digitalWrite(segC,1);
      digitalWrite(segD,1);
      digitalWrite(segE,0);
      digitalWrite(segF,1);
      digitalWrite(segG,1);
      break;
    default :
      // default off
      Serial.println("off\n");
      digitalWrite(segA,0);
      digitalWrite(segB,0);
      digitalWrite(segC,0);
      digitalWrite(segD,0);
      digitalWrite(segE,0);
      digitalWrite(segF,0);
      digitalWrite(segG,0);
      break;
  }
}

Hubungkan Arduino yang telah dirangkai dengan komputer menggunakan kabel USB, kemudian jalankan source code yang telah dibuat. LED yang tertanam pada board Arduino akan berkedip jika kode yang kita buat berhasil dieksekusi oleh Arduino.

Gambar 7 - Source code berhasil dieksekusi oleh Arduino

Pengujian
Setelah kode program berhasil diupload ke Arduino, kini kita perlu melakukan pengujian apakah rangkaian kita sudah benar. Rangkaian kita dapat dikatakan benar jika saat pertama kali setelah diupload 7-segment berada pada keadaan mati, kemudian setelah push button ditekan, LED 7-segment menampilkan angka 0 dan angka tersebut terus bertambah hingga angka 9. Setelah mencapai angka 9 dan push button ditekan sekali lagi, maka 7-segment akan kembali menampilkan angka 0. Agar tidak bingung, berikut video pengujiannya.


Selamat mencoba dan sampai jumpa di tutorial selanjutnya!
*ngerjainnya kecepetan*

Our Team
18214018 Mahbub Haq Al Farisi
18214030 Rezha Kusuma Astri
18214054 Edvin William Handoko

II3231 - Interaksi Manusia Komputer dan Antarmuka
Diberdayakan oleh Blogger.