Tugas Pendahuluan 1 - M2

 





Tugas Pendahuluan 1
== Percobaan 1 Kondisi 5 ==


  1. Membuka proteus
  2. Buka file proteus yang sudah disesuaikan dengan kondisi
  3. Running rangkaiannya
  4. Sesuaikan dengan kondisi yang diinginkan



Arduino Uno


LCD

Dipswitch
Motor Servo


IC L293D

Sensor LDR




Sebelum menjalankan rangkaian, compile terlebih dahulu listing program pada arduino IDE dan pastikan kembali file .HEX pada arduino diproteus sesuai dengan yang ada di hasil compiling arduino IDE.


Pada gambar rangkaian diatas adalah kondisi awal rangkaian sebelum dijalankan.


Pada gambar rangkaian disini adalah jika kondisi semua switch aktif dan adcnya <200 atau >600 yang bisa diatur pada ldrnya. Setelah mendapat inputan berupa switch aktif dan adcnya memenuhi kondisi maka arduino akan menjalankan programnya yang nantinya akan diteruskan pada serial monitor untuk memperlihatkan status dari running rangkaian. Selanjutnya, akan masuk kepada driver motor disini yang digunakan adalah driver motor l293d yang mana disini berfungsi untuk mengendalikan motor sesuai perintah, dimana perintahnya berdasarkan kondisi maka motor akan bergerak ke kanan selama 3 detik dan kekiri selama 4 detik.




#include <LiquidCrystal.h> 
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

int sw1 = 2; 
int sws[] = {3, 4, 7}; 
int numsw = 3; 
int front = 6; 
int back = 5; 

void setup() { 
  lcd.begin(16, 2); 
  pinMode(sw1, INPUT); 
  for(int thesw = 0; thesw < numsw; thesw++){ 
    pinMode(sws[thesw], INPUT); 
  } 
  pinMode(front, OUTPUT); //Pin front dan back diatur sebagai output untuk mengendalikan arah putaran motor
  pinMode(back, OUTPUT); 
  Serial.begin(9600); 

void loop() { 
  int s1 = digitalRead(sw1); 
  int ldr = analogRead(A0); 

  if (s1 == HIGH) { 
    int activesw = 0; 
    for (int thesw = 0; thesw < numsw; thesw++) { 
      if (digitalRead(sws[thesw]) == HIGH) { 
        activesw++; 
      } 
    } 
    Serial.print("Number of Switch : "); //Menghitung jumlah switch yang aktif 
    Serial.println(activesw); 

    if ((ldr < 200 || ldr > 600) && activesw == numsw) { // New condition
      lcd.clear(); 
      lcd.setCursor(0, 1); 
      lcd.print("Kel 24 :)"); // Display character at column 1
      digitalWrite(front, HIGH); // arah motor kekanan
      digitalWrite(back, LOW); 
      delay(3000); // Rotate right for 3 seconds

      digitalWrite(front, LOW); // Stop motor
      digitalWrite(back, LOW);
      delay(1000); // Pause for 1 second

      digitalWrite(front, LOW); // arah motor kekiri
      digitalWrite(back, HIGH); 
      delay(4000); // Rotate left for 4 seconds
    } else {
      lcd.clear(); 
      lcd.setCursor(4, 0); 
      lcd.print("-_-"); //kondisi tidak terpenuhi
      delay(100); 
    } 
  } 
}

Modul 1: Percobaan 1 Kondisi 5
"(Ketika ADC < 200 atau >600) dan semua switch aktif, motor berputar ke kanan 3 detik lalu kiri 4 detik dan muncul karakter pada kolom 1 LCD"

Tidak ada komentar:

Posting Komentar

  PRATIKUM SISTEM DIGITAL TAHUN 2022 OLEH : Tyas Ananda Putri 2010952036 JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS ANDALAS PADANG 2021