Selasa, 30 April 2024

TP 2 MODUL 3



1. Prosedur [Kembali]
1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
2. Buat program menggunakan Arduino IDE.
3. Transfer program yang telah dibuat ke Arduino yang ada di Proteus.
4. Uji coba program di simulasi sesuai dengan kondisi yang diinginkan.
5. Proses selesai setelah uji coba berhasil dilakukan.

2. Hardware dan Diagram Blok [Kembali]

a. Hardware
 
1. Arduino Uno
 Spesifikasi:

2. Dipswitch
 
Spesifikasi:

3. 7-segment
 

b. Diagram Blok

3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
 
Prinsip Kerja
1) MASTER
Arduino master bertugas untuk membaca status tombol yang terhubung, mengidentifikasi tombol mana yang sedang aktif, dan mengirimkan informasi tentang tombol yang aktif ke Arduino slave melalui koneksi SPI. Setiap kali dalam iterasi loop, Arduino master membaca status tombol dan menyimpan nilai tombol yang aktif dalam variabel `digit'. Setelah itu, nilai `digit' dikirimkan ke Arduino slave melalui koneksi SPI. Arduino master akan menunggu untuk jangka waktu k sebelum mengulangi proses tersebut.
 
2) SLAVE
Arduino slave bertugas menerima pesan dari Arduino master dan mengatur LED sesuai instruksi yang diterima. Kode slave ini bertujuan untuk menerima data melalui komunikasi Serial Peripheral Interface (SPI) dan menampilkannya pada sebuah display segment. Setelah inisialisasi pin dan komunikasi serial, kode mengaktifkan SPI dan menyiapkan fungsi interrupt untuk menangani data masuk. Ketika data diterima, fungsi interrupt memprosesnya dan menyalakan segment yang sesuai pada display. Selanjutnya, dalam loop utama, kode mengecek apakah ada data yang diterima. Jika ada, karakter diterjemahkan ke dalam pola segmen yang sesuai dan ditampilkan pada display. Proses ini berulang secara terus-menerus. Dengan demikian, kode slave ini berfungsi untuk menerima dan menampilkan data yang diterima melalui SPI.

 
4. Flowcharth dan Listing Program [Kembali]
a. Flowcharth

b. Listing Program
Master:
#include <SPI.h>

int dip[] = {2, 3, 4, 5, 6, 7, 8, 9};
int dipvalue[8] = {};

void setup() {
  Serial.begin(9600);
  for (int i = 0; i < 8; i++) {
    pinMode(dip[i], INPUT_PULLUP);
  }
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV8);
  digitalWrite(SS, HIGH);
}

void loop() {
  byte Mastersend = 0;
  int x = 0;
  for (int i = 0; i < 8; i++) {
    dipvalue[i] = digitalRead(dip[i]);
    if (dipvalue[i] == LOW) {
      x++;
    }
  }
  digitalWrite(SS, LOW);
  Mastersend = x;
  Serial.println(Mastersend);
  SPI.transfer(Mastersend);
  delay(1000);
}
 
SLAVE:
#include <SPI.h>

const int segmentPins[] = {9, 8, 7, 6, 5, 4, 3, 2};
volatile boolean received = false;
volatile byte Slavereceived;

void setup() {
  Serial.begin(9600);
  for (int i = 0; i < 8; i++) {
    pinMode(segmentPins[i], OUTPUT);
  }
  SPCR |= _BV(SPE);
  SPI.attachInterrupt();
}

ISR (SPI_STC_vect) {
  Slavereceived = SPDR;
  received = true;
}

void loop() {
  if (received) {
    displayCharacter(Slavereceived);
    delay(1000);
    received = false;
  }
}

void displayCharacter(int ch) {
  byte patterns[10][7] = {
    {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
  };

  if (ch >= 0 && ch <= 8) {
    // Get the digit index (0-9) from the character
    int index = ch;
    // Write the pattern to the segment pins
    for (int i = 0; i < 7; i++) {
      digitalWrite(segmentPins[i], patterns[index][i]);
    }
  }
}
 
5. Kondisi [Kembali]
Percobaan 2 Kondisi 5
Setiap 1 Switch aktif muncul angka sesuai jumlah switch yang aktif pada digit 1
 
6. Video Simulasi [Kembali]



7. Download File [Kembali]

HTML klik disini  
Simulasi  klik disini
Gambar Simulasi  klik disini 
Video Simulasi  klik disini 
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Dipswitch klik disini
Datasheet 7-SEGMENT klik disini








Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

MODUL 4

Modul 4 [menuju akhir] [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Percobaan Percob...