LAPORAN AKHIR MODUL 3 PERCOBAAAN 2

Modul 3 Komunikasi


 

  • Buatlah rangkaian sesuai dengan kondisi yang telah dipilih
  • Buat Program pada software Arduino IDE
  • Masukkan program yang telah dibuat pada software Arduino IDE sebagai library Arduino
  • Jalankan rangkaian, sesuai dengan kondisi yang diinginkan
  • Lihat output pada 7 segmen dengan mengatur dip switch

a. Hardware


b. Diagram Blok

a. Rangkaian Simulasi

b. Prinsip Kerja
Dari perobaan 2 diatas, kita menggunakan dip switch sebagai inputan dan dual seven segment sebagai output. Selanjutnya juga menggunakan 2 buah modul, pertama arduino master sebagai pemberi perintah dan arduino slave sebagai penerima/pengeksekusi perintah. Arduino master terhubung dengan inputan dip switch dan arduino slave terhubung dengan dual seven segment sebagai output. Pada percobaan ini menggunakan komunikasi SPI yang ditandai dengan pin MOSI, MISO, SCLK, SS/CS pada kedua modul saling terhubung.

Sesuai dengan program yang telah diinputkan pada arduino ide, dimana layar dual seven segmen akan menampilkan angka yang sesuai dengan kondisi yang diinputkan pada dipswtich. Jadi jika kita mengaktifkan pin 1 dipswitch maka akan menampilkan angka 1 pada seven segmen.

a. Flowchart
Arduino Master

Arduino Slave

b. Listing Program
Arduino Master
//Master Arduino
#include //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);
}

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


Jika 1 switch aktif maka akan menampilkan angka 1 pada digit 2, Jika 2 switch aktif maka akan menampilkan angka 2 pada digit 2, begitu seterusnya hingga 8 switch aktif


Download HTML klik disini
Download Program Arduino Master klik disini
Download Program Arduino Slave klik disini
Download Video Demo klik disini
Download Gambar Hardware klik disini
Download Gambar Simulasi klik disini
Download Datasheet Arduino klik disini
Download Datasheet Dipswitch klik disini
Download Datasheet 7 segmen klik disini






Komentar

Postingan populer dari blog ini

TUGAS BESAR: KONTROL TANAMAN BAYAM PADA GREEN HOUSE

MODUL 1 : 8 x SWITCH SPDT DAN LCD

MODUL 2 : Kontrol Putaran Motor Stepper