Anda di halaman 1dari 19

INPUT ANALOG

LAPORAN PRAKTIKUM ANTAR MUKA DAN MIKROKONTROLER


NOMOR PERCOBAAN JUDUL PERCOBAAN : 03 : INPUT ANALOG

KELAS/KELOMPOK NAMA PRAKTIKAN

: TELEKOMUNIKASI 4C/KELOMPOK 04 : DIKI ABDILLAH NIMAS AMALIA RAHMASARI POPY MEIRISTA RICHKI RANU PUTRA

JURUSAN TEKNIK ELEKTRO PROGRAM STUDI TEKNIK TELEKOMUNIKASI POLITEKNIK NEGERI JAKARTA

2012

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER

Page 1

INPUT ANALOG

P3A : Input Potensio


Deskri psi:

K a r e n a L D R t i p e n y a s e p e r t i r e s i s t o r , m a k a resistansi LDR aka n be ru bah ji ka perm uk aa n LDR t er ke na c ah a ya se hin gga p ad a sa at LD R tida k te rke na ca ha ya m ak a ke ada an LE D ak an of f n amun p ad a s aa LD R ter ken a ca ha y a k e mbali k e ad a an LE D ak an b eru ba h me njad i on. In tesit as c aha ya p ada LDR b e rba nd in g te rb alik d en gan resi stor Algo rit ma : P ada p ro gr am input p otensi o ini instr uksi ya n g p e rtam a ial ah void set up dim an a dal am inst ruksi i ni t e rda pat va ri able nam e pinM od e u ntuk m e masuk ka n pin m an a ya n g b er fun gsi s eb a gai inp ut. S etel ah inst ruksi v oid s etu p d ijala nk an ins tru ksi sela njutn ya i alah v oid loop pen gul an gan ha sil ya n g se belu mn ya d en gan d ela y ya n g sud ah dite ntuk a n yait u 10 00 Source Code:

/* Program P3A: inpot.pde */ int potPin=0; void setup() { //menetapkan pin potensio sebagai input pinMode(potPin, INPUT); //memonitor komunikasi serial dari Arduino dengan rate 9600 bps Serial.begin(9600); } void loop() { //menampilkan nilai potensio ke terminal serial Serial.println(analogRead(potPin)); EK delay(1000); DAN MIKROKONTROLER ANTAR MUKA E //tunggu 1 detik, lalu tampilkan lagi. } PRAKT

e2

INPUT ANALOG

Skematik Rangkaian Input Potensio:

Wiring :

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER

Page 3 e

INPUT ANALOG

P3B : Input LDR Deskripsi: Pada awal percobaan menggunakan LDR, yang dilakukan adalah mengamati range terendah sampai tertinggi resistansi yang dimiliki oleh LDR tersebut. Dimana pada saat range resistansi LDR bernilai tinggi berarti lingkungan mendapatkan intensitas cahaya yang cukup terang, sebaliknya apabila nilai resistansi kecil berarti lingkungan mendapatkan intensitas cahaya yang rendah. Pada percobaan brightness ini nilai-nilai resistansi LDR digunakan sebagai batasan resistansi yang diinginkan untuk mempengaruhi nyala terang atau redup LED (brightness LED). Misalnya kita menentukan batasan resistansi LDR saat 800 LED level 450, saat resistansi LDR 500 LED level 750, dst. Dari perubahan range resistansi mengakibatkan perubahan nyala LED dari redup ke terang atau sebaliknya, sesuai dengan keadaan intensitas cahaya lingkungan yang diberikan untuk LDR. Untuk percobaan ini dibuat pada pengkodingan saat LDR tidak dihalangi (keadaan lingkungan terang )nyala LED redup, selanjutnya apabila LDR sedikit demi sedikit dihalangi sehingga mendapatkan intensitas cahaya rendah nyala LED semakin lama semakin terang. Semakin bervariasi nilai batasan-batasan resistansi LDR dan nilai LED, maka perubahan brightness pada LED akan lebih terlihat. Algoritma: P ada pr o gr am i nput LD R ini i nstr uksi ya n g p ert ama ial ah v oid se tup dim an a dal am inst ruk si ini tidak mem asu kka n n ilai pi n k ar en a s ud a h de f ault . S et ela h instru ksi void anjut n ya i ala h void set up d ijal ank an i nst ruksi sel lo op pen gula n ga n ha sil ya n g seb elum n ya den ga n

del a y ya n g su dah d itentu kan ya itu 500 sert a nstr uksi i ni d ap a t men ampil ak an nilai pot p ad a s eri al P C.

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER

Page 4

INPUT ANALOG

S ou rc e Cod e :
/* Program P3B: inldr.pde */ int sensePin=0; void setup() { //Note: sensePin tidak perlu ditetapkan sebagai dahulu input (sudah default) //ini nilai default, Reference=5V pada UNO analogReference(DEFAULT); //mulai memonitor komunikasi serial dari arduino Serial.begin(9600); } void loop() { //tampilkan nilai pot ke terminal serial PC Serial.println(analogRead(sensePi n)); delay(500); //tunggu setengah detik, lalu tampilkan lagi. } Skematik Rangkaian P3B:

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER

Page 5

INPUT ANALOG

Wiring :

P3C : PENGONTROL LED DENGAN LDR Deskripsi: Program ini seperti program pada lampu taman namun mengguakan sensor cahaya dengan komponen LDR. Dimana saat cahaya redup atau gelap maka LED akan menyala atau on, sbaliknya jika cahaya sangat terang maka keadaan LED akan off atau mati Algoritma: Sebelum memasukkan instruksi void setup terdapat variable integer yang terdapat pin-pin. Setelah itu baru dimasukkan instruksi void setup dimana dalam instruksi ini terdapat nilai pin manakah yang akan dijadikan output. Pada instruksi void loop menggunakan istruksi if dimana jika val nya <800 maka LED akan menyala namun sebaliknya jika tidak maka LED akan menjadi low atau off.

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER

Page 6

INPUT ANALOG

Source code:

/* Program P3C: ldrled1.pde */ int sensePin=0; int ledPin=9; void setup() { pinMode(ledPin, OUTPUT); analogReference(DEFAULT); } void loop() { //baca LDR int val = analogRead(sensePin); if(val<800) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }

Skematik Rangkaian P3C:

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER

Page 7

INPUT ANALOG

Wiring :

P3D : LDR LED Deskripsi: Pada program ini, LED akan menyala jika mendapatkan cahaya yang kurang atau degan kata lain semakin cahanya rendah maka nyala LED akan semakin terang. Algoritma: P ada p ro gr am input LD R LE D ini instr uk si ya n g p ert am a ial ah void s etup diman a d alam i nstr u ksi ini tid ak m emas ukka n nil ai pin k a r en a sud ah d ef ault . S etel ah itu i nstr uksi beri kutn ya ad ala h v oid loop yang didalamnya terdapat instruksi constrain yang berfungsi membatasi nilai X dari a sampai dengan b dapat diktakan sebagai range. LED akan menyala terang saat range mencapai val 800 dan akan reup atau akan mati pada saat val 225.

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER

Page 8

INPUT ANALOG

Source code:
/* Program P3D:ldrled2.pde */ int sensePin = 0; int ledPin = 9; void setup() { pinMode(ledPin, OUTPUT); analogReference(DEFAULT); } void loop() { //baca sensor(LDR) int val = analogRead(sensePin); val=constrain(val, 550, 800); int ledLevel=map(val, 550, 800, 255, 0); analogWrite(ledPin, ledLevel); }

Skematik P3D: LED LDR

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER

Page 9

INPUT ANALOG

Wiring :

e
PRAKTEK ANTAR MUKA DAN MIKROKONTROLER 10 Page

INPUT ANALOG

DIY : PENGONTROL RUNNING LED DENGAN POTENSIO Deskripsi:


Pada Program DIY ini kami memakai LDR yang di padukan dengan Running LED. Jadi Cara kerjanya adalah ketika LDR ini mendapatkan cahaya yang cukup maka Running ketika LED akan berjalan pada waktu delay yang normal yaitu 1000ms, tetapi LDR tersebut tidak mendapatkan cahaya yang cukup maka Running LED

nya akan berjalan pada waktu delay yang lebih cepat dari sebelumnya , dan ketika LDR tersebut tidak mendapatkan cahaya, maka Running LED pun akan berajalan dengan waktu delay yang sangat cepat. Algorit ma: Sebelum instruksi void setup terdapat integer yang berfungsi mensetting terlebih

dalahulu pin-pin sebagai output. Baru setelah itu instruksi void setup . Setelah itu dalam intruksi void loop terdapat instruksi if, if yang pertama jika val <800 maka delaynya akan menjadi 1000 namun jika val nya tidak >600 menggunakan delay yang kedua yaitu 500 serta terdapat if else itu jika tidak ada diantara keduanya lalu menggunakan ketiga yaitu 200. delay yang

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER 11

Page

INPUT ANALOG

Source code:
/* Program P3C: ldrled1.pde */ int potPin=0; int ledPinA = 6; int ledPinB = 9; int ledPinC = 10; int ledPinD = 11; void setup() { analogReference(DEFA ULT); pinMode(ledPinA, OUTPUT); //Inisialisasi pin9 sebagai output pinMode(ledPinB, OUTPUT); //Inisialisasi pin10 sebagai output pinMode(ledPinC, OUTPUT); //Inisialisasi pin11 sebagai output pinMode(ledPinD, OUTPUT); //Inisialisasi pin12 sebagai output } void loop() { //baca LDR int val = analogRead(potPin); if ((val<800) && (val>600)) { digitalWrite(ledPinA, HIGH); delay(1000); digitalWrite(ledPinA, LOW); digitalWrite(ledPinB, HIGH); delay(1000); digitalWrite(ledPinB, LOW); digitalWrite(ledPinC, HIGH); delay(1000); digitalWrite(ledPinC, LOW); digitalWrite(ledPinD, HIGH); delay(1000); digitalWrite(ledPinD, LOW);

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER 12

Page

INPUT ANALOG

} else if(val >400) { digitalWrite(ledPinA, HIGH); delay(500); digitalWrite(ledPinA, LOW); digitalWrite(ledPinB, HIGH); delay(500); digitalWrite(ledPinB, LOW); digitalWrite(ledPinC, HIGH); delay(500); digitalWrite(ledPinC, LOW); digitalWrite(ledPinD, HIGH); delay(500); digitalWrite(ledPinD, LOW); } else { digitalWrite(ledPinA, HIGH); delay(200); digitalWrite(ledPinA, LOW); digitalWrite(ledPinB, HIGH); delay(200); digitalWrite(ledPinB, LOW); digitalWrite(ledPinC, HIGH); delay(200); digitalWrite(ledPinC, LOW); digitalWrite(ledPinD, HIGH); delay(200); digitalWrite(ledPinD, LOW); } }

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER 13

Page

INPUT ANALOG

Skematik Rangkaian DIY:

Wiring :

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER

Page

14

INPUT ANALOG

Pada praktek kali ini yaitu Input Analog penggunaan instruksi C/C++ masih sama dengan

praktek-praktek sebelumnya yaitu menggunakan void setup () dan void loop (). Namun terdapat beberapa instruksi yang berbeda, seperti analogWrite (Pin, value) Pin yang dimaksud adalah pin digital PWM (Pulse Width Modulation) yang berfungi sebagai pengatur tegangan. PWM hanya terdapat 6 pin yaitu D3, D5, D6, D9, D10, dan D11. Instruksi selanjutnya yaitu digitalRead (Pin) yaitu instruksi yang berfungsi membaca nilai analog di Pin, dimana Pin tersebut terdiri dari A0-A5. Selanjutnya terdapat instruksi constrain yang berfungsi membatasi nilai X dari a sampai dengan b dapat diktakan sebagai range. Yang terakhir ialah instruksi map yang berfungsi memetakan nilai X dri range a samapai dengan b ke range c sampai dengan d sebagai contoh map (X, a, b, c, d) dimana a dan b sebagai range pertama serta c dan d sebagai range kedua. Instruksi ini beersifat linear.

PRAKTEK ANTAR MUKA DAN MIKROKONTROLER 15

Page