• Tidak ada hasil yang ditemukan

Praktik Sensor dan Transduser

N/A
N/A
Dodhy

Academic year: 2024

Membagikan "Praktik Sensor dan Transduser"

Copied!
8
0
0

Teks penuh

(1)

Tugas Praktikum 2

Nama : Dodhy Kurniawan. Ss Nim : 200206501001

MK : Praktik Sensor dan Transduser Pertanyaan Praktikum:

1. Listing program di atas telah kami ubah, silahkan mencari kesalahan program tersebut sampai tidak ada error ketika dikompile!

Program :

#include <LiquidCrystal.h>

LiquidCrystal lcd(13,12,11,10,9,8);

#define LDR1 A0

#define LDR2 A1

#define LDR3 A2

#define LDR4 A3

#define LDR5 A4

#define LDR6 A5 unsigned int Low=100;

unsigned int High=500;

unsigned int Mid=300;

unsigned int sensor[6],ref[6],S[6],Nilai[6];

void baca_sensor() {

lcd.setCursor(0,0);

lcd.print("Pembacaan Sensor");

sensor[0]=analogRead(A0);

sensor[1]=analogRead(A1);

sensor[2]=analogRead(A2);

sensor[3]=analogRead(A3);

sensor[4]=analogRead(A4);

sensor[5]=analogRead(A5);

(2)

ref[0]=200;ref[1]=200;ref[2]=200;ref[3]=200;ref[4]=200;ref[5]=200;

if (sensor[0]>ref[0]) {Nilai[0]=Low;} if (sensor[0]<ref[0]) {Nilai[0]=High;}

if (sensor[1]>ref[1]) {Nilai[1]=Low;} if (sensor[1]<ref[1]) {Nilai[1]=High;}

if (sensor[2]>ref[2]) {Nilai[2]=Low;} if (sensor[2]<ref[2]) {Nilai[2]=High;}

if (sensor[3]>ref[3]) {Nilai[3]=Low;} if (sensor[3]<ref[3]) {Nilai[3]=High;}

if (sensor[4]>ref[4]) {Nilai[4]=Low;} if (sensor[4]<ref[4]) {Nilai[4]=High;}

if (sensor[5]>ref[5]) {Nilai[5]=Low;} if (sensor[5]<ref[5]) {Nilai[5]=High;}

lcd.setCursor(5,1);

if (Nilai[0]>Mid) {S[0]=1; lcd.print('1');} if (Nilai[0]<Mid) {S[0]=0; lcd.print('0');}

if (Nilai[1]>Mid) {S[1]=1; lcd.print('1');} if (Nilai[1]<Mid) {S[1]=0; lcd.print('0');}

if (Nilai[2]>Mid) {S[2]=1; lcd.print('1');} if (Nilai[2]<Mid) {S[2]=0; lcd.print('0');}

if (Nilai[3]>Mid) {S[3]=1; lcd.print('1');} if (Nilai[3]<Mid) {S[3]=0; lcd.print('0');}

if (Nilai[4]>Mid) {S[4]=1; lcd.print('1');} if (Nilai[4]<Mid) {S[4]=0; lcd.print('0');}

if (Nilai[5]>Mid) {S[5]=1; lcd.print('1');} if (Nilai[5]<Mid) {S[5]=0; lcd.print('0');}

}

void setup() { lcd.begin(16,2);

(3)

pinMode (LDR1, INPUT);pinMode (LDR2, INPUT);pinMode (LDR3, INPUT);

pinMode (LDR4, INPUT);pinMode (LDR5, INPUT);pinMode (LDR6, INPUT);

lcd.setCursor(0,0); lcd.print("Program Sensor");

lcd.setCursor(0,1); lcd.print("Cahaya");

delay(1000);

lcd.clear();

}

void loop() { baca_sensor();

}

2. Jelaskan prinsip kerja rangkaian sensor cahaya menggunakan Op-Amp!

Jawab :

apabila intensitas cahaya di sekitar op amp maka tegangan yang menuju masukan non pembalik (non-inverting) pada op amp akan berubah sesuai dengan prinsip rangkaian pembagi tegangan (voltage divider). Potensiometer RV1 berfungsi sebagai set point atau kalibrasi yang menentukan besar ukuran tegangan yang masuk menuju masukan pembalik (inverting) pada op amp.

Karena op amp dirangkai dengan aplikasi komparator, maka jika tegangan yang masuk ke masukan non-inverting lebih besar daripada besar tegangan yang masuk ke masukan inverting maka tegangan keluaran op amp sebesar 9 V (sama dengan tegangan supply op amp), tetapi jika tegangan yang masuk ke masukan non-inverting lebih kecil daripada besar tegangan yang masuk ke masukan inverting maka tegangan keluaran op amp sebesar 0 V.

Misalkan tegangan keluaran 9 V, maka akan masuk ke kaki basis transistor sehingga

transistor akan aktif, jika transistor aktif maka arus listrik mengalir dari supply melewati coil relay kemudian melewati transistor dari kaki kolektor ke emitor.

Dengan diberikannya arus listrik pada Relay maka kontak relay akan berubah posisi dari terbuka (NO) menjadi terhubung, dan sebaliknya. Karena kontak relay berubah posisi maka kuat arus dari supply tegangan 220 V mengalir melewati lampu dan menyala.

Pada Relay selalu dipasang dioda yang ditempatkan paralel dan terbalik terhadap coil, hal ini berfungsi sebagai pengaman apabila tegangan keluaran pada op amp berubah menjadi 0 V, itu artinya akan membuat transistor tidak aktif sehingga membuat relay tidak aktif juga.

