Laporan Akhir 1 (M3)




Modul 3
Percobaan 1. Komunikasi UART Menggunakan Arduino

1. Prosedur
[Kembali]
 1. Rangkai komponen sesuai percobaan dan yang dipilih.

2. Buat program menggunakan Arduino IDE.

3. Transfer program yang telah dibuat ke Arduino Uno.

4. Uji coba program pada rangkaian percobaan 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 Arduino Uno:


2. Dipswitch
Spesifikasi:
Slide Type, Tin Plated, SPST DIP Switch Series
Spesifikasi Teknis:
- Contact Resistance = 50 - 100 M{o}
- Contact Rating = 24VDC, 25mA at Make & Brake
50VDC, 100mA at Steade State



5. LED




6.   Kabel Jumper



b. diagram blok:



3. Rangkaian Percobaan dan Prinsip Kerja [Kembali]
a. Rangkaian Percobaan




b. Prinsip Kerja
Ada dua Arduino dalam percobaan ini, masing-masing bertindak sebagai master dan slave.
Arduino master bertindak sebagai pemberi perintah, dan Arduino slave bertindak sebagai penerima dan pelaksana perintah. Arduino master dihubungkan dengan 8 tombol sebagai input, dan Arduino slave memiliki 8 LED sebagai output.
Kedua Arduino  terhubung melalui komunikasi UART, dengan pin TX Arduino master terhubung ke pin RX  Arduino slave dan sebaliknya, menciptakan saluran komunikasi dua arah.
Setelah sistem diinisialisasi, Arduino master mulai memantau status  delapan switch yang terhubung.
Setiap kali  tombol ditekan, Arduino master mengirimkan sinyal data melalui saluran UART yang berisi kode terkait yang  menunjukkan tombol mana yang ditekan.
Arduino slave terus memonitor port serial dan menerima data yang dikirim oleh Arduino master.
Ketika Arduino slave menerima data, ia memahami instruksi yang ada di dalamnya dan merespons dengan mengontrol status LED yang sesuai.
Misalnya, jika Arduino master mengirimkan kode yang menunjukkan bahwa switch ketujuh telah ditekan, Arduino slave akan mematikan LED ketujuh.
 Proses ini berlanjut, memungkinkan pengguna untuk mengontrol status LED Arduino slave melalui switch yang terhubung pada Arduino master, membangun interaksi antara dua perangkat mikrokontroler.


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

Flowchart :

Master


Slave



b. Listing Program
Master 

// Definisikan koneksi pin untuk tombol-tombol
#define DS1 2
#define DS2 3
#define DS3 4
#define DS4 5
#define DS5 6
#define DS6 7
#define DS7 8
#define DS8 9

// Inisialisasi variabel boolean untuk status tombol
bool b1,b2,b3,b4,b5,b6,b7,b8;

void setup() 
 // Mulai komunikasi serial dengan kecepatan 9600 bit per detik
 Serial.begin(9600);
 
 // Setel pin-pin digital sebagai input
 pinMode(DS1, INPUT);
 pinMode(DS2, INPUT);
 pinMode(DS3, INPUT);
 pinMode(DS4, INPUT);
 pinMode(DS5, INPUT);
 pinMode(DS6, INPUT);
 pinMode(DS7, INPUT);
 pinMode(DS8, INPUT);
}

