//M1P5
//Baris ini mendefinisikan pin-pin yang akan digunakan untuk mengontrol display tujuh segmen dan digit
#define a 6
#define b 7
#define c 8
#define d 9
#define e 10
#define f 11
#define g 12
#define dp 13
#define D1 4
#define D2 5
#define Dsw A0
/*39
32
26 27
19
*/
int segments[] = {a,b,c,d,e,f,g}; //Mendeklarasikan array segments yang berisi pin-pin untuk tujuh segmen display tujuh segmen.
//Array digitPatterns digunakan untuk menyimpan pola setiap digit (0-9) pada tujuh segmen
byte digitPatterns[10][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1}, // 9
};
void setup() { //Fungsi setup dijalankan sekali pada awal eksekusi program
// put your setup code here, to run once:
for (int i = 0; i < 7; i++) { //Mendeklarasikan pin-pin sebagai output, termasuk pin segmen dan digit
pinMode(segments[i], OUTPUT);
}
pinMode(dp,OUTPUT);
pinMode(D1,OUTPUT);
pinMode(D2,OUTPUT);
pinMode(Dsw,INPUT_PULLUP);//sebagai input dengan pull-up resistor dan memulai komunikasi serial dengan baud rate 9600
Serial.begin(9600);
}
//Fungsi number(int display) digunakan untuk menampilkan digit tertentu pada display tujuh segmen berdasarkan pola yang telah didefinisikan sebelumnya.
void number (int display) {
if (display >= 0 && display <= 9) {
for (int i = 0; i < 7; i++) {
digitalWrite(segments[i], digitPatterns[display ][i]);
}
}
}
void loop() { //Fungsi loop berjalan terus-menerus setelah fungsi setup
int sw = analogRead(Dsw);//Membaca nilai analog dari pin Dsw
Serial.print("ADC Value = ");//kemudian mengeksekusi blok kondisi berdasarkan nilai yang dibaca
Serial.println(sw);
delay(100);
if(sw == 23){
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delay(50);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(0);
delay(50);
}
else if(sw == 22){
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(0);
delay(1000);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(1);
delay(1000);
}else if(sw == 21){
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(0);
delay(1000);
number(1);
delay(1000);
number(2);
delay(1000);
number(3);
delay(1000);
number(4);
delay(1000);
number(5);
delay(1000);
number(6);
delay(1000);
number(7);
delay(1000);
number(8);
delay(1000);
number(9);
delay(1000);
}else if(sw == 19){
digitalWrite(D1,HIGH);
digitalWrite(D2,HIGH);
number(0);
delay(1000);
number(1);
delay(1000);
number(2);
delay(1000);
number(3);
delay(1000);
number(4);
delay(1000);
number(5);
delay(1000);
number(6);
delay(1000);
number(7);
delay(1000);
number(8);
delay(1000);
number(9);
delay(1000);
}else if(sw == 16){
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(0);
delay(500);
number(1);
delay(500);
number(2);
delay(500);
number(3);
delay(500);
number(4);
delay(500);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(5);
delay(500);
number(6);
delay(500);
number(7);
delay(500);
number(8);
delay(500);
number(9);
delay(500);
}else if(sw == 13){
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delayMicroseconds (500);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(0);
delayMicroseconds (500);
}else if(sw == 10){
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(9);
delay(500);
number(8);
delay(500);
number(7);
delay(500);
number(6);
delay(500);
number(5);
delay(500);
number(4);
delay(500);
number(3);
delay(500);
number(2);
delay(500);
number(1);
delay(500);
number(0);
delay(500);
}else if(sw == 5){
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delay(50);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(0);
delay(50);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delay(50);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(1);
delay(50);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delay(50);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(2);
delay(50);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delay(50);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(3);
delay(50);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delay(50);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(4);
delay(50);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delay(50);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(5);
delay(50);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delay(50);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(6);
delay(50);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delay(50);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(7);
delay(50);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delay(50);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(8);
delay(50);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delay(50);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(9);
delay(50);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(2);
}
}
0 komentar:
Posting Komentar