TP2 P1 K6




1. Foto Hardware dan Diagram Blok [Kembali]

  1. Arduino Uno


        2. LCD




        3. Sensor LDR (ADC)

        

 

      4. DIP Switch

     
 5. L293D





 6. Motor DC
   
      7. Potensiomotor

 

 

      8. Baterai


        9. Resistor

       10. Power Supply


     11. Ground

 

  

2. Prosedur Percobaan  [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan dengan modul



Rangkaian terdiri dari dip switch sebagai masukan, LDR sebagai pengatur nilai ADC, LCD sebagai penampil nilai ADC, driver motor L293D sebagai pengendali gerakan motor, dan motor steper.

Sesuai dengan kondisi, Ketika (ADC < 200 atau >600) dan tidak ada switch aktif atau off, motor berputar ke kanan 3 detik lalu kiri 4 detik dan muncul karakter pada kolom 1 LCD yaitu berupa nilai ADC, namun jika ada switch aktif maka motor tidak berputar.


4. Flowchart dan Listing Program [Kembali]






#include <LiquidCrystal.h>

LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
int sw1 = 2;
int sw2 = 3;
int sw3 = 4;
int sw4 = 7;
int front = 6;
int back = 5;

void setup() {
  lcd.begin(16, 2);
  pinMode(sw1, INPUT_PULLUP); // Menggunakan pull-up resistor
  pinMode(sw2, INPUT_PULLUP); // Menggunakan pull-up resistor
  pinMode(sw3, INPUT_PULLUP); // Menggunakan pull-up resistor
  pinMode(sw4, INPUT_PULLUP); // Menggunakan pull-up resistor
 
  pinMode(front, OUTPUT);
  pinMode(back, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int s1 = digitalRead(sw1);
  int s2 = digitalRead(sw2);
  int s3 = digitalRead(sw3);
  int s4 = digitalRead(sw4);
  int ldr = analogRead(A0);

  // Tampilkan nilai ADC pada LCD
  lcd.setCursor(0, 0); // Setel kursor ke kolom pertama baris pertama
  lcd.print("ADC: ");
  lcd.print(ldr); // Cetak nilai ADC
  delay(100);

  if (s1 == LOW && s2 == LOW && s3 == LOW && s4 == LOW) { // Jika tidak ada switch yang aktif
    if (ldr < 200 || ldr > 600) {
      // Motor berputar ke kanan selama 3 detik
      digitalWrite(front, HIGH);
      digitalWrite(back, LOW);
      delay(3000);
     
      // Motor berputar ke kiri selama 4 detik
      digitalWrite(front, LOW);
      digitalWrite(back, HIGH);
      delay(4000);
    }
  } else {
    // Jika ada switch yang aktif, motor tidak berputar
    digitalWrite(front, LOW);
    digitalWrite(back, LOW);
   
    // Tampilkan pesan pada LCD
    lcd.clear();
  }
  delay(100); // Delay singkat sebelum membaca ulang
}


5. Kondisi [Kembali]

Ketika (ADC < 200 atau >600) dan tidak ada switch aktif, motor berputar ke kanan 3 detik lalu kiri 4 detik dan muncul karakter pada kolom 1 LCD, namun jika ada switch aktif maka motor tidak berputar.


Tidak ada komentar:

Posting Komentar

M4

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori Percobaan a. ...