Laporan Akhir 1






1. Prosedur Percobaan [Kembali]

  • Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
  • Buat program di aplikasi arduino IDE
  • Compile program yang telah dibuat, upload ke dalam Arduino Uno 
  • Uji coba program pada rangkaian percobaan


2. Foto Hardware dan Diagram Blok [Kembali]

        1. Arduino Uno



        2. Push Button




        3. LED


        4. Kabel Jumper


        5. Breadboard



Diagram Blok:





Prinsip Kerja

Pada percobaan ini membutuhkan 2 arduino sebagai master dan slave. Arduino master terhubung dengan push button di pin 2-9 dan arduino slave terhubung ke pin 2-9 dengan output LED. Pin 0 dan 1 masing-masing arduino saling terhubung secara silang, Tx pada arduino master terhubung dengan Rx pada arduino slave, begtupula sebaliknya.

Tiap button yang ditekan akan berlogika 1, sinyal input diteruskan ke arduino master lalu dikirimkan ke arduino slave. Data diterima melalui pin Rx pada arduino slave dan meneruskan ke output. Tiap 1 button aktif yang terbaca oleh arduino slave akan menyalakan 1 LED tertentu.
 

4. Flowchart dan Listing Program [Kembali]

    Arduino 1 (pemberi informasi)



    Arduino 2 (penerima informasi)






// arduino pengirim data // 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 }


Arduino 2

// arduino penerima data // 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]

    Percobaan 1 Modul 3: Komunikasi UART menggunakan arduino









Posting Komentar

0 Komentar