Tugas Pendahuluan 1 Modul 2




Tugas Pendahuluan 1 Modul 2
(Percobaan 3 Kondisi 2)

1. Prosedur
[Kembali]
  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan sesuai kondisi

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Arduino



2. DIPSWITCH


3. 7-SEGMEN DISPLAY




Diagram Blok:






3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :




ketika di running :






Prinsip Kerja :
 
        Pada percobaan 3 modul 2 menggunakan sebuah arduino, sebuah dipswitch, serta seven segment. yang mana pada pin A0, A1, A2, dan A3 dari arduino dihubungkan ke Dipswitch dan pin 13, 12, 11, 10, 9, 8, 7, 6 di hubungkan ke seven segmen dan pada kaki a dan b seven segment dihubungkan ke pin 5 dan 4 di arduino. Pada rangkain percobaan modul 3, pada arduinonya di berikan codingan untuk memenuhi kondisi yang kita inginkan yaitu ketika 2 swtich aktif, maka 7 segment akan menghitung mundur dari 15 ke 0. Dengan memberikan codingan yang telah sesuai, maka ketika 2 dipswitch berkomdisi on atau aktif maka pada seven segment akan melakukan perhitungan mundur dari 15-0 sesuai dengan perintah codingan yang telah kita tetapkan.

 
4. Flowchart dan Listing Program [Kembali]

Flowchart :





Listing Program :

#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 Dsw1 A0
#define Dsw2 A1
#define Dsw3 A2
#define Dsw4 A3
//untuk mendefinisikan pin-pin yang akan digunakan untuk mengendalikan masing-masing segment pada display 7 segmen (a hingga g)
//untuk mengendalikan digit (d1 dan d2)
//untuk membaca switch (dsw1-dsw4)

int puluhan, satuan;//variabel bertipe data integer (bilangan bulat) yang digunakan untuk menyimpan nilai dari puluhan dan satuan.
bool sw1, sw2, sw3, sw4; //variabel bertipe data boolean.

