Tugas Pendahuluan 1

MODUL 2 PERCOBAAN 1 KONDISI 3

      [KEMBALI KE MENU SEBELUMNYA]  




Percobaan 1

Sensor LDR dengan LCD

1. Prosedur  [back]

  • Rangkailah seperti rangkaian berikut
  • Buka Arduino IDE dan masukan listing program
  • Upload program ke arduino

2. Foto Hardware dan diagram blok [back]

1. Arduino



2. DipSwitch








3. Resistor





4. LCD


5. Motor DC




6. LDR





7. L293D







Diagram Blok:




3. Rangkaian Simulasi dan Prinsip Kerja  [back]


                                                    Gambar 1. Rangkaian Simulasi.

Prinsip Kerja:

    Dapat dilihat dari rangkaian diatas, nilai yang mempengaruhi adalah LDR dan Dipswictch, jadi ketika 3 diptswitch aktif yaitu pin 3, 4, 5 dan nilai LDR antara 200 sampai 600, maka akan muncul tulisan di LCD yaitu "Hello World! "dannilai ADC nya serta putaran motor kearah kanan lalu mati. 

4. Flowchart dan Listing Program  [back]

Flowchart:



  • Listing Program:
//Percobaan 1

// include the library code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
// Deklarasi pin
const int analogPin = A0; // Pin ADC untuk sensor
const int switch1 = 2; // Pin switch 1
const int switch2 = 3; // Pin switch 2
const int switch3 = 4; // Pin switch 3
const int switch4 = 5; // Pin switch 4
const int motor1 = A1; // Pin motor 1
const int motor2 = A2; // Pin motor 2
const int rs = 13, en = 12, d4 = 11, d5 = 10, d6 = 9, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

// Deklarasi variabel
int nilaiADC;
bool switchAktif;
char karakter;

void setup() {
  // Inisialisasi pin
  pinMode(analogPin, INPUT);
  pinMode(switch1, INPUT);
  pinMode(switch2, INPUT);
  pinMode(switch3, INPUT);
  pinMode(motor1, OUTPUT);
  pinMode(motor2, OUTPUT);
  // Inisialisasi Serial
  Serial.begin(9600);
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.setCursor(0, 0);
  lcd.print("hello, world!");
}

void loop() {
 // Baca nilai ADC dari sensor LDR
  nilaiADC = analogRead(analogPin);
 
  // Baca status switch
  switchAktif = (digitalRead(switch1) == HIGH) && (digitalRead(switch2) == HIGH) && (digitalRead(switch3) == HIGH);
 
  // Kontrol motor
  if (switchAktif && (nilaiADC >= 200 && nilaiADC <= 600)) {
    // Putar motor ke kanan selama 3 detik
    digitalWrite(motor1, HIGH);
    digitalWrite(motor2, LOW);
    delay(3000);
   
    // Matikan motor
    digitalWrite(motor1, LOW);
    digitalWrite(motor2, LOW);
   
    // Tampilkan karakter pada kolom 1 LCD
    karakter = 'R';
    lcd.setCursor(0, 1);
    lcd.print(karakter);
  } else {
    // Matikan motor
    digitalWrite(motor1, LOW);
    digitalWrite(motor2, LOW);
   
    // Hapus karakter pada kolom 1 LCD
    lcd.setCursor(0, 1);
    lcd.print(" ");
  }
 
  // Tampilkan nilai ADC di baris 2 LCD
  lcd.setCursor(0, 2);
  lcd.print(nilaiADC);
 
  // Delay
  delay(100);
}

5. Video Simulasi  [back]


7. Download File  [back]









Komentar

Postingan Populer