Jumat, 10 Mei 2024

Laporan Akhir 1 M3

 



Laporan Modul 3
(Percobaan 2)

1. Prosedur 
[Kembali]

1. Siapkan semua komponen yang akan di rangkai
2. Rangkai rangkaian sesuai dengan modul
3. Buat program di arduino di software Arduino IDE.
4. Compile program tersebut dan upload ke dalam hardware arduino
5. Setelah program selesai di upload, jalankan rangkaian 
6. Finish

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Arduino Uno




2. 7-Segment, 2 digit




3. Kabel Jumper


 4. Breadboard




5. Dip Switch





Diagram Blok  :



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi Setelah di Running:



Prinsip Kerja : 

Pada percobaan praktikum kali ini, disini digunakan 2 buah arduino, sebuah Dipswitch dan sebuah 7-Segment dengan 2 digit. Untuk metode komunikasi yang digunakan pada percobaan ini adalah SPI (Serial Peripheral Interface) yang mana digunakan untuk mentransfer data serial antara satu perangkat Master dengan satu atau lebih perangkat Slave

Disini Arduino pertama digunakan sebagai perangkat Master, dan Arduino kedua digunakan sebagai perangkat Slave lalu 7-Segment sebagai output tampilan dan Dip-Switch sebagai inputan. Dipswitch dihubungkan dengan perangkat Master lalu dari peragkat master dihubungkan dengan perangkat Slave dan terakhir untuk 7-Segment dihubungkan dengan perangkat Slave. 

Arduino Master akan menerima Inputan data dari Dipswitch (dalam program data yaitu berupa berapa banyak saklar yang aktif pada Dipswitch), data tersebut akan ditransfer ke Arduino Uno yang menjadi perangkat Slave. Jika terdapat DIP switch yang aktif, maka seven segment akan menampilkan angka yang sesuai dengan data yang diterima pada 7-Segment

  

4. Flowchart dan Listing Program [Kembali]

Flowchart :






Listing Program :

Program Master
#include<SPI.h> //Library for SPI
int dip[] = {2,3,4,5,6,7,8,9};
int dipvalue[] = {};
void setup (){
 Serial.begin(9600); //Starts Serial Communication at Baud Rate 115200
 for(int i = 0; i < 8; i++){
 pinMode(dip[i], INPUT_PULLUP);
 }
 SPI.begin(); //Begins the SPI commnuication
 SPI.setClockDivider(SPI_CLOCK_DIV8); //Sets clock for SPI communication at 8 (16/8=2Mhz)
 digitalWrite(SS,HIGH); // Setting SlaveSelect as HIGH (So master doesnt connnect with
slave)
}
void loop(void){
 byte Mastersend;
 int x = 1;
 for(int i = 0; i < 8; i++){
 dipvalue[i] = digitalRead(dip[i]);
 if(dipvalue[i] == LOW){
 x = dip[i];
 }
 }
 digitalWrite(SS, LOW); //Starts communication with Slave connected to master
  Mastersend = x;
 Serial.println(Mastersend);
 SPI.transfer(Mastersend); //Send the mastersend value to slave also receives value from slave
 delay(1000);
}


Program Slave
#include<SPI.h>
const int segmentPins[] = {9, 8, 7, 6, 5, 4, 3, 2};
volatile boolean received = false;
volatile byte Slavereceived;
int index;
void setup(){
 Serial.begin(9600);
 for (int i = 0; i < 8; i++) {
 pinMode(segmentPins[i], OUTPUT);
 }
 SPCR |= _BV(SPE); //Turn on SPI in Slave Mode
 SPI.attachInterrupt(); //Interuupt ON is set for SPI commnucation
}
ISR (SPI_STC_vect){ //Inerrrput routine function
 Slavereceived = SPDR; // Value received from master if store in variable slavereceived
 received = true; //Sets received as True
}
void loop(){
 Serial.println(Slavereceived);
 if(received){//Logic to SET LED ON OR OFF depending upon the value recerived from master
 displayCharacter(Slavereceived);
 delay(1000);
 }
}
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 <= 9)) {
 // 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
Komunikasi SPI menggunakan Arduino

6. Video Simulasi [Kembali]





7. Download File [Kembali]

Download HTML Klik Disini

Download Video Percobaan Klik Disini

Download Kodingan Program Klik Disini

Download Datasheet Arduino Klik Disini

Download Datasheet Dip Switch Klik Disini

Download Datasheet 7-segment Klik Disini






Tidak ada komentar:

Posting Komentar

Jawaban UTS No.3 Up

     [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Tujuan 2. Alat dan Bahan 3. Dasar Teori 4. Percobaan 5. File Download   Jawaban No.3 1. Tu...