Laporan Akhir 2 Modul 2 Percobaan 2



MODUL 2
PERCOBAAN 2 
1. Prosedur
[Kembali]
  • Rangkailah seperti rangkaian berikut
  • Buka Arduino IDE dan masukan listing Program
  • Upload program ke arduino
  • Mencoba rangkaiannya dengan memvariasikan kondisi interupt (Falling, Rising, High dan Low)
2. Hardware dan diagram blok [Kembali]
      a. hardware


                                          
            b. Digram Blok




3. Rangkaian Simulasi dan Prinsip kerja [Kembali]

A. Gambar Rangkaian

                         
PRINSIP KERJA
     
Percobaan ini menunjukkan cara membuat sistem kontrol sederhana dengan Arduino. Berbagai komponen perangkat keras seperti LED, tombol, dan buzzer digunakan untuk membangun interaksi antara pengguna dan perangkat.

Cara kerjanya:

  • Saat Arduino dihidupkan:
    • LED akan terus menyala.
    • Nilai hitungan akan terus bertambah setiap detik dan ditampilkan pada layar LCD.
  • Ketika tombol ditekan:
    • Fungsi "tombol_ditekan()" akan dijalankan.
    • LED akan dimatikan.
    • Buzzer akan dinyalakan.
    • Nilai hitungan akan direset kembali ke 0.

Fungsi "tombol_ditekan()":

  • Fungsi ini menggunakan interrupt, yang memungkinkan respon yang cepat terhadap penekanan tombol.
  • Interrupt memungkinkan program untuk segera merespon aksi pengguna tanpa menunggu loop program selesai.    
4. FlowChart [Kembali]

a. Listing Program 
#include<LiquidCrystal_I2C.h>
#define LED 13 //pin 13 bernama LED
#define tombol 2 //pin 2 (pin interrupt) bernama tombol
#define buzzer 11


volatile byte led_nyala = LOW; //kondisi mula-mula LED mati
static int count = 0;
volatile byte buzzer_nyala = LOW;
LiquidCrystal_I2C lcd(0x27, 20, 4);


void setup() {
  lcd.init();
  lcd.backlight();
  pinMode(LED,OUTPUT);
  pinMode(tombol,INPUT);
  attachInterrupt(digitalPinToInterrupt(2),tombol_ditekan, FALLING); //pin 2 (interrupt 0) digunakan
sebagai interrupt eksternal
}
 
void loop() { //Main Program
  digitalWrite(LED,HIGH);
  digitalWrite(buzzer,LOW);
  lcd.setCursor(0,0);
  lcd.print("Count:"); 
    lcd.setCursor(0,1);
  lcd.print(count);
  count += 1; // menambahkan integer count dengan angka 1
  delay(1000);
}
 
//membuat fungsi bernama tombol_ditekan, fungsi ini (ISR) dieksekusi secara otomatis setelah arduino
memperoleh sinyal interrupt di pin 2
void tombol_ditekan()
{
  digitalWrite(LED,LOW);
  digitalWrite(buzzer,HIGH);
  count = 0;
  delay(100000);
}

b. Flowchart




5. Video Demo [Kembali]


6. Kondisi [Kembali]

PERCOBAAN 2 SESUAI DENGAN MODUL 2

8. Download File [Kembali]

Download HMTL Klik disini
Download Video Demo Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet LCD 2X16 klik disini
Donwload Datasheet Buzzer Klik disini
Download Datasheet LED Klik disini

Laporan Akhir 1 Modul 2 Percobaan 1



MODUL 2
PERCOBAAN 1 
1. Prosedur
[Kembali]
  • Rangkailah seperti rangkaian berikut
  • Buka Arduino IDE dan masukan listing Program
  • Upload program ke arduino
  • Mencoba rangkaiannya dengan memvariasikan kondisi interupt (Falling, Rising, High dan Low)