Saat aliran arus listrik berhenti mengalir pada coil relay, maka akan timbul arus listrik balik (berlawanan arah) yang disebabkan oleh gerakan mekanik pegas karena sifat magnet coil hilang. Arus listrik balik ini bisa berbahaya terhadap rangkaian jika saat waktu yang sama terjadi perubahan tegangan lagi pada keluaran op amp, agar tidak terjadi tabrakan arus listrik maka dipasang dioda yang ditempatkan paralel dan terbalik terhadap coil.

(4)

3. Jelaskan fungsi penggalan program di bawah ini:

a. sensor[0]=analogRead(A0);

untuk membuat variabel sensor, dan akan membaca nilai mulai dari 0 b. if (Nilai[2]>Mid) {S[2]=1; lcd.print('1');}

untuk melakukan perbandingan atau percabangan jika Nilai[2] lebih besar Mid maka S[2] akan di set 1 dan lcd akan menampilkan angka 1

c. if (sensor[3]>ref[3]) {Nilai[3]=Low;}

untuk melakukan perbandingan atau percabangan jika sensor[3] lebih besar ref[3]

maka Nilai[1] akan di set Low

d. if (sensor[1]>ref[1]) {Nilai[1]=Low;}

untuk melakukan perbandingan atau percabangan jika sensor[1] lebih besar ref[1]

maka Nilai[1] akan di set Low

e. if (sensor[4] <ref[4]) {Nilai [4] = High;}

untuk melakukan perbandingan atau percabangan jika sensor[4] lebih kecil ref[4]

maka Nilai[4] akan di set High

4. Modifikasi Program sebelumnya agar dapat menampilkan data pembacaan analog pada serial monitor!

Program :

#include <LiquidCrystal.h>

LiquidCrystal lcd(13,12,11,10,9,8);

#define LDR1 A0

#define LDR2 A1

#define LDR3 A2

#define LDR4 A3

#define LDR5 A4

#define LDR6 A5 unsigned int Low=100;

unsigned int High=500;

unsigned int Mid=300;

unsigned int sensor[6],ref[6],S[6],Nilai[6];

void baca_sensor()

(5)

{

lcd.setCursor(0,0);

lcd.print("Pembacaan Sensor");

Serial.print("Pembacaan Sensor ");

sensor[0]=analogRead(A0);

sensor[1]=analogRead(A1);

sensor[2]=analogRead(A2);

sensor[3]=analogRead(A3);

sensor[4]=analogRead(A4);

sensor[5]=analogRead(A5);

ref[0]=200;ref[1]=200;ref[2]=200;ref[3]=200;ref[4]=200;ref[5]=200;

if (sensor[0]>ref[0]) {Nilai[0]=Low;} if (sensor[0]<ref[0]) {Nilai[0]=High;}

if (sensor[1]>ref[1]) {Nilai[1]=Low;} if (sensor[1]<ref[1]) {Nilai[1]=High;}

if (sensor[2]>ref[2]) {Nilai[2]=Low;} if (sensor[2]<ref[2]) {Nilai[2]=High;}

if (sensor[3]>ref[3]) {Nilai[3]=Low;} if (sensor[3]<ref[3]) {Nilai[3]=High;}

if (sensor[4]>ref[4]) {Nilai[4]=Low;} if (sensor[4]<ref[4]) {Nilai[4]=High;}

if (sensor[5]>ref[5]) {Nilai[5]=Low;} if (sensor[5]<ref[5]) {Nilai[5]=High;}

lcd.setCursor(5,1);

if (Nilai[0]>Mid) { S[0]=1;

lcd.print('1');

Serial.print('1');

}

(6)

if (Nilai[0]<Mid){

S[0]=0;

lcd.print('0');

Serial.print('0');

}

if (Nilai[1]>Mid) { S[1]=1;

lcd.print('1');

Serial.print('1');

}

if (Nilai[1]<Mid){

S[1]=0;

lcd.print('0');

Serial.print('0');

}

if (Nilai[2]>Mid) { S[2]=1;

lcd.print('1');

Serial.print('1');

}

if (Nilai[2]<Mid){

S[2]=0;

lcd.print('0');

Serial.print('0');

}

if (Nilai[3]>Mid) { S[3]=1;

lcd.print('1');

Serial.print('1');

(7)

}

if (Nilai[3]<Mid){

S[3]=0;

lcd.print('0');

Serial.print('0');

}

if (Nilai[4]>Mid) { S[4]=1;

lcd.print('1');

Serial.print('1');

}

if (Nilai[4]<Mid){

S[4]=0;

lcd.print('0');

Serial.print('0');

}

if (Nilai[5]>Mid) { S[5]=1;

lcd.print('1');

Serial.print('1');

}

if (Nilai[5]<Mid){

S[5]=0;

lcd.print('0');}

Serial.print('0');

}

void setup() { Serial.begin(9600);

lcd.begin(16,2);

(8)

pinMode (LDR1, INPUT);pinMode (LDR2, INPUT);pinMode (LDR3, INPUT);

pinMode (LDR4, INPUT);pinMode (LDR5, INPUT);pinMode (LDR6, INPUT);

lcd.setCursor(0,0); lcd.print("Program Sensor"); Serial.print("Program Sensor ");

lcd.setCursor(0,1); lcd.print("Cahaya"); Serial.println("Cahaya");

delay(1000);

lcd.clear();

}

void loop() { delay(5000);

baca_sensor();

} Hasil :

Referensi

Dokumen terkait