TUGAS PENDAHULUAN MODUL 3 PERCOBAAN 1 KONDISI 6
- Modul 3 Komunikasi
- Buatlah rangkaian sesuai dengan kondisi yang telah dipilih
- Buat Program pada software Arduino IDE
- Masukkan program yang telah dibuat pada software Arduino IDE sebagai library Arduino
- Jalankan rangkaian, sesuai dengan kondisi yang diinginkan
a. Rangkaian Simulasi
Pada modul 3 percobaan 1 kondisi 6 ini kita menggunakan 4 buah switch pull down dan 4 buah switch pull up sebagai inputan dan 8 buah led sebagai output. Selanjutnya juga menggunakan 2 buah modul, pertama arduino master sebagai pemberi perintah dan arduino slave sebagai penerima/pengeksekusi perintah. Arduino master terhubung dengan 8 buah inputan switch dan arduino slave terhubung dengan 8 buah outputan berupa led. Pada percobaan ini menggunakan komunikasi UART yang ditandai dengan pin Tx pada arduino master terhubung dengan pin Rx pada arduino slave dan pin Rx pada arduino master terhubung dengan pin Tx arduino slave.
Sesuai dengan kondisi yang diminta, ketika 1 switch pull-down dan 4 switch pull up aktif maka akan mengaktifkan running led, dimana hal ini sesuai dengan program yang telah kita inputkan pada arduino
if (message == 'R'){
for(i=0; i<9; i++){
digitalWrite(led[i], 1);
digitalWrite(led[i-1], 0);
delay(100);
}
maka ketika kondisi ini sesuai maka program akan menyalakan LED satu per satu secara bergantian dan mematikan LED sebelumnya setelah LED berikutnya hidup.
Sesuai dengan kondisi kedua yang diminta, 4 switch pull down dan 1 switch pull up aktif maka akan mengaktifkan blinking led, dimana hal ini sesuai dengan program yang telah kita inputkan pada arduino
}else if (message == 'B'){
for(i=0; i<8; i++){
digitalWrite(led[i], 1);
}
maka ketika kondisi ini sesuai maka program akan menyalakan semua LED sejenak dan langsung mematikan semua LED secara bersamaan.
a. Flowchart
- Arduino Slave
- b. Listing Program
Arduino Master
//master
int sw_pd[] = {2,3,4,5};
int sw_pu[] = {10,11,12,13};
int i, sw_on_pd, sw_on_pu, SW_PD[4], SW_PU[4];
void setup() {
Serial.begin(9600);
for(i=0; i<4; i++){
pinMode(sw_pd[i], INPUT);
}
for(i=0; i<4; i++){
pinMode(sw_pu[i], INPUT_PULLUP);
}
}
void penjumlahan(){
for(i=0; i<4; i++){
SW_PD[i] = digitalRead(sw_pd[i]);
}
for(i=0; i<4; i++){
SW_PU[i] = digitalRead(sw_pu[i]);
}
sw_on_pd = SW_PD[0] + SW_PD[1] + SW_PD[2] + SW_PD[3];
sw_on_pu = SW_PU[0] + SW_PU[1] + SW_PU[2] + SW_PU[3];
}
void loop() {
penjumlahan();
if (sw_on_pd == 1 && sw_on_pu == 0){
Serial.write('R');
delay(1000);
}
else if (sw_on_pd == 4 && sw_on_pu == 3){
Serial.write('B');
delay(1000);
}
else{
Serial.write('0');
delay(1000);
}
}
- Arduino Slave
//slave
int led[] = {2,3,4,5,6,7,8,9};
int i;
void setup() {
Serial.begin(9600);
for(i=0; i<8; i++){
pinMode(led[i], OUTPUT);
}
}
void loop() {
if (Serial.available()){
char message = Serial.read();
if (message == 'R'){
for(i=0; i<9; i++){
digitalWrite(led[i], 1);
digitalWrite(led[i-1], 0);
delay(100);
}
}else if (message == 'B'){
for(i=0; i<8; i++){
digitalWrite(led[i], 1);
}
delay(100);
for(i=0; i<8; i++){
digitalWrite(led[i], 0);
}
}else if (message == '0'){
for(i=0; i<8; i++){
digitalWrite(led[i], 0);
}
}
}
}
4 switch dalam pull-down & 4 switch dalam pull-up, 1 switch pull-down dan 4 switch pull up mengaktifkan running led, 4 switch pull down dan 1 switch pull up mengaktifkan blinking led
Download HTML klik disini
Download Rangkaian Proteus klik disini
Download Program Arduino Master klik disini
Download Program Arduino Slave klik disini
Download Video klik disini
Download Datasheet Arduino klik disini
Komentar
Posting Komentar