2. Hardware dan diagram blok [Kembali]
      a. hardware


                                                          
            b. Digram Blok





3. Rangkaian Simulasi dan Prinsip kerja [Kembali]

A. Gambar Rangkaian

                         
PRINSIP KERJA
 

Sistem kontrol ini menggunakan Arduino sebagai otak untuk memproses informasi dan mengendalikan motor DC. Sistem ini dirancang untuk merespons input dari sensor dan tombol untuk mengontrol motor DC.

Cara kerjanya:

  1. Program membaca status tombol utama dan nilai sensor LDR.
  2. Jika tombol utama aktif, program akan menghitung jumlah tombol tambahan yang aktif.
  3. Berdasarkan jumlah tombol yang aktif, program akan memilih tindakan yang sesuai.
    • Jika tidak ada tombol ditekan, program akan menampilkan nilai LDR pada LCD.
    • Jika satu tombol ditekan, motor DC akan diaktifkan.
    • Jika dua tombol ditekan, program akan memantau nilai LDR dan mengubah arah putaran motor berdasarkan nilai LDR (bergerak ke kiri atau kanan).
    • Jika tiga tombol ditekan, program akan mengontrol kecepatan motor DC menggunakan sinyal PWM berdasarkan nilai bacaan LDR.
  4. Selain mengendalikan motor, program juga memberikan informasi visual melalui LCD dan informasi debug melalui port serial.

Sistem ini memberikan respons yang adaptif terhadap kondisi lingkungan yang diukur oleh sensor dan input yang diberikan oleh pengguna melalui tombol.

4. FlowChart [Kembali]

a. Listing Program 
#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() {
  // put your setup code here, to run once:
lcd.begin(16,2);
pinMode(sw1,INPUT);
for(int thesw = 0; thesw < numsw; thesw++){
  pinMode(sws[thesw],INPUT);
}
pinMode(front,OUTPUT);
pinMode(back,OUTPUT);
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
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 : ");
Serial.println(activesw); 
delay(200);
switch(activesw){
  case 0 :
  lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(ldr);
    lcd.setCursor(0,1);
    lcd.print("The LDR Value");
    delay(200);
    break;
  
  case 1 :
  lcd.clear();
    lcd.setCursor(2,0);
    lcd.print("Running The");
    lcd.setCursor(2,1);
    lcd.print("Motor");
    digitalWrite(front,HIGH);
    digitalWrite(back,LOW);
    delay(200);
    break;

  case 2 :
  lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("LDR Value : ");
    lcd.setCursor(13,0);
    lcd.print(ldr);
    if(ldr < 550){
      lcd.setCursor(0,1);
      lcd.print("                 ");
      lcd.setCursor(0,1); 
            lcd.print("turn Motor right");
      digitalWrite(front,HIGH);
      digitalWrite(back,LOW);
    }else{
      lcd.setCursor(0,1);
      lcd.print("                 ");
      lcd.setCursor(0,1);
      lcd.print("turn Motor left");
      digitalWrite(front,LOW);
      digitalWrite(back,HIGH);
    }
    break;

  case 3 :
  int pwm = map(ldr,0,1023,0,255);
    digitalWrite(back,LOW);
    analogWrite(front,pwm);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("PWM = ");lcd.print(pwm);
    lcd.setCursor(0,1);
    lcd.print(" Control ???");
    delay(200);
    break;

}
delay(10);
}else{
  lcd.clear();
  lcd.setCursor(4,0);
  lcd.print("ELECTRONIC");
  lcd.setCursor(0,1); 
   lcd.print("&INSTRUMENTATION");
  delay(100);
}
}

b. Flowchart


5. Video Demo [Kembali]


6. Kondisi [Kembali]

PERCOBAAN 1 SESUAI DENGAN MODUL 2

8. Download File [Kembali]

Download HMTL Klik disini
Download Video Demo Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet LCD 2X16 klik disini
Donwload Datasheet motor listirk Klik disini
Download Datasheet L293D Klik disini

