Minggu, 17 Maret 2024

TP 1




Tugas Pendahuluan 1 
Modul 1



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 :

1. Arduino





2. Push Button





3. LED





4. Resistor





Diagram Blok :






3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
 
Rangkaian Simulasi :




Prinsip Kerja :


keypad dibentuk menggunakan 16 buah push button dimana setiap buntton mewakili satu buah array. untuk keypad,,baris dibhungkan dengan pin A1 A2 A3 dan A4 sedangkan kolom pada pin 10 11 12 13 arduino. selanjutnya  berdassarkan kodisi yang diberikan saat push button baris pertama kolom ke empat yang aktif maka output pada seven segmen adalah huruf a


4. Flowchart dan Listing Program [Kembali]

Flowchart :







Listing Program :

#include <Keypad.h>

const byte ROWS = 4; //jumlah baris pada keypad
const byte COLS = 4; //jumlah kolom pada keypad
char keys[ROWS][COLS] = { 
  {'1','2','3','A'}, 
  {'4','5','6','B'}, // Keypad 4x4 layout 
  {'7','8','9','C'}, 
  {'*','0','#','D'} 
};
byte rowPins[ROWS] = {A4, A3, A2, A1}; //pin yang terhubung dengan baris keypad
byte colPins[COLS] = {10, 11, 12, 13}; //pin yang terhubung dengan kolom keypad

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

// Pins untuk seven segment display
const int segmentPins[] = {9, 8, 7, 6, 5, 4, 3, 2}; // Perhatikan tanda kurung kurawal yang tidak perlu
const int numSegments = 7; // banyak segement yang digunakan 

void setup() {
  for (int i = 0; i < numSegments; i++) {
    pinMode(segmentPins[i], OUTPUT);
    digitalWrite(segmentPins[i], LOW);
  }
}

void loop() {
  char key = keypad.getKey();
  if (key != NO_KEY) {
    displayCharacter(key);
  }
}

void displayCharacter(char key) {
  switch (key) {
    case '0':
      displaySegments(true, true, true, true, true, true, false);
      break;
    case '1':
      displaySegments(false, true, true, false, false, false, false);
      break;
    case '2':
      displaySegments(true, true, false, true, true, false, true);
      break;
    case '3':
      displaySegments(true, true, true, true, false, false, true);
      break;
    case '4':
      displaySegments(false, true, true, false, false, true, true);
      break;
    case '5':
      displaySegments(true, false, true, true, false, true, true);
      break;
    case '6':
      displaySegments(true, false, true, true, true, true, true);
      break;
    case '7':
      displaySegments(true, true, true, true, true, true, true);
      break;
    case '8':
      displaySegments(true, true, true, false, false, false, false);
      break;
    case '9':
      displaySegments(true, true, true, true, false, true, true);
      break;
    case 'A':
      displaySegments(true, true, true, true, true, false, true);
      break;
    case 'B':
      displaySegments(false, false, true, true, true, true, true);
      break;
    case 'C':
      displaySegments(true, false, false, true, true, true, false);
      break;
    case 'D':
      displaySegments(false, true, true, true, true, false, true);
      break;
    default:
      turnOffSegments();
      break;
  }
}

void displaySegments(bool a, bool b, bool c, bool d, bool e, bool f, bool g) {
  bool segments[] = {a, b, c, d, e, f, g};
  for (int i = 0; i < numSegments; i++) {
    digitalWrite(segmentPins[i], segments[i] ? HIGH : LOW);
  }
}

void turnOffSegments() {
  for (int i = 0; i < numSegments; i++) {
    digitalWrite(segmentPins[i], LOW);
  }
}


5. Kondisi [Kembali]

Percobaan 2 kondisi 7 : "Button baris 1 kolom 4 menampilkan huruf a"

6. Video Simulasi [Kembali]




7. Download File [Kembali]

HTML                    klik disini
File Rangkaian       klik disini
Video Percobaan    klik disini
Listing Program     klik disini
Datasheet Arduino klik disini
Datasheet Button   klik disini




Tidak ada komentar:

Posting Komentar