1. Kondisi [Kembali]
Membuat aplikasi kontrol kecepatan motor dengan input (optocoupler) dan output (motor DC & LCD)
Prinsip Kerja :
Optocoupler yang terdiri dari sebuah komponen LED (Light Emitting Diode) yang memancarkan cahaya infra merah (IR LED) dan sebuah komponen semikonduktor yang peka terhadap cahaya (Phototransistor) sebagai bagian yang digunakan untuk mendeteksi cahaya infra merah yang dipancarkan oleh IR LED.
Arus listrik yang mengalir melalui IR LED akan menyebabkan IR LED memancarkan sinyal cahaya Infra merahnya. Intensitas Cahaya tergantung pada jumlah arus listrik yang mengalir pada IR LED tersebut. Cahaya Infra Merah yang dipancarkan tersebut akan dideteksi oleh Phototransistor dan menyebabkan terjadinya hubungan atau Switch ON pada Phototransistor. Jadi pada saat cahaya Infra Merah dihambat penerusan cahanya maka motor DC akan berputar, dan LCD akan menampilkan tulisan Keadaan Hidup begitu pula sebaliknya ketika cahaya infrared tidak dihambat.
4. Flowchart [Kembali]
5. Listing Program [Kembali]
#include <LiquidCrystal_I2C.h> //library dari LCD yang digunakan
LiquidCrystal_I2C lcd(0x27, 16, 2); //mendeklarasikan pin LCD
const int pinSensor = 2; // mendeklarasikan pin sensor / optocoupler
const int pinMotor1 = 8; // mendeklarasikan pin motor kaki1
const int pinMotor2 = 7; // mendeklarasikan pin motor kaki2
const int pinLED = 13; // mendeklarasikan pin LED
void setup(){
pinMode(pinMotor1, OUTPUT); // mendeklarasikan motor sebagai output
pinMode(pinMotor2, OUTPUT); // mendeklarasikan motor sebagai output
pinMode(pinSensor, INPUT); // mendeklarasikan sensor sebagai input
pinMode(pinLED, OUTPUT); // mendeklarasikan LED sebagai output
Serial.begin(9600);
lcd.begin(16,2); //lcd yang digunakan jenis 16x2
}
void loop(){
if(digitalRead(pinSensor) == HIGH){ //jika sensor mengalami logika 1 maka atau ada hambatan pada penerusan sinar infrared maka
digitalWrite(pinMotor1, HIGH); //motor1 berlogika 1 sehingga motor akan berputar
digitalWrite(pinMotor2, LOW); //motor2 berlogika 0 sehingga motor bergerak ke satu arah saja
digitalWrite(pinLED, HIGH); //LED akan hidup
lcd.setCursor(0, 0); //pada posisi (0,0) lcd
lcd.print("keadaan"); //akan ditampilkan tulisan keadaan
lcd.setCursor(0, 1); //pada posisi (0,1) lcd
lcd.print("hidup"); //akan ditampilkan tulisan hidup
}else{ //jika sensor mengalami logika 0 atau tidak ada hambatan pada penerusan sinar infrared maka
digitalWrite(pinMotor1, LOW); //motor1 berlogika 0 sehingga motor akan berhenti berputar
digitalWrite(pinMotor2, LOW); //motor2 berlogika 0 sehingga motor akan berhenti berputar
digitalWrite(pinLED, LOW); //LED akan mati
lcd.setCursor(0, 0); //pada posisi (0,0) lcd
lcd.print("keadaan"); //akan ditampilkan tulisan keadaan
lcd.setCursor(0, 1); //pada posisi (0,1) lcd
lcd.print("mati "); //akan ditampilkan tulisan mati
}
}
LiquidCrystal_I2C lcd(0x27, 16, 2); //mendeklarasikan pin LCD
const int pinSensor = 2; // mendeklarasikan pin sensor / optocoupler
const int pinMotor1 = 8; // mendeklarasikan pin motor kaki1
const int pinMotor2 = 7; // mendeklarasikan pin motor kaki2
const int pinLED = 13; // mendeklarasikan pin LED
void setup(){
pinMode(pinMotor1, OUTPUT); // mendeklarasikan motor sebagai output
pinMode(pinMotor2, OUTPUT); // mendeklarasikan motor sebagai output
pinMode(pinSensor, INPUT); // mendeklarasikan sensor sebagai input
pinMode(pinLED, OUTPUT); // mendeklarasikan LED sebagai output
Serial.begin(9600);
lcd.begin(16,2); //lcd yang digunakan jenis 16x2
}
void loop(){
if(digitalRead(pinSensor) == HIGH){ //jika sensor mengalami logika 1 maka atau ada hambatan pada penerusan sinar infrared maka
digitalWrite(pinMotor1, HIGH); //motor1 berlogika 1 sehingga motor akan berputar
digitalWrite(pinMotor2, LOW); //motor2 berlogika 0 sehingga motor bergerak ke satu arah saja
digitalWrite(pinLED, HIGH); //LED akan hidup
lcd.setCursor(0, 0); //pada posisi (0,0) lcd
lcd.print("keadaan"); //akan ditampilkan tulisan keadaan
lcd.setCursor(0, 1); //pada posisi (0,1) lcd
lcd.print("hidup"); //akan ditampilkan tulisan hidup
}else{ //jika sensor mengalami logika 0 atau tidak ada hambatan pada penerusan sinar infrared maka
digitalWrite(pinMotor1, LOW); //motor1 berlogika 0 sehingga motor akan berhenti berputar
digitalWrite(pinMotor2, LOW); //motor2 berlogika 0 sehingga motor akan berhenti berputar
digitalWrite(pinLED, LOW); //LED akan mati
lcd.setCursor(0, 0); //pada posisi (0,0) lcd
lcd.print("keadaan"); //akan ditampilkan tulisan keadaan
lcd.setCursor(0, 1); //pada posisi (0,1) lcd
lcd.print("mati "); //akan ditampilkan tulisan mati
}
}
Komentar
Posting Komentar