Laporan Akhir 1 (UART)


 

1. Kondisi [KEMBALI]

2. Rangkaian Simulasi [KEMBALI]
3. Flowchart [KEMBALI]
//MASTER
//SLAVE

4. Listing Program [KEMBALI]
//MASTER

#define button 2
bool state, lastState;
void setup() {
  // put your setup code here, to run once:
    pinMode(button, INPUT);
    Serial.begin(9600);
    lastState = digitalRead(button);
}
void loop() {
  // put your main code here, to run repeatedly:
  state = digitalRead(button);
  if(state != lastState){
    lastState = state;
    // TODO: send data to slave
    if(state == 0){
      Serial.write('A');
    }else{
      Serial.write('B');
    }
  }
  delay(10);
}
//SLAVE
#define led 2
void setup() {
  // put your setup code here, to run once:
  pinMode(led, OUTPUT);
  Serial.begin(9600);
  digitalWrite(led, LOW);
}
void loop() {
  // put your main code here, to run repeatedly:
  if (Serial.available() > 0) {
    char c = Serial.read();
   
    if (c == 'A') {
      digitalWrite(led, HIGH);
    } else if(c == 'B') {
      digitalWrite(led, LOW);
    }
  }
}
5. Analisa [KEMBALI]
A.Buatlah program agar ada 2 pushbutton,1 led dengan 4 kondisi!

//Master
#define button1 2 //Deklarasi pin 2 untuk button1
 #define button2 4 //Deklarasi pin 2 untuk button2
void setup()        //Semua kode dalam fungsi ini dieksekusi sekali
{
  pinMode(button1, INPUT_PULLUP);
  pinMode(button2, INPUT_PULLUP);
  Serial.begin(9600); //Set baud rate 9600
}
void loop()         //Semua kode dalam fungsi ini dieksekusi berulang
{
  int nilai1 = digitalRead(button1);
  int nilai2 = digitalRead(button2);
  //Button ditekan
  if (nilai1 == 1 && nilai2 == 0)
  {
    Serial.print("1");
  }
  else if(nilai1== 0 && nilai2== 1)
  {
    Serial.print("2");
  }
  else if(nilai1== 0 && nilai2== 0)
  {
    Serial.print("3");
  } else
  {Serial.print("4");}
  delay(200);
}
//Slave
#define led  2 //Deklarasi pin 2 untuk LED
void setup()    //Semua kode dalam fungsi ini dieksekusi sekali
{
  pinMode(led, OUTPUT); //Deklarasi LED sebagai output
  Serial.begin(9600);           //Set baud rate 9600
}
void loop()                          //Semua program dalam fungsi ini dieksekusi berulang
{
  if (Serial.available() > 0)
  {
    int data1 = Serial.read();
    if (data1 == '1') //Jika data yang dikirimkan berlogika
    {
      digitalWrite(led, HIGH); //LED menyala
      delay(10);
      digitalWrite(led, LOW); //LED mati
      delay(10);
    }
    else if (data1 == '2')    {
      digitalWrite(led, HIGH); //LED menyala
      delay(500);
      digitalWrite(led, LOW); //LED mati
      delay(500);
    }
    else if (data1 == '3')    {
      digitalWrite(led, HIGH); //LED menyala
    }
    else
    {
      digitalWrite(led, LOW); //LED mati
    }}}

6. Video Simulasi [KEMBALI]


7. Link Download [KEMBALI]
Listing Program klik disini
Video Percobaan klik disini
 

Tidak ada komentar:

Posting Komentar