void setup() { //mengatur pin-pin sebagai output atau input input pullup
  pinMode(a, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(c, OUTPUT);
  pinMode(d, OUTPUT);
  pinMode(e, OUTPUT);
  pinMode(f, OUTPUT);
  pinMode(g, OUTPUT);
  pinMode(dp, OUTPUT);
  pinMode(D1, OUTPUT);
  pinMode(D2, OUTPUT);
  pinMode(Dsw1, INPUT_PULLUP);
  pinMode(Dsw2, INPUT_PULLUP);
  pinMode(Dsw3, INPUT_PULLUP);
  pinMode(Dsw4, INPUT_PULLUP);
  Serial.begin(9600); //Baud rate 9600 adalah salah satu kecepatan standar yang umum digunakan dalam komunikasi serial.
}

void loop() { //// Membaca status switch Dsw2
  int sw2 = digitalRead(Dsw2);
  //// Jika switch Dsw2 ditekan (LOW), maka lakukan loop dari 15 ke 0

  if (sw2 == LOW) { //mengecek apakah saklar sw2 dalam keadaan LOW (ditekan atau aktif). Jika kondisi tersebut terpenuhi (sw2 LOW), maka program akan masuk ke dalam loop for.
    for (int count = 15; count >= 0; count--) {
      setNum(count);//mengatur tampilan display tujuh segmen sesuai dengan nilai count yang berubah selama iterasi loop.
    }
  }
}

void number(int num){
  // Mengatur output untuk menampilkan angka pada display tujuh segmen
  // setiap digit angka dikendalikan oleh kombinasi HIGH/LOW pada pin-pin yang ditentukan di awal

  if(num==0){
    digitalWrite(a,HIGH);
    digitalWrite(b,HIGH);
    digitalWrite(c,HIGH);
    digitalWrite(d,HIGH);
    digitalWrite(e,HIGH);
    digitalWrite(f,HIGH);
    digitalWrite(g,LOW);
  }

  if(num==1){
    digitalWrite(a,LOW);
    digitalWrite(b,HIGH);
    digitalWrite(c,HIGH);
    digitalWrite(d,LOW);
    digitalWrite(e,LOW);
    digitalWrite(f,LOW);
    digitalWrite(g,LOW);
  }

  if(num==2){
    digitalWrite(a,HIGH);
    digitalWrite(b,HIGH);
    digitalWrite(c,LOW);
    digitalWrite(d,HIGH);
    digitalWrite(e,HIGH);
    digitalWrite(f,LOW);
    digitalWrite(g,HIGH);
  }

  if(num==3){
    digitalWrite(a,HIGH);
    digitalWrite(b,HIGH);
    digitalWrite(c,HIGH);
    digitalWrite(d,HIGH);
    digitalWrite(e,LOW);
    digitalWrite(f,LOW);
    digitalWrite(g,HIGH);
  }

  if(num==4){
    digitalWrite(a,LOW);
    digitalWrite(b,HIGH);
    digitalWrite(c,HIGH);
    digitalWrite(d,LOW);
    digitalWrite(e,LOW);
    digitalWrite(f,HIGH);
    digitalWrite(g,HIGH);
  }

  if(num==5){
    digitalWrite(a,HIGH);
    digitalWrite(b,LOW);
    digitalWrite(c,HIGH);
    digitalWrite(d,HIGH);
    digitalWrite(e,LOW);
    digitalWrite(f,HIGH);
    digitalWrite(g,HIGH);
  }

  if(num==6){
    digitalWrite(a,HIGH);
    digitalWrite(b,LOW);
    digitalWrite(c,HIGH);
    digitalWrite(d,HIGH);
    digitalWrite(e,HIGH);
    digitalWrite(f,HIGH);
    digitalWrite(g,HIGH);
  }

  if(num==7){
    digitalWrite(a,HIGH);
    digitalWrite(b,HIGH);
    digitalWrite(c,HIGH);
    digitalWrite(d,LOW);
    digitalWrite(e,LOW);
    digitalWrite(f,LOW);
    digitalWrite(g,LOW);
  }

  if(num==8){
    digitalWrite(a,HIGH);
    digitalWrite(b,HIGH);
    digitalWrite(c,HIGH);
    digitalWrite(d,HIGH);
    digitalWrite(e,HIGH);
    digitalWrite(f,HIGH);
    digitalWrite(g,HIGH);
  }

  if(num==9){
    digitalWrite(a,HIGH);
    digitalWrite(b,HIGH);
    digitalWrite(c,HIGH);
    digitalWrite(d,HIGH);
    digitalWrite(e,LOW);
    digitalWrite(f,HIGH);
    digitalWrite(g,HIGH);
  }
}

void setNum(int snum){
   // Mengatur digit yang aktif (D1 atau D2) dan memanggil fungsi number untuk menampilkan puluhan dan satuan dari angka yang diberikan
  if(snum<10){puluhan = 0; satuan = snum;}
  else if (snum < 20){puluhan = 1; satuan = snum - 10;}
  else if (snum < 30){puluhan = 2; satuan = snum - 20;}
  else if (snum < 40){puluhan = 3; satuan = snum - 30;}
  else if (snum < 50){puluhan = 4; satuan = snum - 40;}
  else if (snum < 60){puluhan = 5; satuan = snum - 50;}
  else if (snum < 70){puluhan = 6; satuan = snum - 60;}
  else if (snum < 80){puluhan = 7; satuan = snum - 70;}
  else if (snum < 90){puluhan = 8; satuan = snum - 80;}
  else if (snum < 100){puluhan = 9; satuan = snum - 90;}

  digitalWrite(D1,LOW);
  digitalWrite(D2,HIGH);
  number(puluhan);//untuk menampilkan angka yang sesuai dengan nilai yang diberikan
  delay(100);

  digitalWrite(D1,HIGH); //untuk mengatur keadaan output pada pin D1 dan D2. D1 diatur menjadi LOW (rendah) dan D2 diatur menjadi HIGH (tinggi)
  digitalWrite(D2,LOW);
  number(satuan);
  delay(100);
}

5. Kondisi [Kembali]

Percobaan 3 Kondisi 2
Ketika 2 Switch aktif 7-Segment menghitung mundur dari 15

6. Video Simulasi [Kembali]




7. Download File [Kembali]

File Rangkaian klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet DipSwitch klik disini










Tidak ada komentar:

Posting Komentar