Tugas Pendahuluan 2 Modul 2 Percobaan 6


Percobaan VI

Kontrol Putaran Motor Stepper

1. Prosedur [Kembali]

  • Rangkailah seperti rangkaian berikut
  • Buka Arduino IDE dan masukan listing program
  • Upload program ke arduino
  • Variasikan logika sensor yang ditekan dan amati keluarannya pada LCD

2. Hardware dan Diagram Blok [Kembali]

    1. Arduino Uno

    2. Sensor Infrared

    3. IC ULN2003

    4. Power supply

    5. Ground

    6. Motor DC

    7. Button


Diagram Blok:



Rangkaian Simulasi.

Prinsip Kerja:

    Pada rangkaian percobaan 6 kondisi 3 ini menggunakan sensor infrared dan button yang berfungsi sebagai input dan motor dc berfungsi sebagai output. Dimana ketika sensor infrared berlogika 1 (HIGH) dan button ditekan maka output pada motor dc akan berputar berlawanan dengan arah jarum jam (ke kiri). Dan ketika sensor infrared berlogika 0 (LOW) dan button tidak ditekan maka output pada motor dc akan diam tidak bergerak, dimana sesuai dengan kondisi 3 percobaan 6 yaitu sertakan dengan IR sensor, ketika berlogika HIGH putaran motor berlawanan arah jarum jam.
 

4. Flowchart dan Listing Program [Kembali]

    Flowchart:

    Listing Program:

#include <LiquidCrystal.h>
#define PB1 A0
#define PB2 A1
#define PB3 A2
#define PB4 A3
#define PB5 A4
#define PB6 A5
#define PB7 1
#define PB8 2
const int rs = 13, en = 12, d4 = 9, d5 = 8, d6 = 7, d7 = 6;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
bool Button1,Button2,Button3,Button4,Button5,Button6,Button7,Button8;
void setup() {
 Serial.begin(9600);
 lcd.begin(16,2);
 pinMode(PB1, INPUT);
 pinMode(PB2, INPUT);
 pinMode(PB3, INPUT);
 pinMode(PB4, INPUT);
 pinMode(PB5, INPUT);
 pinMode(PB6, INPUT);
 pinMode(PB7, INPUT);
 pinMode(PB8, INPUT);
}
void loop() {
 Button1 = digitalRead(PB1);
 Button2 = digitalRead(PB2);
 Button3 = digitalRead(PB3);
 Button4 = digitalRead(PB4);
 Button5 = digitalRead(PB5);
 Button6 = digitalRead(PB6);
 Button7 = digitalRead(PB7);
 Button8 = digitalRead(PB8);

 if(Button1==HIGH & Button2==HIGH & Button3==HIGH & Button4==HIGH & Button5==LOW &
Button6==LOW & Button7==LOW & Button8==LOW){
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("LEI");
 }
 else if(Button1==LOW & Button2==LOW & Button3==LOW & Button4==LOW & Button5==HIGH &
Button6==HIGH & Button7==HIGH & Button8==HIGH){
 lcd.clear();
 lcd.setCursor(0, 1);
 lcd.print("DTE");
 }
 else{
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("Error");
 }
 delay(100); // Tambahkan penundaan agar tampilan tidak berubah terlalu cepat
}

5. Kondisi [Kembali]

    Sertakan dengan IR sensor, ketika berlogika HIGH putaran motor berlawanan arah jarum jam.

᭒ HTML↠ klik disini
Rangkaian Simulasi ↠ klik disini
᭒ Gambar Simulasi ↠ klik disini
᭒ Video Simulasi ↠ klik disini
᭒ Listing Program ↠ klik disini










LAPORAN AKHIR M4

MODUL 4 MIKROPROSESOR DAN MIKROKONTROLER [KEMBALI KE MENU SEBELUMNYA]   DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan ...