Interface and Peripheral
Interface and Peripheral
Nama :
NIM :
Kelas :
DAFTAR PENYUSUN
1. Versi 1 : 2015 Juli : Simon Siregar, S.Si, M.T.
What is Arduino?
Arduino dikatakan sebagai sebuah platform dari physical computing yang bersifat open
source. Pertama-tama perlu dipahami bahwa kata “platform” di sini adalah sebuah pilihan
kata yang tepat. Arduino tidak hanya sekedar sebuah alat pengembangan, tetapi ia adalah
kombinasi dari hardware, bahasa pemrograman dan Integrated Development Environment
(IDE) yang canggih.
IDE adalah sebuah software yang sangat berperan untuk menulis program, meng-
compile menjadi kode biner dan meng-upload ke dalam memory microcontroller. Ada banyak
projek dan alat-alat dikembangkan oleh akademisi dan profesional dengan menggunakan
Arduino, selain itu juga ada banyak modul-modul pendukung (sensor, tampilan, penggerak
dan sebagainya) yang dibuat oleh pihak lain untuk bisa disambungkan dengan Arduino.
Arduino berevolusi menjadi sebuah platform karena ia menjadi pilihan dan acuan bagi
banyak praktisi.
Salah satu yang membuat Arduino memikat hati banyak orang adalah karena sifatnya
yang open source, baik untuk hardware maupun software-nya. Diagram rangkaian elektronik
Arduino digratiskan kepada semua orang. Anda bisa bebas men-download gambarnya,
membeli komponen-komponennya, membuat PCB-nya dan merangkainya sendiri tanpa harus
membayar kepada para pembuat Arduino. Sama halnya dengan IDE Arduino yang bisa di-
download dan diinstal pada komputer secara gratis. Kita patut berterima kasih kepada tim
Arduino yang sangat dermawan membagi-bagikan kemewahan hasil kerja keras mereka
kepada semua orang. Saya pribadi betul-betul kagum dengan desain hardware, bahasa
pemrograman dan IDE Arduino yang berkualitas tinggi dan sangat berkelas.
Arduino dikembangkan oleh sebuah tim yang beranggotakan orang-orang dari berbagai
belahan dunia. Anggota inti dari tim ini adalah:
Massimo Banzi Milano, Italy
David Cuartielles Malmoe, Sweden
Tom Igoe New York, US
Gianluca Martino Torino, Italy
David A. Mellis Boston, MA, USA
Profil mengenai anggota tim tersebut dan kontribusinya bisa diakses pada situs web
http://www.arduino.cc/playground/Main/People.
Saat ini komunitas Arduino berkembang dengan pesat dan dinamis di berbagai belahan
dunia. Bermacam-macam kegiatan yang berkaitan dengan projek-projek Arduino
bermunculan dimana-mana, termasuk di Indonesia. Yang membuat Arduino dengan cepat
diterima oleh orang-orang adalah :
Murah, dibandingkan platform yang lain.
Lintas platform, software Arduino dapat dijalankan pada system operasi Windows,
Macintosh OSX dan Linux.
Sangat mudah dipelajari dan digunakan. Processing adalah bahasa pemrograman
yang digunakan untuk menulis program di dalam Arduino. Untuk mengenal
Processing lebih lanjut, silakan mengunjungi situs web-nya di
http://www.processing.org.
Sistem yang terbuka, baik dari sisi hardware maupun software-nya.
Arduino diperuntukan bagi seniman, perancang dan penemu.
Arduino UNO R3
Komponen utama di dalam papan Arduino UNO R3 adalah sebuah microcontroller 8 bit
dengan merk ATmega yang dibuat oleh perusahaan Atmel Corporation. Berikut adalah blok
sederhana dari Arduino UNO R3 :
Blok-blok didalam arduino UNO R3 adalah sebagai berikut:
Universal Asynchronous Receiver/Transmitter (UART) adalah antar muka yang
digunakan untuk komunikasi serial seperti pada RS-232, RS-422 dan RS-485.
2KB RAM pada memory kerja bersifat volatile (hilang saat daya dimatikan),
digunakan oleh variable-variabel di dalam program.
32KB RAM flash memory bersifat non-volatile, digunakan untuk menyimpan
program yang dimuat dari komputer. Selain program, flash memory juga menyimpan
bootloader. Bootloader adalah program inisiasi yang ukurannya kecil, dijalankan
oleh CPU saat daya dihidupkan. Setelah bootloader selesai dijalankan, berikutnya
program di dalam RAM akan dieksekusi.
1KB EEPROM bersifat non-volatile, digunakan untuk menyimpan data yang tidak
boleh hilang saat daya dimatikan. Tidak digunakan pada papan Arduino.
Central Processing Unit (CPU), bagian dari microcontroller untuk menjalankan setiap
instruksi dari program.
Port input/output, pin-pin untuk menerima data (input) digital atau analog, dan
mengeluarkan data (output) digital atau analog.
Setelah mengenal bagian-bagian utama dari microcontroller ATmega sebagai
komponen utama, selanjutnya kita akan mengenal bagian-bagian dari papan Arduino
itu sendiri.
USB
Berfungsi untuk:
1. Memuat program dari komputer ke dalam papan
2. Komunikasi serial antara papan dan komputer
3. Memberi daya listrik kepada papan
SAMBUNGAN SV1
Sambungan atau jumper untuk memilih sumber daya papan, apakah dari sumber eksternal
atau
menggunakan USB. Sambungan ini tidak diperlukan lagi pada papan Arduino versi terakhir
karena pemilihan sumber daya eksternal atau USB dilakukan secara otomatis.
Q1 – KRISTAL (quartz crystal oscillator)
Jika microcontroller dianggap sebagai sebuah otak, maka kristal adalah jantung-nya karena
komponen ini menghasilkan detak-detak yang dikirim kepada microcontroller agar
melakukan
sebuah operasi untuk setiap detak-nya. Kristal ini dipilih yang berdetak 16 juta kali per detik
(16MHz).
TOMBOL RESET S1
Untuk me-reset papan sehingga program akan mulai lagi dari awal. Perhatikan bahwa tombol
reset ini bukan untuk menghapus program atau mengosongkan microcontroller.
In-Circuit Serial Programming (ICSP)
Port ICSP memungkinkan pengguna untuk memprogram microcontroller secara langsung,
tanpa melalui bootloader. Umumnya pengguna Arduino tidak melakukan ini sehingga ICSP
tidak terlalu dipakai walaupun disediakan.
IC 1 – Microcontroller Atmega
Komponen utama dari papan Arduino, di dalamnya terdapat CPU, ROM dan RAM. Jika
hendak disuplai dengan sumber daya eksternal, papan Arduino dapat diberikan tegangan
DC ANTARA 9-12V.
Pin ini sangat berguna untuk membaca tegangan yang dihasilkan oleh sensor analog, seperti
sensor suhu. Program dapat membaca nilai sebuah pin input antara 0 – 1023, dimana hal itu
mewakili nilai tegangan 0 – 5V.
4. SOFTWARE ARDUINO
Sehubungan dengan pembahasan untuk saat ini software Arduino yang akan digunakan
adalah
driver dan IDE, walaupun masih ada beberapa software lain yang sangat berguna selama
pengembangan Arduino.
IDE Arduino adalah software yang sangat canggih ditulis dengan menggunakan Java. IDE
Arduino
terdiri dari:
1. Editor program, sebuah window yang memungkinkan pengguna menulis dan
mengedit program dalam bahasa Processing.
2. Compiler, sebuah modul yang mengubah kode program (bahasa Processing) menjadi
kode biner. Bagaimanapun sebuah microcontroller tidak akan bisa memahami bahasa
Processing. Yang bisa dipahami oleh microcontroller adalah kode biner. Itulah
sebabnya compiler diperlukan dalam hal ini.
3. Uploader, sebuah modul yang memuat kode biner dari Jomputer ke dalam memory di
dalam papan Arduino.
4. Menginstall driver Arduino
5. Menguji koneksi komputer dan papan Arduino
#include <EEPROM.h>
VARIABEL
int led = 13;
INISIALISASI
void setup() {
lcd.begin(16, 2);
lcd.print("hello, world!");
}
PROSES BERULANG HINGGA AKHIR
void loop() {
lcd.noBlink();
delay(3000);
lcd.blink();
delay(3000);
}
Kelompok :
Nama :
1. __________________
2. __________________
3. __________________
MODUL 1
PRAKTIKUM INTERFACE, PEMOGRAMAN MIKROKONTROLER, DAN
SISTEM KENDALI, FAKULTAS ILMU TERAPAN, UNIVERSITAS TELKOM
1. JUDUL PRAKTIKUM
Pengenalan PORT Digital dan Analog, LED, Push Button, Potensiometer
4. TEORI DASAR
5. PROSEDUR PRAKTIKUM
A. Buat rangkaian sesuai dengan skematik berikut :
ARDUINO UNO R3 D1 D2 D3
LED-RED LED-RED LED-RED
microcontrolandos.blogspot.com
R1 R2 R3
AREF 330 Ohm 330 Ohm 330 Ohm
13
PB5/SCK
12
PB4/MISO
RESET 11
RV2 ~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121
31%
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
1K Ohm / yang ada PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
A4
PC3/ADC3
PD2/INT0
2 R4
PC4/ADC4/SDA 1 330 Ohm
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
ARDUINO UNO R3
void setup(){
pinMode(led,OUTPUT);
}
void loop(){
digitalWrite(led,HIGH);
delay(1000);
digitalWrite(led,LOW);
delay(1000);
}
b. Tuliskan komentar pada list program tersebut dengan mencoba menggantikan
nilai A, B, C dan D
int led=A; // ............................
void loop(){
for (i=0; i<=255; i+=5){
analogWrite(led,i);
delay(100);
}
for (i=255; i>=0; i-=5){
analogWrite(led,i);
delay(100);
}
}
b. Tuliskan komentar pada list program tersebut dengan mencoba menggantikan
nilai A, B, C dan D
int led=11;
int A; // .................
void setup(){
pinMode(led,OUTPUT);
}
void loop(){
for (i=B; i<=C; i+=D){ // .................
analogWrite(led,i); // .................
delay(100);
}
for (i=255; i>=0; i-=5){ // .................
analogWrite(led,i); // .................
delay(100);
}
}
c. Buat program untuk menyalakan ketiga LED dengan aturan :
Secara bersama-sama dengan durasi fading on selama 2 detik dan fading off
selama 1 detik.
Setiap Led dapat fading menyala dan mati secara bergantian dengan durasi 500
milidetik menyala dan mati.
d. Catat program yang dibuat pada percobaan c dan perlihatkan pada assisten.
Jelaskan apakah percobaan dapat berjalan sesuai dengan prosedur?
Adakah yang perlu dirubah dalam rangkaian?
Berapa nilai maksimum dari nilai analog write yang bisa digunakan.
void setup(){
pinMode(led,OUTPUT);
pinMode(pot,INPUT);
}
void loop(){
data=analogRead(pot);
data=data/4;
analogWrite(led,data);
}
void setup(){
pinMode(led,OUTPUT);
pinMode(pot,C); //....................
}
void loop(){
data=analogRead(pot);
data=D; //....................
analogWrite(led,data);
}
void loop(){
if(digitalRead(tombol)==LOW){
digitalWrite(led,HIGH);
}
else{
digitalWrite(led,LOW);
}
}
void loop(){
if(digitalRead(C)==D){ //....................
digitalWrite(led,HIGH);
}
else{
digitalWrite(led,LOW);
}
}
6. KASUS PERCOBAAN
a. Buat sebuah aplikasi dengan menggunakan 3 LED, 1 Potensio, 1 push button
b. Terdapat kendali on/off, PWM dan delay
c. Terdapat interface analog dan digital
d. Catat skematik beserta pin/port yang digunakan, dan program yang dibuat
pada kasus diatas dan perlihatkan pada assisten
7. LAPORAN AKHIR
a. Sesuaikan dengan aturan praktikum sebelumnya
b. Lampirkan hasil percobaan, skematik dan program yang diuji beserta
komentar
c. Jelaskan kasus percobaan 6 dari sisi interface dan pheripheral, sistem kendali,
dan pemograman mikrokontroler.
d. Jelaskan fungsi berikut ini dalam laporan
i. pinMode
ii. analogRead
iii. analogWrite
iv. digitalWrite
v. void Setup ()
vi. void loop ()
vii. for ()
viii. if ()
Kelompok :
Nama :
1. __________________
2. __________________
3. __________________
MODUL 2
PRAKTIKUM INTERFACE, PEMOGRAMAN MIKROKONTROLER, DAN
SISTEM KENDALI, FAKULTAS ILMU TERAPAN, UNIVERSITAS TELKOM
1. JUDUL PRAKTIKUM
Modul LCD dan Shift Register LCD
4. TEORI DASAR
LCD (Liquid Crystal Display) merupakan salah satu perangkat untuk menampilkan (display)
informasi dari suatu system kontroler.
A. Power Supply : 4.7 – 5.3 Volt
B. Input : Data dari mikrokontroller
C. Output : Cahaya yang dapat menampilkan karakter atau tulisan.
D. Batasan : Tegangan maksimal 5.3 volt
LCD secara umum memiliki 16 PIN dengan urutan sebagai berikut :
1. Pin 1 VSS, sebagai input tegangan – LCD (GND)
2. Pin 2 VDD, sebagai input tegangan + LCD
3. Pin 3 Vo, sebagai pengatur intensitas tulisan LCD
4. Pin 4 RS, sebagai pengatur clock LCD
5. Pin 5 R/W, sebagai pengatur aliran data LCD
6. Pin 6 E, sebagai enabler LCD, Active Low
7. Pin 7 – Pin 14 : Data 0 – Data 7
8. Pin 15, Tegangan Backlight LED +
9. Pin 16, Ground Backlight LED -
Shift Register 4094 merupakan shift register tipe serial in, paralel out. IC shift register adalah
sebuah komponen elektronik (IC) yang digunakan untuk memsukkan data secara serial dan
mengeluarkan data secara paralel.
61%
RV1
1K ohm
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
1
2
3
4
5
6
7
8
9
10
11
12
13
14
R1 R2 R3
330 Ohm 330 Ohm 330 Ohm
13
12
11
10
9
8
7
6
5
4
3
2
1
0
ARDUINO UNO R3
PB5/SCK
PD4/T0/XCK
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB4/MISO
DIGITAL (~PWM)
ATMEGA328P-PU
1121
microcontrolandos.blogspot.com
PC4/ADC4/SDA
PC5/ADC5/SCL
ANALOG IN
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
RESET
A0
A1
A2
A3
A4
A5
Catatan : ditambahkan hambatan 330 Ohm pada input LED + pada kaki 15 LCD
void setup() {
lcd.begin(16, 2);
lcd.print("hello, world!");
}
void loop() {
lcd.setCursor(0, 1);
lcd.print(millis()/1000);
}
b. Tuliskan komentar pada list program tersebut dengan mencoba menggantikan
nilai A, B, C dan D
#include <LiquidCrystal.h>
LiquidCrystal lcd(A, A, A, A, A, A); //................
void setup() {
lcd.begin(16, B); //................
lcd.print(C); //................
}
void loop() {
lcd.setCursor(D); //................
lcd.print(millis()/1000); //................
}
d. Catat program yang dibuat pada percobaan c dan perlihatkan pada assisten.
Jelaskan perubahan dalam program untuk menjalankan prosedur c.
d. Catat program yang dibuat pada percobaan c dan perlihatkan pada assisten.
Jelaskan perubahan dalam program untuk menjalankan prosedur c.
void setup(){
lcd.begin(16, 2);
Serial.begin(9600);
}
void loop()
{
if (Serial.available()) {
delay(100);
lcd.clear();
while (Serial.available() > 0) {
lcd.write(Serial.read());
}
}
}
b. Tuliskan komentar pada list program pada bagian yang ditentukan
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup(){
lcd.begin(16, 2);
Serial.begin(9600);
}
void loop()
{
if (Serial.available()) { //..................
delay(100);
lcd.clear();
while (Serial.available() > 0) { //..................
lcd.write(Serial.read()); //..................
}
}
}
d. Catat program yang dibuat pada percobaan c dan perlihatkan pada assisten.
Jelaskan perubahan dalam program untuk menjalankan prosedur c.
R1 R2 R3
330 Ohm 330 Ohm 330 Ohm
D1 D2 D3
LED-BLUE LED-BLUE LED-BLUE
LCD1
LM016L
R4 R5 R6
330 Ohm 330 Ohm 330 Ohm VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
1
2
3
4
5
6
7
8
9
10
11
12
13
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
ARDUINO UNO R3
PB5/SCK
PD4/T0/XCK
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB4/MISO
DIGITAL (~PWM)
61%
RV1
ATMEGA328P-PU 1K ohm
1121
U1
2 4
D Q0
3 5
CLK Q1
microcontrolandos.blogspot.com 1 6
PC4/ADC4/SDA
PC5/ADC5/SCL
STB Q2
ANALOG IN 15
OE Q3
7
14
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
Q4
13
Q5
RESET
12
Q6
11
Q7
9
QS
A0
A1
A2
A3
A4
A5
10
QS
4094
Catatan : ditambahkan hambatan 330 Ohm pada input LED + pada kaki 15 LCD
void setup(){
lcd.begin(16,2);
lcd.home ();
lcd.setCursor (0, 0);
lcd.print("HALLO WORLD");
}
void loop()
{
lcd.setCursor(0,1);
lcd.print(millis()/1000);
}
void setup(){
lcd.begin(16,2);
lcd.home ();
lcd.setCursor (0, 0);
lcd.print("HALLO WORLD");
}
void loop()
{
lcd.setCursor(0,1);
lcd.print(millis()/1000);
}
d. Catat program yang dibuat pada percobaan c dan perlihatkan pada assisten.
Jelaskan perubahan dalam program untuk menjalankan prosedur c.
Jelaskan apa keuntungan menggunakan shift register?
2. Menu
a. Tuliskan program dibawah ini pada software Arduino dan upload keboard
Arduino Uno R3 :
#include <LiquidCrystal_SR_LCD3.h>
const int PIN_LCD_STROBE = 2;
const int PIN_LCD_DATA = 3;
const int PIN_LCD_CLOCK = 4;
int sw_ok=7;
int sw_up=6;
int sw_back=5;
int batas;
LiquidCrystal_SR_LCD3 lcd(PIN_LCD_DATA, PIN_LCD_CLOCK,
PIN_LCD_STROBE);
void setup(){
lcd.begin(16,2);
lcd.home ();
lcd.setCursor (4, 0); //..................
lcd.print("ES 12-01");
delay(3000);
batas=0;
menu();
}
void loop()
{
for(int i=0; i<=batas; i++){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("BATAS : ");
lcd.setCursor(7,0);
lcd.print(batas);
lcd.setCursor(0,1);
lcd.print("Data : ");
lcd.setCursor(7,1);
lcd.print(i);
delay(1000);
}
}
void menu(){
set: //..................
lcd.clear();
lcd.setCursor(5,0);
lcd.print("SETTING");
lcd.setCursor(0,1);
lcd.print("SET");
lcd.setCursor(11,1);
lcd.print("START");
if(digitalRead(sw_ok)==LOW){ //..................
while(digitalRead(sw_ok)==LOW){} //..................
goto set1;
}
if(digitalRead(sw_back)==LOW){
while(digitalRead(sw_back)==LOW){} //..................
goto start;
}
else{
goto set; //..................
}
set1: //..................
lcd.clear();
lcd.setCursor(0,0);
lcd.print("BATAS :");
lcd.setCursor(7,0);
lcd.print(batas);
lcd.setCursor(0,1);
lcd.print("SET");
lcd.setCursor(7,1);
lcd.print("UP");
lcd.setCursor(12,1);
lcd.print("DOWN");
if(digitalRead(sw_ok)==LOW){
while(digitalRead(sw_ok)==LOW){} //..................
goto set; //..................
}
if(digitalRead(sw_back)==LOW){ //..................
batas=batas-1;
if (batas<0){
batas=0;
}
delay(100);
goto set1;
}
if(digitalRead(sw_up)==LOW){
batas=batas+1; //..................
delay(100);
goto set1;
}
else{
goto set1; //..................
}
start:
lcd.clear();
lcd.setCursor(8,0);
lcd.print("DONE");
delay(3000);
}
b. Tuliskan komentar pada list program tersebut
6. KASUS PERCOBAAN
a. Buat sebuah aplikasi dengan menggunakan 3 LED, 1 Potensio, 3 push button,
1 shift register 4094, 1 buah LCD,
b. Terdapat kendali on/off, PWM dan delay dan shift register,
c. Terdapat interface analog dan digital
d. Catat skematik beserta pin/port yang digunakan, dan program yang dibuat
pada kasus diatas dan perlihatkan pada assisten
e. Kasusnya : membuat sebuah menu dengan pilihan
1. Blink-blink LED
2. Running LED
3. Fading LED
f. Tombol 1, 2 dan 3 berfungsi sebagai pemilih.
7. LAPORAN AKHIR
a. Sesuaikan dengan aturan praktikum sebelumnya
b. Lampirkan hasil percobaan, skematik dan program yang diuji beserta
komentar
c. Jelaskan kasus percobaan 6 dari sisi interface dan pheripheral, sistem kendali,
dan pemograman mikrokontroler.
d. Jelaskan fungsi berikut ini dalam laporan
i. while
ii. delay
iii. goto
iv. if (Serial.available())
v. lcd.write ()
vi. lcd.clear ()
vii. lcd.scrollDisplayLeft();
viii. lcd.scrollDisplayRight();
Kelompok :
Nama :
1. __________________
2. __________________
3. __________________
MODUL 3
PRAKTIKUM INTERFACE, PEMOGRAMAN MIKROKONTROLER, DAN
SISTEM KENDALI, FAKULTAS ILMU TERAPAN, UNIVERSITAS TELKOM
1. JUDUL PRAKTIKUM
Modul Keypad, Seven Segmen, dan Buzzer
4. TEORI DASAR
Keypad 3x4
1
3 x 4 Keypad Module merupakan suatu modul keypad berukuran 3 kolom x 4
baris. Modul ini dapat difungsikan sebagai input dalam aplikasi seperti pengaman
digital, datalogger, absensi, pengendali kecepatan motor, robotik, dan sebagainya.
Karakteristik dari Keypad :
o Power Supply : 4 V – 18 V.
o Input : Tegangan (Prinsip kerja seperti tombol)
o Output : Tegangan.
o Batasan : Tegangan maksimalnya 18V. Jika menggunakan pada
tegangan yang besar dapat merusak komponen lain
2
Rangkaian internal display 7 segment common anoda dan common cathoda (CC)
dapat dilihat pada gambar berikut.
Buzzer
Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah
getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir sama
dengan loud speaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada
diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi
elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah
arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap
gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga
membuat udara bergetar yang akan menghasilkan suara. Buzzer biasa digunakan
sebagai indikator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah
alat (alarm).
3
5. PROSEDUR PRAKTIKUM
A. Buat rangkaian sesuai dengan skematik berikut :
a
b
c
d LCD1
e LM016L
f
g
R2
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
330 Ohm
E
1
2
3
4
5
6
7
8
9
10
11
12
13
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
PB5/SCK
PD4/T0/XCK
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB4/MISO
~
DIGITAL (~PWM)
3
ATMEGA328P-PU 50%
1121
3 2 1 A RV1
1K Ohm
6 5 4 microcontrolandos.blogspot.com
PC4/ADC4/SDA
PC5/ADC5/SCL
B U1
ANALOG IN
2 4
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
D Q0
3 5
CLK Q1
RESET
1 6
9 8 7 C
15
STB
OE
Q2
Q3
7
14
Q4
13
Q5
A0
A1
A2
A3
A4
A5
12
# 0 D R1 Q6
Q7
11
330 Ohm BUZ1
9
QS
10
QS
4094
BUZZER
R3
330 Ohm
Catatan : ditambahkan hambatan 330 Ohm pada input LED + pada kaki 15 LCD, dan kaki
16 diground
void setup(){
for (int i=0; i<3; i++){
pinMode(C[i],INPUT);
}
for (int i=0; i<4; i++){
pinMode(R[i],OUTPUT);
}
Serial.begin(9600);
}
void loop(){
scankeypad();
Serial.println(key);
4
key=' ';
}
void scankeypad(){
for(int i=0; i<4; i++){
digitalWrite(R[i],LOW);
for(int j=0; j<3; j++){
if(digitalRead(C[j])==LOW){
key=keymap[i][j];
delay(500);
}
}
digitalWrite(R[i],HIGH);
}
}
void setup(){
for (int i=0; i<3; i++){ // .....................
pinMode(C[i],INPUT);
}
for (int i=0; i<4; i++){ // .....................
pinMode(R[i],OUTPUT);
}
Serial.begin(9600);
}
void loop(){
scankeypad(); // .....................
Serial.println(key); // .....................
key=' ';
}
void scankeypad(){ // .....................
for(int i=0; i<4; i++){
digitalWrite(R[i],LOW);
for(int j=0; j<3; j++){
if(digitalRead(C[j])==LOW){
key=keymap[i][j]; // .....................
delay(500);
}
}
digitalWrite(R[i],HIGH); // .....................
}
}
5
c. Buat program untuk memunculkan tulisan di LCD dengan aturan :
Tampilkan angka keypad pada LCD dan serial monitor ketika tombol keypad
ditekan
d. Catat program yang dibuat pada percobaan c dan perlihatkan pada assisten.
Jelaskan perubahan dalam program untuk menjalankan prosedur c.
2. Seven Segmen
a. Tuliskan program dibawah ini pada software Arduino dan upload keboard
Arduino Uno R3 :
int a=10;
int b=9;
int c=8;
int d=7;
int e=6;
int f=5;
int g=4;
void setup(){
for(int i=10; i>=4; i--){
pinMode(i,OUTPUT);
}
}
void loop(){
for(int i=0; i<=2; i++){
segment(i);
delay(1000);
}
}
6
b. Tuliskan komentar pada list program pada bagian yang ditentukan
int a=10; // .....................
int b=9; // .....................
int c=8; // .....................
int d=7; // .....................
int e=6; // .....................
int f=5; // .....................
int g=4; // .....................
void setup(){ // .....................
for(int i=10; i>=4; i--){
pinMode(i,OUTPUT);
}
}
void loop(){ // .....................
for(int i=0; i<=2; i++){
segment(i);
delay(1000);
}
}
d. Catat program yang dibuat pada percobaan c dan perlihatkan pada assisten.
Jelaskan perubahan dalam program untuk menjalankan prosedur c.
7
3. Buzzer
a. Tuliskan program dibawah ini pada software Arduino dan upload keboard
Arduino Uno R3 :
int buzzer=A0;
void setup(){
pinMode(buzzer,OUTPUT);
}
void loop(){
digitalWrite(buzzer,HIGH);
delay(1000);
digitalWrite(buzzer,LOW);
delay(1000);
}
void setup(){
pinMode(buzzer,OUTPUT); // .....................
}
void loop(){
digitalWrite(buzzer,HIGH); // .....................
delay(1000);
digitalWrite(buzzer,LOW); // .....................
delay(1000);
}
d. Catat program yang dibuat pada percobaan c dan perlihatkan pada assisten.
Jelaskan perubahan dalam program untuk menjalankan prosedur c.
6. KASUS PERCOBAAN
a. Buat sebuah aplikasi dengan menggunakan 1 Potensio, 3 push button, 1 shift
register 4094, 1 buah LCD, Seven Segmen, buzzer
b. Terdapat kendali on/off, PWM dan delay dan shift register,
c. Terdapat interface analog dan digital
d. Catat skematik beserta pin/port yang digunakan, dan program yang dibuat
pada kasus diatas dan perlihatkan pada assisten
e. Kasusnya : input no handphone menggunakan keypad ditampilkan ke LCD,
kemudian button sebagai tombol start, dan akan menampilkan di seven
segmen setiap angka satu-satu, dan ketika angka terakhir muncul, maka buzzer
berbunyi, end.
8
7. LAPORAN AKHIR
a. Sesuaikan dengan aturan praktikum sebelumnya
b. Lampirkan hasil percobaan, skematik dan program yang diuji beserta
komentar
c. Jelaskan kasus percobaan 6 dari sisi interface dan pheripheral, sistem kendali,
dan pemograman mikrokontroler.
d. Jelaskan cara kerja dan jelaskan juga port mana saja yang bisa digunakan.
i. Keypad
ii. Seven Segmen
iii. Buzzer
e. Jelaskan fungsi berikut ini dalam laporan
i. Function dalam arduino
9
Kelompok :
Nama :
1. __________________
2. __________________
3. __________________
MODUL 4
PRAKTIKUM INTERFACE, PEMOGRAMAN MIKROKONTROLER, DAN
SISTEM KENDALI, FAKULTAS ILMU TERAPAN, UNIVERSITAS TELKOM
1. JUDUL PRAKTIKUM
Modul Dot Matrix dan EEPROM
4. TEORI DASAR
EEPROM
EPROM kependekan dari Erasable Programmable Read Only Memory.
EPROM berbeda dengan PROM. EPROM adalah jenis chip memori yang dapat
ditulisi program secara elektris. Program atau informasi yang tersimpan di dalam
EPROM dapat dihapus bila terkena sinar ultraviolet dan dapat ditulisi kembali.
Kesamaannya dengan PROM adalah keduanya merupakan jenis ROM, termasuk
memori non-volatile, data yang tersimpan di dalamnya tidak bisa hilang walaupun
komputer dimatikan, tidak membutuhkan daya listrik untuk mempertahankan atau
menjaga informasi atau program yang tersimpan di dalamnya.
1
DOT MATRI 7X5
Pada dasarnya DOT matrix adalah Display LED yg disusun sedemikian rupa
sehingga untuk menghidupkan led ke (x,x) dibutuhkan kombinasi tegangan antara Pin
baris dan kolom Kemudian untuk mempermudah kontrol dan menghemat pin maka
diperlukan proses scanning (biasanya kolom) sedangkan pada baris diberikan bit
sesuai huruf/karakter yang akan ditampilkan yang bersesuaian dengan posisi
scanning.
Scanning untuk kolom dimaksud memberikan "1" high ( untuk common katoda)
atau"0" untuk common anoda, untuk kolom lainnya diberi nilai negasi dari kolom
yang diberi nilai 1 tadi dan seterusnya untuk kolom berikutnya sampai kolom terakhir
dari rangkaian led matrix, kemudian berulang dari depan lagi. Proses ini dilakukan
sangat cepat sehingga mata kita melihatnya tetap sebagai suatu karakter yang diam.
Misalnya ingin menampilkan huruf A, secara umum digambarkan sebagai berikut:
0000000
0000000
0000000
0000000
0000000
0000000
0000000
2
5. PROSEDUR PRAKTIKUM
A. Buat rangkaian sesuai dengan skematik berikut :
LCD1
LM016L
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
1
2
3
4
5
6
7
8
9
10
11
12
13
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
PB5/SCK
PD4/T0/XCK
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB4/MISO
DIGITAL (~PWM)
50%
ATMEGA328P-PU
1121
RV1
1K Ohm
microcontrolandos.blogspot.com U1
PC4/ADC4/SDA
PC5/ADC5/SCL
ANALOG IN 2
D Q0
4
3 5
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
CLK Q1
1 6
STB Q2
RESET
15 7
OE Q3
14
Q4
13
Q5
12
Q6
A0
A1
A2
A3
A4
A5
11
Q7
9
QS
10
QS
R1 BUZ1
4094
R3 330 Ohm
Catatan : ditambahkan hambatan 330 Ohm pada input LED + pada kaki 15 LCD, dan kaki
16 diground (jika menggunakan 8x8 dot matri
void loop()
{
int val = analogRead(potensio) / 4;
if (addr <= 512) {
EEPROM.write(addr, val);
Serial.print(val);
3
Serial.print("\t");
Serial.println(addr);
addr = addr + 1;
}
delay(100);
}
void loop()
{
int val = analogRead(potensio) / 4; //....................
if (addr <= 512) { //....................
EEPROM.write(addr, val); //....................
Serial.println(addr); //....................
addr = addr + 1; //....................
}
delay(100);
}
2. EEPROM read
a. Tuliskan program dibawah ini pada software Arduino dan upload keboard
Arduino Uno R3 :
#include <EEPROM.h>
int address = 0;
byte value;
void setup()
{
Serial.begin(9600);
}
void loop()
{
value = EEPROM.read(address); //....................
Serial.print(address); //....................
Serial.print("\t"); //....................
Serial.print(value, DEC); //....................
Serial.println(); //....................
address = address + 1; //....................
if (address == 512) //....................
address = 0; //....................
delay(500);
}
3. EEPROM clear
4
a. Tuliskan program dibawah ini pada software Arduino dan upload keboard
Arduino Uno R3 :
#include <EEPROM.h>
void setup()
{
for (int i = 0; i < 512; i++)
EEPROM.write(i, 0);
digitalWrite(13, HIGH);
}
void loop()
{
}
b. Tuliskan komentar pada list program pada bagian yang ditentukan
#include <EEPROM.h>
void setup()
{
for (int i = 0; i < 512; i++) //....................
EEPROM.write(i, 0); //....................
digitalWrite(13, HIGH); //....................
}
void loop()
{
}
4. Kasus EEPROM
a. Buat aplikasi dengan aturan berikut : terdapat 1 push button, 1 shitf register, 1
LCD, 1 potensiometer, dan 1 dot matrix 7x5
Push button ditekan pertama kali untuk merekam data dengan merubah
potensio(data rekaman ditunjukkan pada serial monitor dan LCD).
Push button ditekan kedua kali untuk menunjukkan hasil rekaman dalam
bentuk keluaran serial monitor dan LED di pin PWM (silahkan pilih)
Push button ditekan ketiga kali untuk menghapus semua rekaman dalam
EEPROM diakhiri dengan bunyi buzzer pada akhir penghapusan
Push button ditekan keempat kali untuk menunjukkan data rekaman
EEPROM di serial monitor telah terhapus
5. Dot Matrix 7x5
a. Tuliskan program dibawah ini pada software Arduino dan upload keboard
Arduino Uno R3 :
#include <FrequencyTimer2.h>
#define SPACE { \
{0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0} \
}
5
#define H { \
{1, 0, 0, 0, 1}, \
{1, 0, 0, 0, 1}, \
{1, 0, 0, 0, 1}, \
{1, 1, 1, 1, 1}, \
{1, 0, 0, 0, 1}, \
{1, 0, 0, 0, 1}, \
{1, 0, 0, 0, 1} \
}
#define E { \
{1, 1, 1, 1, 1}, \
{1, 0, 0, 0, 0}, \
{1, 0, 0, 0, 0}, \
{1, 1, 1, 1, 0}, \
{1, 0, 0, 0, 0}, \
{1, 0, 0, 0, 0}, \
{1, 1, 1, 1, 1} \
}
#define small_E { \
{0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0}, \
{0, 1, 1, 1, 0}, \
{1, 0, 0, 0, 1}, \
{1, 1, 1, 1, 0}, \
{1, 0, 0, 0, 0}, \
{0, 1, 1, 1, 0} \
}
#define L { \
{1, 0, 0, 0, 0}, \
{1, 0, 0, 0, 0}, \
{1, 0, 0, 0, 0}, \
{1, 0, 0, 0, 0}, \
{1, 0, 0, 0, 0}, \
{1, 0, 0, 0, 0}, \
{1, 1, 1, 1, 1} \
}
#define small_L { \
{0, 1, 1, 0, 0}, \
{0, 0, 1, 0, 0}, \
{0, 0, 1, 0, 0}, \
{0, 0, 1, 0, 0}, \
{0, 0, 1, 0, 0}, \
{0, 0, 1, 0, 0}, \
{0, 1, 1, 1, 0} \
}
#define O { \
{0, 1, 1, 1, 0}, \
{1, 0, 0, 0, 1}, \
{1, 0, 0, 0, 1}, \
{1, 0, 0, 0, 1}, \
{1, 0, 0, 0, 1}, \
{1, 0, 0, 0, 1}, \
6
{0, 1, 1, 1, 0} \
}
#define small_O { \
{0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0}, \
{0, 1, 1, 1, 0}, \
{1, 0, 0, 0, 1}, \
{1, 0, 0, 0, 1}, \
{1, 0, 0, 0, 1}, \
{0, 1, 1, 1, 0} \
}
#define small_W { \
{0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0}, \
{1, 0, 0, 0, 1}, \
{1, 0, 0, 0, 1}, \
{1, 0, 1, 0, 1}, \
{1, 0, 1, 0, 1}, \
{0, 1, 0, 1, 0} \
}
#define small_R { \
{0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0}, \
{0, 1, 0, 1, 1}, \
{0, 1, 1, 0, 0}, \
{0, 1, 0, 0, 0}, \
{0, 1, 0, 0, 0}, \
{0, 1, 0, 0, 0} \
}
#define small_D { \
{0, 0, 0, 0, 1}, \
{0, 0, 0, 0, 1}, \
{0, 1, 1, 0, 1}, \
{1, 0, 0, 1, 1}, \
{1, 0, 0, 0, 1}, \
{1, 0, 0, 0, 1}, \
{0, 1, 1, 1, 1} \
}
byte col = 0;
byte leds[5][7];
int pins[13]= {-1, 2, 3, 4, 5, 6, 13, 12, 11, 10, 9, 8, 7};
7
int pattern = 0;
void setup()
{
clearLeds();
FrequencyTimer2::disable();
FrequencyTimer2::setPeriod(2000);
FrequencyTimer2::setOnOverflow(display);
setPattern(pattern);
}
void loop()
{
pattern = ++pattern % numPatterns;
slidePattern(pattern, 100);
}
void clearLeds()
{
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 7; j++) {
leds[i][j] = 0;
}
}
}
8
for (int col = 0; col <= 3; col++)
leds[col][row] = leds[col+1][row];
delay(del);
}
}
void display()
{
digitalWrite(cols[col], LOW);
col++;
if (col == 5) {
col = 0;
}
for (int row = 0; row < 7; row++) {
if (leds[col][row] == 1) {
digitalWrite(rows[row], LOW);
}
else {
digitalWrite(rows[row], HIGH);
}
}
digitalWrite(cols[col], HIGH);
}
6. KASUS PERCOBAAN
a. Buat sebuah aplikasi dengan menggunakan 1 Potensio, 1 push button, 1 shift
register 4094, 1 buah LCD, buzzer dan dot matrix.
b. Terdapat kendali on/off, PWM dan delay dan shift register,
c. Terdapat interface analog dan digital
d. Catat skematik beserta pin/port yang digunakan, dan program yang dibuat
pada kasus diatas dan perlihatkan pada assisten
e. Kasusnya : jika tombol start ditekan maka berfungsi untuk merekam inputan
satu huruf dari serial monitor, kemudian setelah input dari serial monitor
dilakukan, kemudian penekanan pada tombol yang sama berfungsi
menjalankan running text pada dot matrix dari inputan serial tersebut.
7. LAPORAN AKHIR
a. Sesuaikan dengan aturan praktikum sebelumnya
b. Lampirkan hasil percobaan, skematik dan program yang diuji beserta
komentar
c. Jelaskan kasus percobaan 6 dari sisi interface dan pheripheral, sistem kendali,
dan pemograman mikrokontroler.
9
d. Jelaskan cara kerja dan jelaskan juga port mana saja yang bisa digunakan.
i. Dot matrix
ii. EEPROM
10
Kelompok :
Nama :
1. __________________
2. __________________
3. __________________
MODUL 5
PRAKTIKUM INTERFACE, PEMOGRAMAN MIKROKONTROLER, DAN
SISTEM KENDALI, FAKULTAS ILMU TERAPAN, UNIVERSITAS TELKOM
1. JUDUL PRAKTIKUM
Photodiode, LDR dan Relay
1
4. TEORI DASAR
PHOTODIODE
Photodiode merupakan sesnsor cahaya. Dimana resistansi yang dimiliki sensor ini
akan berubah-ubah sesuai intensitas cahaya yang mengenai sensor ini.
A. Power supply : 5 – 12 Volt
B. Input : Intensitas Cahaya (Analog)
C. Output : Tegangan (Analog)
D. Batasan : Dapat bekerja sampai tegangan 12 Volt. Dengan menggunakan
resistor yang besar akan membuat sensor ini lebih efisien.
LDR
LDR (Light Dependent Resistor) dapat juga digunakan sebagai sensor cahaya.
LDR merupakan resistor yang nilai resistansinya akan berubah-ubah sesuai
intensitas cahaya yang mengenai sensor ini.
A. Power supply : 5-320 volt
B. Input : Intensitas Cahaya (Analog)
C. Output : Tegangan (Analog)
D. Batasan : Tegangan maksimal 320 Volt
RELAY
A. Power Supply : 5-12 Volt
B. Input : Tegangan
C. Output : Arus (Sebagai sakelar)
D. Batasan : Tegangan minimum untuk trigger = 5Volt
2
5. PROSEDUR PRAKTIKUM
A. Buat rangkaian sesuai dengan skematik berikut :
LCD1
LM016L
BUZ1 R1 R2
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
330 Ohm 330 Ohm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
BUZZER
RV1
13
12
11
10
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
4
5
6
7
9
U1
PB5/SCK
PD4/T0/XCK
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
QS
QS
PB4/MISO
4094
50%
~
CLK
STB
DIGITAL (~PWM) 1k
OE
D
2
3
1
15
ATMEGA328P-PU
1121
microcontrolandos.blogspot.com
PC4/ADC4/SDA
PC5/ADC5/SCL
ANALOG IN DUINO1
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
ARDUINO UNO R3 R3
RESET
330 Ohm
D1
A0
A1
A2
A3
A4
A5
LED
LDR1
RL1
12V
R4
33K
1.0
R5 D2
LDR
33K
D3
photodioda
R6
330 Ohm
LED
Catatan : ditambahkan hambatan 330 Ohm pada input LED + pada kaki 15 LCD, dan kaki
16 diground
void setup()
{
Serial.begin(9600);
3
pinMode( ledPin, OUTPUT );
}
void loop()
{
Serial.println(analogRead(lightPin));
analogWrite(ledPin, analogRead(lightPin)/4);
delay(10);
}
b. Lakukan modifikasi pada rangkaian diatas dan berikan komentar pada setiap
line program diatas.
2. Photodiode - Buzzer
a. Tuliskan program dibawah ini pada software Arduino dan upload keboard
Arduino Uno R3 :
int buzz = 10;
int senRead = 0;
int limit = 850;
void setup()
{
pinMode(pd,OUTPUT);
pinMode(buzz,OUTPUT);
digitalWrite(buzz,LOW);
Serial.begin(9600);
}
void loop()
{
int val=analogRead(senRead);
Serial.println(val);
if(val <= limit)
{
digitalWrite(buzz,HIGH);
delay(20);
}
else if(val > limit)
{
digitalWrite(buzz,LOW);
delay(20);
}
}
b. Lakukan modifikasi pada rangkaian diatas dan berikan komentar pada setiap
line program diatas.
3. Relay
a. Tuliskan program dibawah ini pada software Arduino dan upload keboard
Arduino Uno R3 :
int relay = 13;
void setup() {
pinMode(relay, OUTPUT);
}
void loop() {
digitalWrite(relay, HIGH);
delay(1000);
4
digitalWrite(relay, LOW);
delay(1000);
}
b. Lakukan modifikasi pada rangkaian diatas dan berikan komentar pada setiap
line program diatas.
6. KASUS PERCOBAAN
a. Buat sebuah aplikasi dengan menggunakan sensor photodiode, LDR, push
button, LCD, Relay, dan LED
b. Terdapat kendali on/off, PWM dan delay dan shift register,
c. Terdapat interface analog dan digital
d. Catat skematik beserta pin/port yang digunakan, dan program yang dibuat
pada kasus diatas dan perlihatkan pada assisten
e. Kasusnya :
i. Fungsi push button 1 untuk menunjukkan nilai LDR dan ditunjukkan
dalam LED (PWM, rangkaian ditambah LED 1 + 330 Ohm)
ii. Fungsi push button 2 untuk menunjukkan nilai Photodiode dan
ditunjukkan dalam LED (PWM, rangkaian ditambah LED 1 + 330
Ohm)
iii. Fungsi push button 3 untuk menunjukkan jika photodiode memiliki
batas nilai tertentu agar dapat membunyikan buzzer
iv. Fungsi push button 4 untuk menunjukkan jika LDR memiliki batas
nilai tertentu agar dapat membunyikan buzzer
7. LAPORAN AKHIR
a. Sesuaikan dengan aturan praktikum sebelumnya
b. Lampirkan hasil percobaan, skematik dan program yang diuji beserta
komentar
c. Jelaskan apa saja yang dimaksud dalam jenis-jenis interface.
d. Jelaskan kasus percobaan 6 dari sisi interface dan pheripheral, sistem kendali,
dan pemograman mikrokontroler.
e. Jelaskan cara kerja dan jelaskan juga port mana saja yang bisa digunakan.
i. Photodiode
ii. LDR
iii. Relay
5
Kelompok :
Nama :
1. __________________
2. __________________
3. __________________
MODUL 6
PRAKTIKUM INTERFACE, PEMOGRAMAN MIKROKONTROLER, DAN
SISTEM KENDALI, FAKULTAS ILMU TERAPAN, UNIVERSITAS TELKOM
1. JUDUL PRAKTIKUM
LM35 dan 4N35
1
4. TEORI DASAR
A. LM35
2
5. PROSEDUR PRAKTIKUM
A. Buat rangkaian sesuai dengan skematik berikut :
LCD1
LM016L
BUZ1 R1 R2
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
330 Ohm 330 Ohm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
BUZZER
RV1
13
12
11
10
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
4
5
6
7
9
U1
PB5/SCK
PD4/T0/XCK
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
QS
QS
PB4/MISO
4094
50%
~
CLK
STB
DIGITAL (~PWM) 1k
OE
D
2
3
1
15
ATMEGA328P-PU
1121
microcontrolandos.blogspot.com
PC4/ADC4/SDA
PC5/ADC5/SCL
ANALOG IN DUINO1
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
ARDUINO UNO R3 R3
RESET
330 Ohm
D1
A0
A1
A2
A3
A4
A5
LED
U2
R4 B 6
2
1 A C 5
VOUT
330 Ohm
27.0
1
2 4
3
K E
U3 4N35
LM35
Catatan : ditambahkan hambatan 330 Ohm pada input LED + pada kaki 15 LCD, dan kaki
16 diground
void setup()
{
analogReference(INTERNAL);
}
void loop()
{
reading = analogRead(tempPin);
3
tempC = reading / 9.31;
}
b. Lakukan modifikasi pada rangkaian diatas dan berikan komentar pada setiap
line program diatas.
2. 4N35
a. Tuliskan program dibawah ini pada software Arduino dan upload keboard
Arduino Uno R3 :
int led = A5;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
b. Lakukan modifikasi pada rangkaian diatas dan berikan komentar pada setiap
line program diatas.
6. KASUS PERCOBAAN
a. Buat sebuah aplikasi dengan menggunakan 1 push button, 1 LM35, 4N35,
LED (posisi port dapat dirubah sesuai dengan kebutuhan)
b. Terdapat kendali on/off, PWM dan delay dan shift register,
c. Terdapat interface analog dan digital
d. Catat skematik beserta pin/port yang digunakan, dan program yang dibuat
pada kasus diatas dan perlihatkan pada assisten
e. Kasusnya :
i. Push button ditekan pertama kali untuk merekam data suhu yang
dihasilkan LM35 dan ditunjukkan dalam LCD dan serial monitor.
ii. Push button ditekan kedua kali untuk menunjukkan hasil rekaman
dalam bentuk keluaran serial monitor dan LCD.
iii. Push button ditekan ketiga kali untuk menghapus semua rekaman
dalam EEPROM diakhiri dengan bunyi buzzer pada akhir penghapusan
iv. Push button ditekan keempat kali untuk melaksanakan LED fading dan
variasi (bisa kelap-kelip)
v. Push button ditekan kelima kali kembali ke kasus 1
7. LAPORAN AKHIR
a. Sesuaikan dengan aturan praktikum sebelumnya
b. Lampirkan hasil percobaan, skematik dan program yang diuji beserta
komentar
c. Jelaskan apa saja yang dimaksud dalam jenis-jenis sistem kendali.
d. Jelaskan kasus percobaan 6 dari sisi interface dan pheripheral, sistem kendali,
dan pemograman mikrokontroler.
e. Jelaskan cara kerja dan jelaskan juga port mana saja yang bisa digunakan.
i. LM35
4
ii. 4N35
5
Kelompok :
Nama :
1. __________________
2. __________________
3. __________________
MODUL 7
PRAKTIKUM INTERFACE, PEMOGRAMAN MIKROKONTROLER, DAN
SISTEM KENDALI, FAKULTAS ILMU TERAPAN, UNIVERSITAS TELKOM
1. JUDUL PRAKTIKUM
PIR (Passive Infra Red)
1
4. TEORI DASAR PASSIVE INFRA RED (PIR)
Sensor PIR ini bekerja dengan menangkap energi panas yang dihasilkan dari
pancaran sinar inframerah pasif yang dimiliki setiap benda dengan suhu benda
diatas nol mutlak. Seperti tubuh manusia yang memiliki suhu tubuh kira-kira 32
derajat celcius, yang merupakan suhu panas yang khas yang terdapat pada
lingkungan. Pancaran sinar inframerah inilah yang kemudian ditangkap oleh
Pyroelectric sensor yang merupakan inti dari sensor PIR ini sehingga
menyebabkan Pyroelectic sensor yang terdiri dari galium nitrida, caesium nitrat
dan litium tantalate menghasilkan arus listrik. Mengapa bisa menghasilkan arus
listrik? Karena pancaran sinar inframerah pasif ini membawa energi panas.
Prosesnya hampir sama seperti arus listrik yang terbentuk ketika sinar matahari
mengenai solar cell.
Mengapa sensor PIR hanya bereaksi pada tubuh manusia saja? Hal ini
disebabkan karena adanya IR Filter yang menyaring panjang gelombang sinar
inframerah pasif. IR Filter dimodul sensor PIR ini mampu menyaring panjang
gelombang sinar inframerah pasif antara 8 sampai 14 mikrometer, sehingga
2
panjang gelombang yang dihasilkan dari tubuh manusia yang berkisar antara 9
sampai 10 mikrometer ini saja yang dapat dideteksi oleh sensor.
5. PROSEDUR PRAKTIKUM
A. Buat rangkaian sesuai dengan skematik berikut :
LCD1
LM016L
R2
VDD
VSS
VEE
RW
PIN PIR
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
330 Ohm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
RV1
13
12
11
10
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
4
5
6
7
9
U1
PB5/SCK
PD4/T0/XCK
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
QS
QS
PB4/MISO
4094
50%
~
CLK
STB
DIGITAL (~PWM) 1k
OE
D
2
3
1
15
ATMEGA328P-PU
1121
microcontrolandos.blogspot.com
PC4/ADC4/SDA
PC5/ADC5/SCL
ANALOG IN DUINO1
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
ARDUINO UNO R3 R3
RESET
330 Ohm
D1
A0
A1
A2
A3
A4
A5
LED
U2
BUZ1 R1 R4 B 6
1 A C 5
330 Ohm 330 Ohm
2 4
BUZZER
K E
4N35
Catatan : ditambahkan hambatan 330 Ohm pada input LED + pada kaki 15 LCD, dan kaki
16 diground
void setup(){
Serial.begin(9600);
3
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(pirPin, LOW);
void loop(){
if(digitalRead(pirPin) == HIGH){
digitalWrite(ledPin, HIGH);
if(lockLow){
lockLow = false;
Serial.println("---");
Serial.print("motion detected at ");
Serial.print(millis()/1000);
Serial.println(" sec");
delay(50);
}
takeLowTime = true;
}
if(digitalRead(pirPin) == LOW){
digitalWrite(ledPin, LOW);
if(takeLowTime){
lowIn = millis();
takeLowTime = false;
}
b. Lakukan modifikasi pada rangkaian diatas dan berikan komentar pada setiap
line program diatas.
6. KASUS PERCOBAAN
a. Buat sebuah aplikasi dengan menggunakan 1 push button, 4N35, LED, dan
PIR (posisi port dapat dirubah sesuai dengan kebutuhan)
b. Terdapat kendali on/off, PWM dan delay dan shift register,
c. Terdapat interface analog dan digital
d. Catat skematik beserta pin/port yang digunakan, dan program yang dibuat
pada kasus diatas dan perlihatkan pada assisten
e. Kasusnya :
4
i. Push button ditekan pertama kali untuk menjalankan PIR dan
menunjukkan fungsi kerja PIR dalam LCD dan serial monitor
ii. Push button ditekan kedua kali untuk menunjukkan kerja PIR jika ada
orang dalam bentuk buzzer, LCD dan serial monitor
iii. Push button ditekan ketiga kali menunjukkan kerja PIR dengan
keluaran LCD dan serial monitor dan jika ada orang dalam bentuk
LED kelap-kelip jika ada orang dan LED akan mati jika tidak ada
orang.
iv. Push button ditekan keempat kali kembali ke kasus 1
7. LAPORAN AKHIR
a. Sesuaikan dengan aturan praktikum sebelumnya
b. Lampirkan hasil percobaan, skematik dan program yang diuji beserta
komentar
c. Jelaskan kasus percobaan 6 dari sisi interface dan pheripheral, sistem kendali,
dan pemograman mikrokontroler.
d. Jelaskan cara kerja dan jelaskan juga port mana saja yang bisa digunakan.
i. PIR
5
Kelompok :
Nama :
1. __________________
2. __________________
3. __________________
MODUL 8
PRAKTIKUM INTERFACE, PEMOGRAMAN MIKROKONTROLER, DAN
SISTEM KENDALI, FAKULTAS ILMU TERAPAN, UNIVERSITAS TELKOM
1. JUDUL PRAKTIKUM
PING (Ultrasonic)
1
4. TEORI DASAR PING
Sensor PING merupakan sensor ultrasonik yang dapat mendeteksi jarak obyek
dengan cara memancarkan gelombang ultrasonik dengan frekuensi 40 KHz dan
kemudian mendeteksi pantulannya. Tampilan sensor jarak PING ditunjukkan pada
Gambar berikut:
Sensor ini dapat mengukur jarak antara 3 cm sampai 300 cm. keluaran dari
sensor ini berupa pulsa yang lebarnya merepresentasikan jarak. Lebar pulsanya
bervariasi dari 115 uS sampai 18,5 mS. Pada dasanya, PING terdiri dari sebuah chip
pembangkit sinyal 40KHz, sebuah speaker ultrasonik dan sebuah mikropon
ultrasonik. Speaker ultrasonik mengubah sinyal 40 KHz menjadi suara sementara
mikropon ultrasonik berfungsi untuk mendeteksi pantulan suaranya.
2
5. TEORI DASAR PING
Buat rangkaian sesuai dengan skematik berikut :
LCD1
LM016L
R2
VDD
VSS
VEE
RW
PIN PING
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
330 Ohm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
RV1
13
12
11
10
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
4
5
6
7
9
U1
PB5/SCK
PD4/T0/XCK
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
QS
QS
PB4/MISO
4094
50%
~
CLK
STB
DIGITAL (~PWM) 1k
OE
D
2
3
1
15
ATMEGA328P-PU
1121
microcontrolandos.blogspot.com
PC4/ADC4/SDA
PC5/ADC5/SCL
ANALOG IN DUINO1
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
ARDUINO UNO R3 R3
RESET
330 Ohm
D1
A0
A1
A2
A3
A4
A5
LED
U2
BUZ1 R1 R4 B 6
1 A C 5
330 Ohm 330 Ohm
2 4
BUZZER
K E
4N35
Catatan : ditambahkan hambatan 330 Ohm pada input LED + pada kaki 15 LCD, dan kaki
16 diground
3
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(100);
}
long microsecondsToInches(long microseconds)
{
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}
b. Lakukan modifikasi pada rangkaian diatas dan berikan komentar pada setiap
line program diatas.
6. KASUS PERCOBAAN
a. Buat sebuah aplikasi dengan menggunakan 1 Potensio, 1 push button, 1 shift
register 4094, 1 buah LCD, buzzer dan PING.
b. Terdapat kendali on/off, PWM dan delay dan shift register,
c. Terdapat interface analog dan digital
d. Catat skematik beserta pin/port yang digunakan, dan program yang dibuat
pada kasus diatas dan perlihatkan pada assisten
e. Kasusnya :
i. Push button ditekan pertama kali untuk menjalankan PING dan
menunjukkan fungsi kerja PING dalam LCD dan serial monitor
ii. Push button ditekan kedua kali untuk menunjukkan kerja PING jika
nilai PING melewati batas tertentu ada peringatan dalam bentuk
buzzer, LCD dan serial monitor
iii. Push button ditekan ketiga kali menunjukkan kerja PING dengan
keluaran LCD, serial monitor dan bentuk LED fading PWM sesuai
dengan keluaran PING.
iv. Push button ditekan keempat kali kembali ke kasus 1
7. LAPORAN AKHIR
a. Sesuaikan dengan aturan praktikum sebelumnya
b. Lampirkan hasil percobaan, skematik dan program yang diuji beserta
komentar
c. Jelaskan kasus percobaan 6 dari sisi interface dan pheripheral, sistem kendali,
dan pemograman mikrokontroler.
d. Jelaskan cara kerja dan jelaskan juga port mana saja yang bisa digunakan.
i. PING
4
Kelompok :
Nama :
1. __________________
2. __________________
3. __________________
MODUL 9
PRAKTIKUM INTERFACE, PEMOGRAMAN MIKROKONTROLER, DAN
SISTEM KENDALI, FAKULTAS ILMU TERAPAN, UNIVERSITAS TELKOM
1. JUDUL PRAKTIKUM
Sensor Proximity
1
4. TEORI DASAR PROXIMITY SENSOR
Sensor sharp digunakan untuk membaca jarak. Sensor ini menggunakan prinsip
pantulan sinar infra merah. Dalam aplikasi ini nilai tegangan keluran dari sensor yang
berbanding terbalik dengan hasil pembacaan jarak dikomparasi dengan tegangan
referensi komparator.
Rangkaian sistem komparator pembacaan jarak dengan sensor sharp ini disajikan
pada Gambar berikut:
Prinsip kerja dari rangkaian komparator sensor sharp pada Gambar diatas adalah
jika sensor mengeluarkan tegangan melebihi tegangan referensi, maka keluaran dari
komparator akan berlogika rendah. Jika tegangan referensi lebih besar dari tegangan
sensor maka keluaran dari komparator akan berlogika tinggi.
2
5. PROSEDUR PRAKTIKUM
Buat rangkaian sesuai dengan skematik berikut :
LCD1
LM016L
R2
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
330 Ohm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
RV1
13
12
11
10
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
4
5
6
7
9
U1
PB5/SCK
PD4/T0/XCK
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
QS
QS
PB4/MISO
4094
50%
~
CLK
STB
DIGITAL (~PWM) 1k
OE
D
2
3
1
15
ATMEGA328P-PU
1121
microcontrolandos.blogspot.com
PC4/ADC4/SDA
PC5/ADC5/SCL
ANALOG IN DUINO1
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
ARDUINO UNO R3 R3
RESET
330 Ohm
D1
A0
A1
A2
A3
A4
A5
LED
GND
U2
VCC
Proximity PIN
Vo
R4 B 6
1 A C 5
330 Ohm
2 4
K E
BUZ1 R1 4N35
330 Ohm
BUZZER
Catatan : ditambahkan hambatan 330 Ohm pada input LED + pada kaki 15 LCD, dan kaki
16 diground
void loop() {
float volts = analogRead(IRpin)*0.0048828125;
float distance = 65*pow(volts, -1.10);
Serial.println(distance);
delay(100);
}
3
b. Lakukan modifikasi pada rangkaian diatas dan berikan komentar pada setiap
line program diatas.
6. KASUS PERCOBAAN
a. Buat sebuah aplikasi dengan menggunakan 1 Potensio, 1 push button, 1 shift
register 4094, 1 buah LCD, buzzer dan sensor proximity.
b. Terdapat kendali on/off, PWM dan delay dan shift register,
c. Terdapat interface analog dan digital
d. Catat skematik beserta pin/port yang digunakan, dan program yang dibuat
pada kasus diatas dan perlihatkan pada assisten
e. Kasusnya :
i. Push button ditekan pertama kali untuk menjalankan sensor proximity
dan menunjukkan fungsi kerja sensor proximity dalam LCD dan serial
monitor
ii. Push button ditekan kedua kali untuk menunjukkan kerja sensor
proximity jika nilai sensor proximity melewati batas tertentu ada
peringatan dalam bentuk buzzer, LCD dan serial monitor
iii. Push button ditekan ketiga kali menunjukkan kerja sensor proximity
dengan keluaran LCD, serial monitor dan bentuk LED fading PWM
sesuai dengan keluaran sensor proximity.
iv. Push button ditekan keempat kali kembali ke kasus 1
7. LAPORAN AKHIR
a. Sesuaikan dengan aturan praktikum sebelumnya
b. Lampirkan hasil percobaan, skematik dan program yang diuji beserta
komentar
c. Jelaskan kasus percobaan 6 dari sisi interface dan pheripheral, sistem kendali,
dan pemograman mikrokontroler.
d. Jelaskan cara kerja dan jelaskan juga port mana saja yang bisa digunakan.
i. sensor proximity
4
Kelompok :
Nama :
1. __________________
2. __________________
3. __________________
MODUL 10
PRAKTIKUM INTERFACE, PEMOGRAMAN MIKROKONTROLER, DAN
SISTEM KENDALI, FAKULTAS ILMU TERAPAN, UNIVERSITAS TELKOM
1. JUDUL PRAKTIKUM
Sensor Gyroscope
1
4. TEORI DASAR GYROSCOPE
DT-Sense 3 Axis Gyroscope merupakan suatu modul sensor kecepatan sudut
(gyroscope) yang mengunakan IC L3G4200D produksi STMicroelectronics
(www.st.com). Modul ini mampu membaca kecepatan sudut pada 3 sumbu dengan
jangkauan pengukuran yang bisa dipilih. Selain itu, modul ini memiliki kemampuan
untuk memilih bandwidth atau kecepatan output data, memiliki FIFO buffer, serta
memiliki pin dan sistem interupsi. Modul ini cocok untuk aplikasi seperti alat kendali
game atau virtual reality, bagian dari sistem navigasi GPS dan robot, alat kendali
untuk MMI (Man Machine Interface) atau aplikasi-aplikasi lain yang memerlukan
data kecepatan sudut.
Spesifikasi :
1. Tegangan kerja 3,3 VDC.
2. Mampu membaca kecepatan sudut pada 3 sumbu.
3. Jangkauan pengukuran yang bisa dipilih yaitu ±250/±500/±2000 dps (degree per
second).
4. Data output dengan format 16 bit.
5. Dilengkapi dengan sensor temperatur 8 bit.
6. Pin interrupt dengan fungsi yang dapat dipilih.
7. Tersedia 2 pilihan antarmuka untuk pembacaan sensor dan konfigurasi modul: I2C
dan SPI.
2
5. PROSEDUR PRAKTIKUM
Buat rangkaian sesuai dengan skematik berikut :
LCD1
LM016L
BUZ1 R1 R2
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
330 Ohm 330 Ohm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
BUZZER
RV1
13
12
11
10
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
4
5
6
7
9
U1
PB5/SCK
PD4/T0/XCK
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
QS
QS
PB4/MISO
4094
50%
~
CLK
STB
DIGITAL (~PWM) 1k
OE
D
2
3
1
15
ATMEGA328P-PU
1121
microcontrolandos.blogspot.com
PC4/ADC4/SDA
PC5/ADC5/SCL
ANALOG IN DUINO1
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
ARDUINO UNO R3
RESET
Gyroscope
GND
A0
A1
A2
A3
A4
A5
3V3
5
6
R3
D1
330 Ohm
3,3 volt
LED
U2
R4 B 6
1 A C 5
330 Ohm
2 4
K E
4N35
Catatan : ditambahkan hambatan 330 Ohm pada input LED + pada kaki 15 LCD, dan kaki
16 diground
int x;
int y;
3
int z;
void setup(){
Wire.begin();
Serial.begin(9600);
Serial.println("starting up L3G4200D");
setupL3G4200D(2000);
delay(1500);
}
void loop(){
getGyroValues();
Serial.print("X:");
Serial.print(x);
Serial.print(" Y:");
Serial.print(y);
Serial.print(" Z:");
Serial.println(z);
delay(100);
}
void getGyroValues(){
4
}
int v;
Wire.beginTransmission(deviceAddress);
Wire.write(address);
Wire.endTransmission();
Wire.requestFrom(deviceAddress, 1);
while(!Wire.available()) {
v = Wire.read();
return v;
}
b. Lakukan modifikasi pada rangkaian diatas dan berikan komentar pada setiap
line program diatas.
6. KASUS PERCOBAAN
a. Buat sebuah aplikasi dengan menggunakan 1 Potensio, 1 push button, 1 shift
register 4094, 1 buah LCD, buzzer dan Gyroscope.
b. Terdapat kendali on/off, PWM dan delay dan shift register,
c. Terdapat interface analog dan digital
d. Catat skematik beserta pin/port yang digunakan, dan program yang dibuat
pada kasus diatas dan perlihatkan pada assisten
e. Kasusnya :
i. Push button ditekan pertama kali untuk menjalankan sensor proximity
dan menunjukkan fungsi kerja sensor gyroscope dalam LCD dan serial
monitor
ii. Push button ditekan kedua kali untuk menunjukkan kerja sensor
gyroscope jika nilai sensor gyroscope melewati batas tertentu ada
peringatan dalam bentuk buzzer, LCD dan serial monitor
iii. Push button ditekan ketiga kali menunjukkan kerja sensor gyroscope
dengan keluaran LCD, serial monitor dan bentuk LED fading PWM
sesuai dengan keluaran sensor gyroscope.
iv. Push button ditekan keempat kali kembali ke kasus 1
7. LAPORAN AKHIR
a. Sesuaikan dengan aturan praktikum sebelumnya
b. Lampirkan hasil percobaan, skematik dan program yang diuji beserta
komentar
c. Jelaskan kasus percobaan 6 dari sisi interface dan pheripheral, sistem kendali,
dan pemograman mikrokontroler.
d. Jelaskan cara kerja dan jelaskan juga port mana saja yang bisa digunakan.
i. I2C
ii. sensor gyroscope
5
Kelompok :
Nama :
1. __________________
2. __________________
3. __________________
MODUL 11
PRAKTIKUM INTERFACE, PEMOGRAMAN MIKROKONTROLER, DAN
SISTEM KENDALI, FAKULTAS ILMU TERAPAN, UNIVERSITAS TELKOM
1. JUDUL PRAKTIKUM
RFID
1
4. TEORI DASAR GYROSCOPE
RFID Starter Kit merupakan suatu sarana pengembangan RFID berbasis reader
tipe ID-12 yang telah dilengkapi dengan jalur komunikasi RS-232 serta indikator
buzzer dan LED. Modul ini dapat digunakan dalam aplikasi mesin absensi RFID,
RFID access controller, dsb.
Spesifikasi :
1. Berbasis RFID reader ID-12 dengan frekuensi kerja 125 kHz untuk kartu
berformat EM4001/sejenis dan memiliki jarak baca maksimal 12 cm.
2. Kompatibel dengan varian RFID reader lainnya, antara lain: ID-2, ID-10, dan ID-
20.
3. Mendukung varian RFID reader/writer, antara lain: ID-2RW, ID-12RW, dan ID-
20RW.
4. Mendukung format data ASCII (UART TTL/RS-232), Wiegand26, maupun
Magnetic ABA Track2 (Magnet Emulation).
5. Dilengkapi dengan buzzer sebagai indikator baca, serta LED sebagai indikator
tulis.
6. Tersedia jalur komunikasi serial UART RS-232 dengan konektor RJ11.
7. Tegangan input catu daya 9 - 12 VDC (J2).
8. Antena dapat dihubungkan ke J5 untuk RFID reader only atau reader/writer yang
memerlukan antena eksternal, seperti ID-2 dan ID-2RW.
J7 hanya digunakan untuk RFID reader only dalam mode UART TTL (ASCII),
Wiegand26, dan Magnet Emulation. J7 tidak boleh digunakan pada mode lain.
Pengaturan jumper J3, J4, dan J6 harus disesuaikan dengan jenis RFID (reader only
atau reader/writer) serta format data RFID reader yang akan digunakan.
2
5. PROSEDUR PRAKTIKUM
Buat rangkaian sesuai dengan skematik berikut :
LCD1
LM016L
BUZ1 R1 R2
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
330 Ohm 330 Ohm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
BUZZER
RV1
13
12
11
10
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
4
5
6
7
9
U1
PB5/SCK
PD4/T0/XCK
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
QS
QS
PB4/MISO
4094
50%
~
CLK
STB
DIGITAL (~PWM) 1k
OE
D
2
3
1
15
ATMEGA328P-PU
1121
microcontrolandos.blogspot.com
PC4/ADC4/SDA
PC5/ADC5/SCL
ANALOG IN DUINO1
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
ARDUINO UNO R3
RESET
J7 - 1GND
J7 - 4D0
RFID Reader
A0
A1
A2
A3
A4
A5
R3
330 Ohm
D1
LED
U2
R4 B 6
1 A C 5
330 Ohm
2 4
K E
4N35
Catatan : ditambahkan hambatan 330 Ohm pada input LED + pada kaki 15 LCD, dan kaki
16 diground
3
2. Parsing data
a. Tuliskan program dibawah ini pada software Arduino dan upload keboard
Arduino Uno R3 :
#include <SoftwareSerial.h>
#define rxPin 4
#define txPin 5
SoftwareSerial rfid = SoftwareSerial( rxPin, txPin );
#define futureOutput 12
#define ledPin 13
#define unlockSeconds 2
char* allowedTags[] = {
"[INSERT IDENTIFIER HERE]", // Tag 1
"2900940E95", // Tag 2
"ABC123DE45", // Tag 3
};
char* tagName[] = {
"[ADD YOUR NAME HERE]", // Tag 1
"Mark Trussell", // Tag 2
"NAME 3", // Tag 3
};
void loop() {
byte i = 0;
byte val = 0;
byte checksum = 0;
byte bytesRead = 0;
byte tempByte = 0;
byte tagBytes[6];
char tagValue[10];
if((val = rfid.read()) == 2) {
bytesRead = 0;
while (bytesRead < 12) {
val = rfid.read();
if (bytesRead < 10)
{
tagValue[bytesRead] = val;
}
if((val == 0x0D)||(val == 0x0A)||(val == 0x03)||(val ==
0x02)) {
break;
}
if ((val >= '0') && (val <= '9')) {
val = val - '0';
}
else if ((val >= 'A') && (val <= 'F')) {
val = 10 + val - 'A';
4
}
if (bytesRead & 1 == 1) {
tagBytes[bytesRead >> 1] = (val | (tempByte << 4));
if (bytesRead >> 1 != 5) {
checksum ^= tagBytes[bytesRead >> 1];
};
}
else {
tempByte = val;
};
bytesRead++;
}
if (bytesRead == 12) {
tagValue[10] = '\0';
Serial.print("Tag read: ");
for (i=0; i<5; i++) {
if (tagBytes[i] < 16) {
Serial.print("0");
}
Serial.print(tagBytes[i], HEX);
}
Serial.println();
Serial.print("Checksum: ");
Serial.print(tagBytes[5], HEX);
Serial.println(tagBytes[5] == checksum ? " -- passed." :
" -- error.");
Serial.print("VALUE: ");
Serial.println(tagValue);
int tagId = findTag( tagValue );
if( tagId > 0 )
{
Serial.print("Authorized tag ID ");
Serial.print(tagId);
Serial.print(": unlocking for ");
Serial.println(tagName[tagId - 1]);
unlock();
}
else {
Serial.println("Tag not authorized");
}
Serial.println();
}
bytesRead = 0;
}
}
void unlock() {
digitalWrite(ledPin, HIGH);
digitalWrite(futureOutput, HIGH);
delay(unlockSeconds * 1000);
digitalWrite(futureOutput, LOW);
digitalWrite(ledPin, LOW);
}
5
}
return(0);
}
b. Lakukan modifikasi pada rangkaian diatas dan berikan komentar pada setiap
line program diatas.
6. KASUS PERCOBAAN
a. Buat sebuah aplikasi dengan menggunakan 1 Potensio, 1 push button, 1 shift
register 4094, 1 buah LCD, buzzer dan RFID.
b. Terdapat kendali on/off, PWM dan delay dan shift register,
c. Terdapat interface analog dan digital
d. Catat skematik beserta pin/port yang digunakan, dan program yang dibuat
pada kasus diatas dan perlihatkan pada assisten
e. Kasusnya :
i. Push button ditekan pertama kali untuk menjalankan RFID (siap untuk
membaca RFID)
ii. Membaca RFID, jika sesuai dengan data yang disimpan, maka buzzer
akan berbunyi sekali dan pelan dan LED fading PWM kelap-kelip
sebanyak 3 kali. Nilai RFID ditampilkan di LCD dan Serial Monitor.
iii. Membaca RFID, jika tidak sesuai dengan data yang disimpan, maka
buzzer akan berbunyi sekali dan panjang dan LED kelap-kelip selama
buzzer berbunyi 10 kali. Nilai RFID ditampilkan di LCD dan Serial
Monitor.
iv. Push button ditekan kedua kali mematikan RFID dan LED berkelap-
kelip hingga push button ditekan.
v. Push button ditekan sekali lagi kembali ke 1.
7. LAPORAN AKHIR
a. Sesuaikan dengan aturan praktikum sebelumnya
b. Lampirkan hasil percobaan, skematik dan program yang diuji beserta
komentar
c. Jelaskan kasus percobaan 6 dari sisi interface dan pheripheral, sistem kendali,
dan pemograman mikrokontroler.
d. Jelaskan cara kerja dan jelaskan juga port mana saja yang bisa digunakan.
i. UART
ii. TTL
iii. RFID