Laporan Percobaan 2 (M3)

  

[KEMBALI KE MENU SEBELUMNYA]




1. Prosedur  [back]
Langkah-langkah percobaan :
    1. Siapkan alat dan bahan dengan komponen yaitu 2 buah Arduino Uno, 
  `    dipswitch, dan LED
    2. Rangkai komponen sesuai gambar percobaan
    3, Rancang kerja rangkaian menggunakan program pada Arduino IDE
    4. Compile dan upload program pada Arduino Uno
    5. Jalankan dan uji coba rangkaian.


Gambar Percobaan


2. Hardware dan diagram blok [back]
  • Hardware:
- Arduino Uno (Master dan Slave)




- Seven Segment


- Dipswitch


- Breadboard



- Jumper 
  • Diagram blok:


3. Rangkaian Percobaan dan Prinsip Kerja  [back]
  • Rangkaian Percobaan:

  • Prinsip Kerja:
    Pada percobaan kali ini merupakan Komunikasi SPI menggunakan Arduino Uno dengan alat dan bahan seperti dipswitch (input), Arduino Uno (Master), Arduino Uno (Slave), dan seven segment (output). Pada rangkaian ini, dipswitch dihubungkan dengan Master Arduino dan output sevent segment terhubung dengan slave arduino. Rangkaian ini menggunakan komunikasi SPI (Series Pheriperal Interface) Arduino, yaitu menggunakan pin MISO, MOSI, SCK, dan SS yang terhubung antara Master Arduino dan Slave Arduino. Seven segment akan menampilkan karakter angka sesuai dengan kondisi dipswitch yang aktif berdasarkan program. 
    Pada saat setiap dipswitch di aktifkan, maka master arduino akan mengirimkan data menuju slave arduino secara paralel dan slave arduino akan menerima data sesuai program dan ditampilkan pada output seven segment sesuai dengan kondisi yang aktif pada dipswitch, contohnya apabila dip 1 aktif maka seven segment akan menunjukkan angka 2, sampai dengan dip 8 aktif akan menunjukkan angka 9 pada seven segment.


4. Flowchart dan Listing Program  [back]
  • Flowchart:
- Master Arduino


- Slave Arduino

  • Listing Program:
- Master Arduino 
//Master Arduino
#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);
}

- Slave Arduino
 //Slave Arduino:
#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]);
 }
 }
}


6. Kondisi  [back]
    Percobaan 2 : Komunikasi SPI menggunakan Arduino Uno
  
7. Video Simulasi  [back]



8. Download File  [back]
Download Video percobaan Di Sini
Download Library Arduino Uno Di Sini
Download Datasheet Arduino Uno Di Sini
Download Datasheet Seven Segment Di Sini
Download HTML Di Sini

Tidak ada komentar:

Posting Komentar