Kamis, 09 Mei 2024

LAPORAN AKHIR 2 (PERCOBAAN 4)




1. Prosedur
[Kembali]

1. Rangkai rangkaian pada alat sesuai dengan modul.
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 rangkaian.

2. Hardware dan Diagram Blok [Kembali]

Hardware :






1. Arduino







2. Keypad






3. Breadboard




4. LCD









5. Jumper






Diagram Blok:

                






3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Gambar rangkaian













Prinsip Kerja :

Pada percobaan ini kita menggunakan 2 buah arduino. Arduino pertama berperan sebagai master, sedangkan arduino kedua berperan sebagai slave. Inputan berupa keypad terhubung dengan arduino master. Output berupa LCD terhubung dengan arduino slave. Arduino yang berfungsi sebagai Master dalam rangkaian percobaan ini menjalani beberapa tahap. Pertama, secara berkala, Arduino Master memeriksa status pin digital yang terhubung ke tombol pada keypad untuk menentukan apakah pengguna telah menekannya. Selanjutnya, Arduino Master mengubah pola penekanan tombol menjadi kode atau perintah yang dapat dipahami oleh Arduino Slave. Kemudian, Arduino Master mengirimkan kode yang dihasilkan ke Arduino Slave melalui pin digital yang telah ditentukan untuk komunikasi antara Master dan Slave. Proses ini memungkinkan Arduino Slave untuk merespons sesuai dengan instruksi yang diterima dari Master.

Arduino Slave dalam rangkaian percobaan ini juga melibatkan beberapa langkah. Pertama, secara terus menerus, Arduino Slave menerima instruksi dari Arduino Master melalui pin komunikasi yang telah ditentukan untuk menerima kode atau perintah yang dikirimkan oleh Master. Selanjutnya, setelah menerima kode dari Master, Arduino Slave mengubahnya menjadi instruksi yang dapat dimengerti. Kode yang diterima mewakili tombol yang ditekan pada keypad atau perintah lain yang dikirim oleh Master. Setelah itu, Arduino Slave bertanggung jawab untuk mengontrol layar LCD sesuai dengan instruksi yang diterima. Ini termasuk mengirimkan perintah yang sesuai ke layar LCD, seperti instruksi untuk menampilkan karakter tertentu, memperbarui teks yang ditampilkan, atau melakukan tindakan lain yang diperlukan. Misalnya, pada percobaan ini ketika kita menekan tombol 2 di keypad, maka LCD akan menampilkan  "Tombol: 2".


4. Flowchart dan Listing Program [Kembali]

Flowchart :










Listing Program :

MASTER

// MASTER
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 3;
// Array to represent keys on keypad
char hexaKeys[ROWS][COLS] = {
 {'1', '2', '3'},
 {'4', '5', '6'},
 {'7', '8', '9'},
 {'*', '0', '#'}
};
byte rowPins[ROWS] = {7, 6, 5, 4};
byte colPins[COLS] = {8, 9 , 10};
// Create keypad object
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup() 
Serial.begin(9600);
}
void loop()
{
 char customKey = customKeypad.getKey();
 if (customKey)
 {
 Serial.write(customKey);
 }
 delay(20);
}



SLAVE

//SLAVE
#include <LiquidCrystal.h>
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
char message;
void setup() 
 Serial.begin(9600);
 lcd.begin(16, 2);
}
void loop()
{
 lcd.setCursor(0, 0);
 lcd.print("Tombol :");
 if (Serial.available())
{
 message = Serial.read();
 if (message)
 {
 lcd.print(message);
 }
}
}

5. Kondisi [Kembali]

Modul 3 Percobaan 4 : Komunikasi UART 

6. Video Demo [Kembali]







7. Soal Analisa [Kembali]

1. Jelaskan perbedaan antara percobaan 3 dengan percobaan 4!
2. Bagaimana proses pengiriman data pada percobaan 4?










8. Download File [Kembali]

HTML Download
File Rangkaian Download
Video Percobaan Download
Listing Program Download
Datasheet Arduino Download
Datasheet Keypad Download
Download Data Sheet LCD Download
Datasheet Jumper Download










LAPORAN AKHIR 1 (PERCOBAAN 2)




1. Prosedur
[Kembali]

1. Rangkai rangkaian pada alat sesuai dengan modul.
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 rangkaian.

2. Hardware dan Diagram Blok [Kembali]

Hardware :






1. Arduino







2. Seven Segment 2 Digit



3. Breadboard


4. Dipswitch






5. Jumper






Diagram Blok:

                







3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Gambar rangkaian













Prinsip Kerja :

Pada percobaan ini, kita menggunakan 2 buah arduino. Arduino pertama berperan sebagai master, sedangkan arduino kedua berperan sebagai slave. Untuk inputan dip switch terhubung dengan arduino (master). Sedangkan output seven segment terhubung dengan arduino (slave).  Ketika Arduino Master menerima data input dari DIP switch, data tersebut akan dikirimkan menggunakan Arduino Uno yang bertindak sebagai Slave. Jika terdapat DIP switch yang aktif, seven segment akan menampilkan angka yang sesuai dengan data yang diterima. .Untuk percobaan ini, ketika dip switch terbesar aktif, maka seven segment akan menampilkan angka tersebut ditambah dengan satu. Misalnya,
Jika tidak ada dip switch yang aktif, maka seven segment menampilkan angka 1.
Jika satu dip switch yang aktif, maka seven segment menampilkan angka 2.
Jika dua buah dip switch yang aktif, maka seven segment menampilkan angka 3.
Dan seterusnya.

4. Flowchart dan Listing Program [Kembali]

Flowchart :

MASTER


SLAVE







Listing Program :

MASTER

//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

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

5. Kondisi [Kembali]

Modul 3 Percobaan 2 : Komunikasi SPI Menggunakan Arduino

6. Video Demo [Kembali]







7. Soal Analisa [Kembali]

1. Pada percobaan kenapa clock harus diatur di listing program?
2. Kenapa harus ada intterupt pada listing program percobaan?








8. Download File [Kembali]

HTML Download
File Rangkaian Download
Video Percobaan Download
Listing Program Download
Datasheet Arduino Download
Datasheet seven segment Download
Datasheet Dipswitch Download
Datasheet Jumper Download










Entri yang Diunggulkan

TUGAS BESAR PRAKTIKUM UP & UC (MODUL 4)

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