Score Board dengan Seven Segment Menggunakan Arduino UNO

Bismillahirrahmanirrahim

Assalamu’alaikum warahmatullahi wabarakatuh

Pada Project-Project sebelumnya telah saya jelaskan seputar Seven Segmet, mulai dari Seven Segment – Counter 0 sampai 9Seven Segment – Counter Down, Seven Segment – Counter Up dan Seven Segment – Counter Up & Down. Dan untuk pertemuan sekarang saya akan mencoba Project Score Broard Dengan Seven Segment Menggunakan Arduino UNO.

Project Score Board ini saya akan menggunakan pin 2 sampai 9 pada Arduino UNO sebagai Output dan untuk pin 13 dan 12 sebagai input pada Arduino UNO. Pada pin 13 berfungsi untuk menambah score di Seven Segment dan pin 12 berfungsi untuk Restart Score di Seven Segment. dan untuk lebih lanjutnya saya akan menjelaskan mulai dari hardware, software dan cara kerjanya, agar para pembaca dapat mengerti dengan apa yang saya sampaikan. Aamiin.

Alat dan Bahan

  • 1 Buah Seven Segmen (Common Anode)
  • 2 Buah Push Button
  • 3 Buah Resistor 220Ω (Ohm) “untuk resistor di push button, dapat up to 1KΩ (Ohm)”
  • Kabel Jumper secukupnya
  • 1 Buah Protoboard
  • 1 Buah Arduino

Rangkaian Score Broard Dengan Seven Segment Menggunakan Arduino UNO

seven-segment-counter-up-dan-down-dengan-push-button-menggunakan-arduino-uno

Sketch Score Broard Dengan Seven Segment Menggunakan Arduino UNO

Sketch Program :

int A = 2;
int B = 3;
int C = 4;
int D = 6;
int DP = 5;
int E = 7;
int F = 8;
int G = 9;

int switchUpPin = 13;
int switchDownPin = 12;
int counter = 0;
int counter0 = 0;
int buttonUpState = 0;
int lastButtonUpState = 0;
int buttonDownState = 0;
int lastButtonDownState = 0;

void setup() 
{
  Serial.begin(9600);
  
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(DP, OUTPUT);

  digitalWrite(DP ,HIGH);
}

void loop() 
{
  buttonUpState = digitalRead(switchUpPin);
  buttonDownState = digitalRead(switchDownPin);

  if (buttonUpState != lastButtonUpState) 
  {
    if (buttonUpState == HIGH) 
    {
      if(counter == 9)
      {
        counter = -1;
      }
      counter++;
      Serial.println(counter);
      changeNumber(counter);
      delay(300);
    }
    else
    {
        Serial.println("OFF");
    }
   delay(50);
  }


  if (buttonDownState == HIGH) 
  {
    counter*=counter0;
    digitalWrite(A, LOW);
    digitalWrite(B, LOW);
    digitalWrite(C, LOW);
    digitalWrite(D, LOW);
    digitalWrite(E, LOW);
    digitalWrite(F, LOW);
    digitalWrite(G, HIGH);
    delay (100);
  }
  else
  {
    Serial.println("OFF");
    delay(100);
  }
  delay(50);
}






void changeNumber(int buttonPress)
{
  switch (buttonPress)
  {
    //number 0
    case 0:
      digitalWrite(A, LOW);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, LOW);
      digitalWrite(E, LOW);
      digitalWrite(F, LOW);
      digitalWrite(G, HIGH);
      break;
    //number 1
    case 1:
      digitalWrite(A, HIGH);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, HIGH);
      digitalWrite(E, HIGH);
      digitalWrite(F, HIGH);
      digitalWrite(G, HIGH);
      break;
    //number 2
    case 2:
      digitalWrite(A, LOW);
      digitalWrite(B, LOW);
      digitalWrite(C, HIGH);
      digitalWrite(D, LOW);
      digitalWrite(E, LOW);
      digitalWrite(F, HIGH);
      digitalWrite(G, LOW);
      break;
    //number 3
    case 3:
      digitalWrite(A, LOW);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, LOW);
      digitalWrite(E, HIGH);
      digitalWrite(F, HIGH);
      digitalWrite(G, LOW);
      break;
    //number 4
    case 4:
      digitalWrite(A, HIGH);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, HIGH);
      digitalWrite(E, HIGH);
      digitalWrite(F, LOW);
      digitalWrite(G, LOW);
      break;
    //number 5
    case 5:
      digitalWrite(A, LOW);
      digitalWrite(B, HIGH);
      digitalWrite(C, LOW);
      digitalWrite(D, LOW);
      digitalWrite(E, HIGH);
      digitalWrite(F, LOW);
      digitalWrite(G, LOW);
      break;
    //number 6
    case 6:
      digitalWrite(A, LOW);
      digitalWrite(B, HIGH);
      digitalWrite(C, LOW);
      digitalWrite(D, LOW);
      digitalWrite(E, LOW);
      digitalWrite(F, LOW);
      digitalWrite(G, LOW);
      break;
    //number 7
    case 7:
      digitalWrite(A, LOW);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, HIGH);
      digitalWrite(E, HIGH);
      digitalWrite(F, HIGH);
      digitalWrite(G, HIGH);
      break;
    //number 8
    case 8:
      digitalWrite(A, LOW);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, LOW);
      digitalWrite(E, LOW);
      digitalWrite(F, LOW);
      digitalWrite(G, LOW);
      break;
    //number 9
    case 9:
      digitalWrite(A, LOW);
      digitalWrite(B, LOW);
      digitalWrite(C, LOW);
      digitalWrite(D, LOW);
      digitalWrite(E, HIGH);
      digitalWrite(F, LOW);
      digitalWrite(G, LOW);
      break;
  }
}

Keterangan :

  • Fungsi void setup () dalam sebuah program arduino adalah semua perintah yang akan di baca sekali.
  • Fungsi void loop () dalam sebuah program arduino adalah semua perintah yang akan di baca berulang-ulang.

Demo Video Score Broard Dengan Seven Segment Menggunakan Arduino UNO

[youtube https://www.youtube.com/watch?v=40n_ouoPL-s&w=1280&h=720]

Saya harap blog ini dapat bermanfaat, dan apabila ada pertanyaan jangan malu untuk bertanya.

Terimakasih.

Wassalamu’alaikum warahmatullahi wabarakatuh.

Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments