Senin, 13 Februari 2017

7 Segment dengan Push Button



Halo teman-teman! berjumpa lagi dengan saya di blog ini. Kali ini saya akan memberikan tutorial mengenai bagaimana cara membuat sebuah 7 segment untuk bertambah nilainya dengan menekan tombol yang sudah dipasang. Sebelumnya apa itu 7 segment? 7 segment merupakan salah satu display pada arduino yang mirip seperti display countdown lampu merah di jalan. Pada tutorial ini 7 segment hanya bisa bertambah dan tidak bisa dikurangi.

Sebelum membuatnya, teman- teman seperti biasa perlu mencari komponen yang dibutuhkan. Berikut ini adalah list material yang dibutuhkan untuk membuat 7 segment dengan push button.

  1. Arduino Board
  2. BreadBoard
  3. 4 Resistor 470 ohm
  4. 1 7 Segment
  5. 1 Push Button
  6. Kabel male to male
Setelah teman-teman memiliki komponen yang dibutuhkan, maka hal selanjutnya adalah merangkai komponen tersebut. Pada kali ini saya tidak memberikan skema untuk melatih teman-teman supaya lebih mengerti mengenai arduino. Berikut ini adalah langkah yang perlu dilakukan teman-teman.

1. Pasang slot arduino 5v ke kutub positif dari breadboard dan pasang GND ke kutub negatif dari breadboard
List Pin 7 Segment

2. Pasang kaki 7 segment dengan pin sebagai berikut
  1. 7-Segment pin 1 ke Arduino pin 6
  2. 7-Segment pin 2 ke Arduino pin 5
  3. 7-Segment pin 3 ke kutub positif Breadboard  melalui resistor terlebih dahulu
  4. 7-Segment pin 4 ke Arduino pin 4
  5. 7-Segment pin 5 ke Arduino pin 7
  6. 7-Segment pin 6 ke Arduino pin 2
  7. 7-Segment pin 7 ke Arduino pin 3
  8. 7-Segment pin 8 kutub positif Breadboard  melalui resistor terlebih dahulu
  9. 7-Segment pin 9 ke Arduino pin 8
  10. 7-Segment pin 10 ke Arduino pin 9
3. Pasang button dengan salah satu kutub menyambung ke kutub positif dan kutub satunya menyambung ke GND breadboard, melalui resistor, dan menyambung ke pin 12 juga






Setelah komponen dipasang maka hal yang perlu dilakukan berikutnya adalah membuat kode dan memasukkannya ke arduino. Berikut ini adalah kode yang digunakan untuk proyek kali ini.


//Initialize the 7 segment pins
int A = 3;
int B = 2;
int C = 4;
int D = 5;
int DP = 7;
int E = 6;
int F = 8;
int G = 9;

//Initialize the push buttons pins, push buttons states, and the counter
int switchUpPin = 12;
int counter = 0;
int buttonUpState = 0;
int lastButtonUpState = 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);

  //Start with the deceimal point off
  digitalWrite(DP ,HIGH);
}

void loop()
{
  //Getting the reads from the buttons
  buttonUpState = digitalRead(switchUpPin);

  //Detecting button press and getting the button status
  //Do this for the button up
  if (buttonUpState != lastButtonUpState)
  {
    if (buttonUpState == HIGH)
    {
      //Reset the counter to -1
      if(counter == 9)
      {
        counter = -1;
      }
      //Increase the counter by 1
      counter++;
      //Print the counter to the console and calling the function
      Serial.println(counter);
      changeNumber(counter);
      //Delaying by 250 ms
      delay(250);
    }
    else
    {
        Serial.println("OFF");
    }
    //Delay to avoid button bouncing
   delay(50);
  }

  //Calling the function changeNumber with the arg counter
  changeNumber(counter);
}

//The function to display the numbers
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, HIGH);
      digitalWrite(E, HIGH);
      digitalWrite(F, LOW);
      digitalWrite(G, LOW);
      break;
  }
}

Setelah kode dibuat maka hal terakhir adalah mengupload ke arduino. Pada proyek ini teman-teman harus lebih teliti karena kabel berjumlah banyak dan salah memasang akan membuat teman-teman makin bingung. Berikut ini adalah hasil proyek yang kami buat.


0-9 berhasil

Tidak susah bukan untuk membuat 7 segment dengan push button?
 
Team : Theo Tanadi
       Aditya Ghifari
       Fachri Satrya P
Credits : http://www.instructables.com/id/Arduino-7-Segment-Click-Counter/?ALLSTEPS

Tidak ada komentar:

Posting Komentar