Jumat, 26 April 2024

TP 1




Tugas Pendahuluan 1 
Modul 3

Percobaan I

UART - Button & LED
 


1. Prosedur
[Kembali]


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. Hardware dan Diagram Blok [Kembali]

Hardware :

1.Arduino Uno




2. Switch SPDT








3.Led




4. Resistor



Diagram Block :


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
 
Rangkaian Simulasi :

Prinsip Kerja :

Pada rangkaian percobaan 1 kondisi 6, terdapat dua Arduino Uno yang digunakan, dimana satu Arduino bertindak sebagai master dan yang lainnya sebagai slave. Arduino master terhubung ke bagian input, yaitu d8 switch SPDT yang terhubung dalam kondisi 4 pull down dan 4 pull down . Sedangkan, Arduino slave terhubung ke bagian output, di mana terdapat LED. Arduino Master bertindak sebagai arduino yang akan memberikan commando/perintah yang berasal dari inputannya ke arduino slave. sedangkan arduino slave bertindak sebagai penerima/ yang menjalankan commando tersebut dalam bentuk output yakni LED.

Jika 4 switch dalam pull-down & 4 switch dalam pull-up, 
Pada saat 1 switch pull-down dan 4 switch pull up mengaktifkan running led,
Pada saat 4 switch pull down dan 1 switch pull up mengaktifkan blinking led

4. Flowchart dan Listing Program [Kembali]
 Flowchart:
  • Arduino Master
  • Arduino Slave

    Listing Program:
> Arduino Master
//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_PULLUP); 
pinMode(DS6, INPUT_PULLUP); 
pinMode(DS7, INPUT_PULLUP); 
pinMode(DS8, INPUT_PULLUP); 
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); 
 //Serial.println("8"); 
 
  // Hidupkan LED sesuai dengan tombol yang ditekan 
    if (b1 == HIGH &&b2==LOW&&b3==LOW&&b4==LOW&& b5 == HIGH && b6 ==HIGH && b7 ==HIGH &&b8==HIGH) 
    { 
      Serial.write('1'); 
    } 
  else if  (b1 == LOW &&b2==HIGH&&b3==LOW&&b4==LOW&& b5 == HIGH && b6 ==HIGH && b7 ==HIGH &&b8==HIGH) 
    { 
      Serial.write('1'); 
    } 
  else if  (b1 == LOW &&b2==LOW&&b3==HIGH&&b4==LOW &&b5 == HIGH && b6 ==HIGH && b7 ==HIGH &&b8==HIGH) 
    { 
      Serial.write('1'); 
    } 
   else if  (b1 == LOW &&b2==LOW&&b3==LOW&&b4==HIGH&& b5 == HIGH && b6 ==HIGH && b7 ==HIGH &&b8==HIGH) 
    { 
      Serial.write('1'); 
    } 
    if (b8 == HIGH && b1 == HIGH && b2 ==HIGH && b3 ==HIGH && b4==HIGH && b7==LOW&& b6==LOW && b5==LOW) 
    { 
      Serial.write('2'); 
    } 
  else if  (b8 == LOW && b1 == HIGH && b2 ==HIGH && b3 ==HIGH && b4==HIGH && b7==HIGH&& b6==LOW && b5==LOW) 
    { 
      Serial.write('2'); 
    } 
  else if (b8 == LOW && b1 == HIGH && b2 ==HIGH && b3 ==HIGH && b4==HIGH && b7==LOW&& b6==HIGH && b5==LOW) 
    { 
      Serial.write('2'); 
    }
  else if  (b8 == LOW && b1 == HIGH && b2 ==HIGH && b3 ==HIGH && b4==HIGH && b7==LOW&& b6==LOW && b5==HIGH) 
    { 
      Serial.write('2'); 
    }
  
  delay(20); 


> Arduino Slave
//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 == '1') 
    { 
      digitalWrite(led[0], HIGH);
      delay (200);
      digitalWrite(led[0], LOW);
      digitalWrite(led[1], HIGH);
      delay (200);
      digitalWrite(led[1], LOW);
      digitalWrite(led[2], HIGH);
      delay (200);
      digitalWrite(led[2], LOW);
      digitalWrite(led[3], HIGH);
      delay (200);
      digitalWrite(led[3], LOW);
      digitalWrite(led[4], HIGH);
      delay (200);
      digitalWrite(led[4], LOW);
      digitalWrite(led[5], HIGH);
      delay (200);
      digitalWrite(led[5], LOW);
      digitalWrite(led[6], HIGH);
      delay (200);
      digitalWrite(led[6], LOW);
      digitalWrite(led[7], HIGH);
      delay (200);
      digitalWrite(led[7], LOW);
      digitalWrite(led[8], HIGH);
      delay (200);
      digitalWrite(led[8], LOW);
      digitalWrite(led[0], HIGH);
      
    } 
    else if (message == '2') 
    { 
    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);
    delay (20);
    digitalWrite(led[0], 1); 
    digitalWrite(led[1], 1); 
    digitalWrite(led[2], 1); 
    digitalWrite(led[3], 1); 
    digitalWrite(led[4], 1); 
    digitalWrite(led[5], 1); 
    digitalWrite(led[6], 1); 
    digitalWrite(led[7], 1);  
    } 
    
    else if (message == '0'){
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); 
    }
}delay(20); 
digitalWrite(led[0], 0); 
digitalWrite(led[1], 0); 
digitalWrite(led[2], 0); 
digitalWrite(led[3], 0); 
digitalWrite(led[4], 0); 
digitalWrite(led[5], 0); 
digitalWrite(led[6], 0); 
digitalWrite(led[7], 0); 
}


5. Kondisi [Kembali]

 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.



6. Video Simulasi [Kembali]





7. Download File [Kembali]

HTML                        klik disini
Rangkaian Simulasi   klik disini
Video Simulasi          klik disini
Listing Program         klik disini
Datasheet Arduino     klik disini
Datasheet LED           klik disini




Tidak ada komentar:

Posting Komentar