Egi Rahman 2110952042

.

MODUL 3 LA 1




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
       
    Pada percobaan 1 ini merupakan percobaan komunikasi UART, ada dua Arduino yang digunakan berfungsi sebagai master dan slave. Arduino master bertindak sebagai pengirim perintah sedangkan Arduino slave bertugas sebagai penerima dan pelaksana perintah. Arduino master terhubung dengan delapan push button sebagai inputnya, sementara Arduino slave dilengkapi dengan delapan LED sebagai outputnya. Kedua Arduino ini saling terhubung melalui komunikasi UART, dengan pin TX pada Arduino master terhubung ke pin RX pada Arduino slave, dan sebaliknya yang mana pin TX dan RX saling berhubgung sil;ang TX pada slave ke RX pada master dan sebalakinya, membentuk saluran komunikasi dua arah. Saat sistem diaktifkan, Arduino master mulai memantau status dari delapan push button yang terhubung. Setiap kali satu tombol ditekan, Arduino master mengirimkan data melalui saluran UART dengan kode yang sesuai untuk menunjukkan tombol mana yang ditekan. Arduino slave, yang terus memonitor port serialnya, menerima data yang dikirim oleh Arduino master. Setelah menerima data, Arduino slave menginterpretasikan instruksi yang terkandung dalamnya dan menanggapi dengan mengontrol keadaan LED yang sesuai. Misalnya, jika Arduino master mengirimkan kode yang menunjukkan tombol kedua ditekan, Arduino slave akan mematikan LED kedua. Proses ini berlanjut, memungkinkan pengguna untuk mengendalikan keadaan LED pada Arduino slave melalui tombol-tombol pada Arduino master, menciptakan interaksi yang efektif antara kedua perangkat mikrokontroler tersebut.

ctt : saat meinput dari arduino ide lepaskan dulu wiring pin TX dan RX

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








0 komentar:

Posting Komentar

Blogger news

Blogger templates