Tugas Pendahuluan 1 Modul 3
(Percobaan 1 Kondisi 5)
1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
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 simulasi rangkaian pada proteus.
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 simulasi rangkaian pada proteus.
5. Selesai.
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Rangkaian Simulasi Sebelum dirunning:
Prinsip Kerja :
Pada percobaan ini kita menggunakan inputan berupa dip switch pull up dan dip switch pull down. Sedangkan untuk outputnya menggunakan LED. Kita menggunakan 2 buah arduino, arduino pertama berfungsi debagai master, sedangkan arduino kedua berfungsi sebagai slave.
MASTER:
Arduino master memiliki tanggung jawab untuk mengawasi masukan dari dipswitch dan mengirimkan pesan ke Arduino slave sesuai dengan kondisi yang terdeteksi. Delapan tombol switch terhubung ke pin input Arduino master, dengan empat tombol dalam kondisi pull-down dan empat lainnya dalam kondisi pull-up. Hal ini memungkinkan setiap tombol switch untuk menentukan apakah pin inputnya berlogika 1 atau 0. Arduino master secara terus-menerus memeriksa kondisi tombol menggunakan fungsi `digitalRead()` pada setiap pin input. Jika kondisi tombol memenuhi syarat untuk mengaktifkan running LED (dua tombol pull-down dan satu tombol pull-up), Arduino master akan mengirimkan pesan 'r' melalui komunikasi serial. Sedangkan jika kondisi tombol memenuhi syarat untuk mengaktifkan blinking LED (tiga tombol pull-down dan empat tombol pull-up), Arduino master akan mengirimkan pesan 'b' melalui komunikasi serial.
SLAVE:
Pada sisi Arduino slave, fungsinya adalah menerima pesan yang dikirim oleh Arduino master dan mengatur LED sesuai dengan pesan yang diterima. Terdapat delapan LED yang terhubung ke pin output Arduino slave yang akan dikendalikan berdasarkan pesan yang diterima. Arduino slave akan terus memonitor komunikasi serial untuk menerima pesan baru dari Arduino master. Ketika pesan 'r' diterima, Arduino slave akan mengaktifkan running LED dengan mengatur LED untuk menyala dan mematikan secara berurutan. Sebaliknya, ketika pesan 'b' diterima, Arduino slave akan mengaktifkan blinking LED dengan membuat LED berkedip secara bergantian antara nyala dan mati. Melalui mekanisme ini, Arduino master dan slave dapat berinteraksi dan mengontrol LED sesuai dengan input dari tombol yang ditekan pada Arduino master, memberikan respons melalui LED.
4. Flowchart dan Listing Program
[Kembali]
Flowchart :
Flowchart di modul:
Listing Program :
MASTER:
#define DS1 2
#define DS2 3
#define DS3 4
#define DS4 5
#define DS5 6
#define DS6 7
#define DS7 8
#define DS8 9
bool b1, b2, b3, b4, b5, b6, b7, b8;
void setup() {
Serial.begin(9600);
pinMode(DS1, INPUT_PULLUP);
pinMode(DS2, INPUT_PULLUP);
pinMode(DS3, INPUT_PULLUP);
pinMode(DS4, INPUT_PULLUP);
pinMode(DS5, INPUT);
pinMode(DS6, INPUT);
pinMode(DS7, INPUT);
pinMode(DS8, INPUT);
}
void loop() {
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);
// Hidupkan LED sesuai dengan kondisi tombol yang ditekan
if (b8 == HIGH && b7 == HIGH && b6 == LOW && b5 == LOW &&
b4 == LOW && b3 == HIGH && b2 == HIGH && b1 == HIGH) {
// Mengaktifkan running LED
Serial.write('r');
} else if (b8 == HIGH && b7 == HIGH && b6 == HIGH && b5 == LOW &&
b4 == LOW && b3 == LOW && b2 == LOW && b1 == LOW) {
// Mengaktifkan blinking LED
Serial.write('b');
}
delay(20);
}
SLAVE:
int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
char message;
void setup() {
Serial.begin(9600);
for (int i = 0; i < 8; i++) {
pinMode(led[i], OUTPUT);
}
}
void loop() {
if (Serial.available()) {
message = Serial.read();
if (message == 'r') {
// Mengaktifkan running LED
for (int i = 0; i < 8; i++) {
digitalWrite(led[i], HIGH);
delay(100);
digitalWrite(led[i], LOW);
}
} else if (message == 'b') {
// Mengaktifkan blinking LED
for (int i = 0; i < 8; i++) {
digitalWrite(led[i], HIGH);
}
delay(500);
for (int i = 0; i < 8; i++) {
digitalWrite(led[i], LOW);
}
delay(500);
}
}
}
Percobaan 1 Kondisi 5
4 switch dalam pull-down &
4 switch dalam pull-up, 2
switch pull-down dan 1
switch pull up mengaktifkan
running led,3 switch pull
down dan 4 switch pull up
mengaktifkan blinking led
6. Video Simulasi
[Kembali]
7. Download File
[Kembali]
Datasheet LED Download
Datahseet resistor Download
Datasheet Dipswitch Download
Tidak ada komentar:
Posting Komentar