void loop()
{
 // Baca status dari setiap tombol
 int b8 = digitalRead(DS8);
 int b7 = digitalRead(DS7);
 int b6 = digitalRead(DS6);
 int b5 = digitalRead(DS5);
 int b4 = digitalRead(DS4);
 int b3 = digitalRead(DS3);
 int b2 = digitalRead(DS2);
 int b1 = digitalRead(DS1);
 
 // Periksa status dari setiap tombol dan kirim nomor yang sesuai melalui Serial
 // LOW berarti tombol ditekan untuk DS8 karena konfigurasi resistor pull-up
 if (b8 == HIGH) 
 {
  Serial.write('8'); // Kirim '8' melalui Serial jika tombol 8 ditekan
 }
 else if (b7 == HIGH) // Untuk tombol lain, HIGH berarti tombol ditekan
 {
  Serial.write('7'); // Kirim '7' melalui Serial jika tombol 7 ditekan
 }
 else if (b6 == HIGH)
 {
  Serial.write('6'); // Kirim '6' melalui Serial jika tombol 6 ditekan
 }
 else if (b5 == HIGH)
 {
  Serial.write('5'); // Kirim '5' melalui Serial jika tombol 5 ditekan
 }
 else if (b4 == HIGH)
 {
  Serial.write('4'); // Kirim '4' melalui Serial jika tombol 4 ditekan
 }
 else if (b3 == HIGH)
 {
  Serial.write('3'); // Kirim '3' melalui Serial jika tombol 3 ditekan
 }
 else if (b2 == HIGH)
 {
  Serial.write('2'); // Kirim '2' melalui Serial jika tombol 2 ditekan
 }
 else if (b1 == HIGH)
 {
  Serial.write('1'); // Kirim '1' melalui Serial jika tombol 1 ditekan
 }
 
 delay(20); // Tunda sebentar untuk debouncing dan mencegah pembacaan berulang
}

Slave

// Definisi array untuk menyimpan nomor pin LED
int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
char message; // Variabel untuk menyimpan pesan yang diterima

void setup() 
 Serial.begin(9600); // Memulai komunikasi serial dengan kecepatan 9600 bits per detik
 
 // Melakukan iterasi untuk setiap LED dan mengatur sebagai OUTPUT
 for (int i = 0; i < 8; i++)
 {
  pinMode(led[i], OUTPUT);
 }
}

void loop()
{
 if (Serial.available()) // Periksa apakah ada data yang tersedia untuk dibaca dari serial
{
 message = Serial.read(); // Membaca karakter yang diterima dari serial
 
 // Mengecek pesan yang diterima dan menyalakan LED yang sesuai
 if (message == '1')
 {
  digitalWrite(led[0], 1); // Menyalakan LED 1
 }
 else if (message == '2')
 {
  digitalWrite(led[1], 1); // Menyalakan LED 2
 }
 else if (message == '3')
 {
  digitalWrite(led[2], 1); // Menyalakan LED 3
 }
 else if (message == '4')
 {
  digitalWrite(led[3], 1); // Menyalakan LED 4
 }
 else if (message == '5')
 {
  digitalWrite(led[4], 1); // Menyalakan LED 5
 }
 else if (message == '6')
 {
  digitalWrite(led[5], 1); // Menyalakan LED 6
 }
 else if (message == '7')
 {
  digitalWrite(led[6], 1); // Menyalakan LED 7
 }
 else if (message == '8')
 {
  digitalWrite(led[7], 1); // Menyalakan LED 8
 }
}
delay(20); // Tunda sebentar

 // Mematikan semua LED setelah tunda
 digitalWrite(led[0], LOW);
 digitalWrite(led[1], LOW);
 digitalWrite(led[2], LOW);
 digitalWrite(led[3], LOW);
 digitalWrite(led[4], LOW);
 digitalWrite(led[5], LOW);
 digitalWrite(led[6], LOW);
 digitalWrite(led[7], LOW);
}

5. Kondisi [Kembali]

Modul 3 Percobaan 1

6. Video Demo[Kembali]






7. Download File [Kembali]
Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Demo Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet Dipswitvh klik disini
Download Datasheet led Klik disini








Tidak ada komentar:

Posting Komentar

BAHAN PRESENTASI UNTUK PRAKTIKUM uP & uC 2023 Oleh : Farrel Luis Fadhlika NIM. 2110952049   Dosen Pengampu : Dr. Darwison, S. T., M. T. ...