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.
- Arduino Board
- BreadBoard
- 4 Resistor 470 ohm
- 1 7 Segment
- 1 Push Button
- Kabel male to male
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
- 7-Segment pin 1 ke Arduino pin 6
- 7-Segment pin 2 ke Arduino pin 5
- 7-Segment pin 3 ke kutub positif Breadboard melalui resistor terlebih dahulu
- 7-Segment pin 4 ke Arduino pin 4
- 7-Segment pin 5 ke Arduino pin 7
- 7-Segment pin 6 ke Arduino pin 2
- 7-Segment pin 7 ke Arduino pin 3
- 7-Segment pin 8 kutub positif Breadboard melalui resistor terlebih dahulu
- 7-Segment pin 9 ke Arduino pin 8
- 7-Segment pin 10 ke Arduino pin 9
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
Tidak ada komentar:
Posting Komentar