TP2 M1




Tugas Pendahuluan 2 Modul 1
(Percobaan 2 Kondisi 4)

1. Prosedur
[Kembali]

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

a) Arduino Uno



2. Push Button




3. Seven Segment 2 Digit




Diagram Blok  :


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :



Prinsip Kerja : 

Pada rangkaian percobaan 2 kondisi 4 ini alat yang digunakan adalah Arduino, push button, dan Seven segment. push button dirangkai membentuk sebuah keypad 4x4 yang akan menjadi input untuk seven segment. pada saat keypad ditekan akan ada arus yang mengalir yang akan menjadi input di arduino. setelah itu, arduino akan mengeluarkan output berupa angka yang ada pada seven segment.

4. Flowchart dan Listing Program [Kembali]

Flowchart :





Listing Program :

#include <Keypad.h>

const byte ROWS = 4; // Empat baris
const byte COLS = 4; // Empat kolom

char keys[ROWS][COLS] = {
  {'3','2','1','A'},
  {'4','5','6','B'}, // Layout keypad 4x4
  {'7','8','9','C'},
  {'*','0','#', 'D'}
};

byte rowPins[ROWS] = {A4, A3, A2, A1}; // Hubungkan dengan pin baris keypad
byte colPins[COLS] = {10, 11, 12, 13}; // Hubungkan dengan pin kolom keypad

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Hubungkan dengan pin-pins segment seven-segment display

void setup() {
  for (int i = 0; i < 8; i++) {
    pinMode(segmentPins[i], OUTPUT);
    digitalWrite(segmentPins[i], HIGH); // Atur semua segment off (common anode)
  }
}

void loop() {
  char key = keypad.getKey();
  if (key) {
    displayCharacter(key);
    delay(1000);
    clearDisplay();
  }
}

void displayCharacter(char ch) {
  // Definisikan pola segment untuk setiap digit (0-9)
  // Contoh: Menampilkan '1'
  //  A
  // F B
  //  G
  // E C
  //  D
  byte patterns[][8] = {
    {0, 0, 0, 0, 0, 0, 1}, // 0
    {1, 0, 0, 1, 1, 1, 1}, // 1
    {0, 0, 1, 0, 0, 1, 0}, // 2
    {0, 0, 0, 0, 1, 1, 0}, // 3
    {1, 0, 0, 1, 1, 0, 0}, // 4
    {0, 1, 0, 0, 1, 0, 0}, // 5
    {0, 1, 0, 0, 0, 0, 0}, // 6
    {0, 0, 0, 1, 1, 1, 1}, // 7
    {0, 0, 0, 0, 0, 0, 0}, // 8
    {0, 0, 0, 0, 1, 0, 0}, // 9
    {0, 0, 0, 0, 0, 1, 0}, // A
    {1, 1, 0, 0, 0, 0, 0}, // B
    {0, 1, 1, 0, 0, 0, 1}, // C
    {1, 0, 0, 0, 0, 1, 0}  // D
  };

  int index;
  if (ch >= '0' && ch <= '9') {
    index = ch - '0';
  } else if (ch >= 'A' && ch <= 'D') {
    index = ch - 'A' + 10;
  } else {
    return;
  }

  // Tulis pola ke pin-pin segment
  for (int i = 0; i < 7; i++) {
    digitalWrite(segmentPins[i], patterns[index][i]);
  }
}

void clearDisplay() {
  for (int i = 0; i < 8; i++) {
    digitalWrite(segmentPins[i], HIGH); // Matikan semua segment
  }
}


5. Kondisi [Kembali]

Percobaan 2 Kondisi 4
Kondisi 3 : Button baris 1 kolom 3 menampilkan angka 1


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 Button klik disini

0 komentar:

Posting Komentar