Module Intermediate
Module Intermediate
2 ADC (Analog Digital Converter) Mengerti penggunaan dari Dapat memanfaatkan sensor-
Pembacaan Nilai Analog dan Digital macam-macam sensor sensor jenis analog dan
pada Microcontroller analog dan digital berikut digital dalam project
cara merangkai dan elektronika yang ingin
✓ Button (switch dan On/Off)
memprogramnya dibangun
✓ Infrared Proxymiti (Button tanpa Teori dan
sentuh) Praktikum
✓ Sensor LDR (Pendeteksi Cahaya)
4 Menghubungkan ke Akuator
dan Mengerti penggunaan Dapat memanfaatkan
Display macam-macam akuator macam-macam akuator serta
sebagai penggerak objek dapat menganalisa
✓ Relay
tertentu serta membuat fungsionalitas dari jenis
Teori dan
✓ Servo output tampilan sehingga akuator pada project yang
Praktikum
bisa digunakan untuk akan dibangun.
✓ Motor Driver + Motor DC memantau data sensor dan
✓ LCD I2C 20x4 mempelajari fungsi protocol
I2C pada LCD
5 Otomatisasi Sensor dan Akuator Mengerti penggunaan sensor Dapat membangun system
dan akuator serta display otomatisasi yang berjalan
✓ Temperature + Relay + LCD
pada mini project otomatisasi sendiri dalam mini project
✓ Ultrasonic + Servo + LCD yang dibangun
Teori dan
✓ RFID + Servo/Relay + LCD Praktikum
2
Pengenalan
Microcontroller
1. Arduino
2. ESP8266 / ESP-01
3. STM32
M ikrokontroler merupakan sebuah sistem komputer yang seluruh atau sebagian besar elemennya dikemas
dalam satu chip IC, sehingga sering disebut single chip microcomputer. Mikrokontroler merupakan sistem
komputer yang mempunyai satu atau beberapa tugas yang sangat spesifik, berbeda dangan PC (Personal
Computer) yang memiliki beragam fungsi. Perbedaan lainnya adalah perbandingan RAM dan ROM yang
sangat berbeda antara komputer dengan mikrokontroler.
Mikrokontroler adalah sebuah system microprocessor dimana didalamnya sudah terdapat CPU, ROM, RAM,
I/O, Clock dan peralatan internal lainnya yang sudah saling terhubung dan terorganisasi (teralamati) dengan
baik oleh pabrik pembuatnya dan dikemas dalam satu chip yang siap pakai. Sehingga kita tinggal memprogram
isi ROM sesuai aturan penggunaan oleh pabrik yang membuatnya menurut Winoto (2008:3).
1. ARDUINO
Arduino adalah mikrokontroller / pengendali mikro papan tunggal (single board) yang bersifat Open source
dan menjadi salah satu proyek Open Source Hardware yang paling populer. Dirancang untuk memudahkan
pembuatan alat-alat elektronik interaktif berdasarkan hardware dan
software yang fleksibel dan mudah digunakan dalam berbagai bidang.
Perangkat Hardware memiliki prosesor Atmel AVR . Softwarenya terdiri
dari beberapa fiture yakni Integrated Development Environment(IDE),
Text-Editor, Compiler, Serial Monitor, dan Serial ISP Programmer.
Pada aplikasi Arduino, Mikrokontroler diprogram menggunakan bahasa
pemrograman C atau C++, dengan library khas arduino. Karena sifatnya
yang Open Source maka siapa saja dapat mengunduh skema hardware
arduino dan membangunnya
Kelebihan Microcontroller Arduino:
✓ Harga terjangkau
✓ Dapat dijalankan diberbagai sistem operasi, Windows, Linux, Mac, dan sebagainya.
✓ Sederhana, dengan bahasa pemograman yang mudah bisa dipelajari orang awam, bukan untuk orang
teknik saja.
✓ Open Source, hardware maupun software.
3
2. ESP8266 / ESP-01
ESP8266 / ESP-01 merupakan modul Wi-Fi yang
memungkinkan akses mikrokontroler ke jaringan Wi-Fi. Modul ini
merupakan tipe SOC mandiri (System On a Chip) yang tidak
memerlukan mikrokontroler untuk memanipulasi input dan output
karena ESP-01 bertindak sebagai komputer kecil
Dengan demikian, kita bisa memberi akses internet
mikrokontroler seperti perisai Wi-Fi ke Arduino, atau kita hanya bisa memprogram ESP8266 untuk tidak
hanya memiliki akses ke jaringan Wi-Fi, tapi juga berfungsi sebagai mikrokontroler.
4
3. STM32
STM32 adalah mikrokontroler berbasis inti prosesor 32 bit RISC ARM Cortex-M7, Cortex-M4F, Cortex-
M3, Cortex-M0+, dan Cortex-M0 dari STMicrelectronics. Mikrokontroler ini mempunyai frekuensi clock
tinggi, umumnya berada pada kisaran 72MHz atau lebih.
5
ADC (Analog Digital Converter) Pembacaan Nilai
Analog dan Digital pada Microcontroller
1. Button (switch dan On/Off)
2. Infrared Proxymiti (Button tanpa sentuh)
3. Sensor LDR (Pendeteksi Cahaya)
4. Sensor Flame (Pendeteksi Api)
5. Sensor PIR (Pendeteksi Gerak)
6
Source Code Push buton
//Inisialisasi pembuatan variable
int tombol1 =2;
int led1 =13;
void setup() {
//Menentukan Fungsionalitas dari PIN pada Microcontroller
Serial.begin(115200); //baudrate yang digunakan untuk komunikasi microcontroller dengan komputer
pinMode(tombol1,INPUT);
pinMode(led1,OUTPUT);
}
void loop() {
//Program yang akan dijalankan berulang-ulang
int bacaTombol1=digitalRead(tombol1); //Membaca keadaan Tombol
//Logika Program (Jika tombol membaca Nilai 1 maka led menyala, jika bukan 1 maka mati
if(bacaTombol1==1){
digitalWrite(led1,HIGH);
}else{
digitalWrite(led1,LOW);
}
delay(500); //Jeda waktu perulagan seama 500 mili detik
}
Chalange
1. Rangkailah 3 Button dan 3 Led selanjutnya program agar masing-masing led bisa menyala sesuai
button yang tekan
2. Buatlah program untuk menyalakan led1 dan led2 dengan 1 Tombol
3. Buatlah program untuk menyalakan led1 dengan tombol1 atau tombol2 (fungsi or)
4. Buatlah program untuk menyalakan led1 dengan tombol1 dan tombol2 (fungsi and)
7
Merakit Infrared proximity pada arduino
Source Code
Gunakan source code yang sama dengan materi 1, karena sistem kerja dari proximity sensor ini sama persis dengan fungsi tombol
push button pada materi 1.
8
Source Code
//Inisialisasi pembuatan variable
int sensorLDR =A0;
void setup() {
//Menentukan Fungsionalitas dari PIN pada Microcontroller
Serial.begin(115200); //baudrate yang digunakan untuk komunikasi microcontroller dengan komputer
pinMode(sensorLDR,INPUT);
}
void loop() {
//Program yang akan dijalankan berulang-ulang
int bacaLDR=analogRead(sensorLDR); //Membaca Nilai LDR
Merakit sensor
9
Source Code
//Inisialisasi pembuatan variable
int sensorFlame =A1;
void setup() {
//Menentukan Fungsionalitas dari PIN pada Microcontroller
Serial.begin(115200); //baudrate yang digunakan untuk komunikasi microcontroller dengan komputer
pinMode(sensorFlame,INPUT);
}
void loop() {
//Program yang akan dijalankan berulang-ulang
int bacaFlame=analogRead(sensorFlame); //Membaca Nilai Flame
10
Source Code
//Inisialisasi pembuatan variable
int sensorPIR =2;
void setup() {
//Menentukan Fungsionalitas dari PIN pada Microcontroller
Serial.begin(115200); //baudrate yang digunakan untuk komunikasi microcontroller dengan komputer
pinMode(sensorPIR,INPUT);
}
void loop() {
//Program yang akan dijalankan berulang-ulang
int bacaPIR=digitalRead(sensorPIR); //Membaca Nilai Sensor PIR
Chalange
1. Tambahkan Buzzer pada rangkaian di atas dan buatlah program, Jika PIR sensor mendeteksi adanya
pergerakan maka buzzer berbunyi
2. Gabungkan ke 3 sensor di atas dan taampilkan semua nilai sensor pada serial monitor serta buatlah
logika untuk masing-masing fungsi sensor dengan output Buzzer
11
Mempelajari sensor-sensor Khusu s
1.Temperature
2.Ultrasonic
3.RFID
4.GPS
1. Temperature DS18B20
DS18B20 adalah sebuah sensor suhu digital one wire atau hanya
membutuhkan 1 pin jalur data komunikasi. Setiap sensor DS18B20
memiliki nomor seri 64-bit yang unik yang berarti kita dapat
menggunakan banyak sensor pada bus daya yang sama (banyak sensor
terhubung ke GPIO yang sama). Hal tersebut sangat berguna untuk
logging data pada proyek pengontrolan suhu. DS18B20 adalah sensor
yang bagus karena murah, akurat, dan sangat mudah digunakan.
Source Code
//Download dan masukan Library Onewire dan DalasTemperature
#include <OneWire.h>
#include <DallasTemperature.h>
void setup() {
//Menentukan Fungsionalitas dari PIN pada Microcontroller
Serial.begin(115200); //baudrate yang digunakan untuk komunikasi microcontroller dengan komputer
sensors.begin(); //Memanggil fungsi
}
void loop() {
//Program yang akan dijalankan berulang-ulang
sensors.requestTemperatures();
float bacaSuhu = sensors.getTempCByIndex(0); //Membaca data di index 0 pada one wire
12
if(bacaSuhu != DEVICE_DISCONNECTED_C)
{
Serial.print("Data suhu yang terbaca pada bus 1 (index 0): ");
Serial.println(bacaSuhu);
}
else
{
Serial.println("Error: sensor pada index 0 tidak ditemukan!");
}
}
Chalange
1.Buatlah rangkaian tambahan untuk buzzer dan buatlah logika, jika suhu melebihi batas tertentu maka
buzzer berbunyi.
2. Ultrasonic
Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah
besaran fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja
sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara
sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu
benda dengan frekuensi tertentu. Disebut sebagai sensor ultrasonik
karena sensor ini menggunakan gelombang ultrasonik (bunyi
ultrasonik).
Pada sensor ultrasonik, gelombang ultrasonik dibangkitkan melalui
sebuah alat yang disebut dengan piezoelektrik dengan frekuensi
tertentu. Piezoelektrik ini akan menghasilkan gelombang ultrasonik
(umumnya berfrekuensi 40kHz) ketika sebuah osilator diterapkan pada
benda tersebut. Secara umum, alat ini akan menembakkan gelombang ultrasonik menuju suatu area atau suatu
target. Setelah gelombang menyentuh permukaan target, maka target akan memantulkan kembali gelombang
tersebut. Gelombang pantulan dari target akan ditangkap oleh sensor, kemudian sensor menghitung selisih
antara waktu pengiriman gelombang dan waktu gelombang pantul diterima.
Rangkaian Sensor Ultrasonic pada arduino
13
Source Code
//Download dan masukan Library NewPing
#include <NewPing.h>
NewPing cm(triger,echo,batas);
void setup() {
//Menentukan Fungsionalitas dari PIN pada Microcontroller
Serial.begin(115200); //baudrate yang digunakan untuk komunikasi microcontroller dengan komputer
}
void loop() {
//Program yang akan dijalankan berulang-ulang
int bacaJarak=cm.ping_cm();
Chalange
1. Tambahkanlah Buzzer pada project diatas dan buatlah logika jika jarak kurang dari 20 cm maka buzzer
berbunyi lambat, dan selanjutnya ketika semakin dekat dengan object maka bunyi buzzer semakin
cepat
3. RFID
RFID atau bisa disebut juga Radio Frequency Identification adalah
sistem identifikasi berbasis wireless yang memungkinkan
pengambilan data tanpa harus bersentuhan seperti barcode atau
magnetic card. alat ini menggunakan sistem radiasi elektromagnetik
untuk mengirimkan kode. RFID menggunakan sistem identifikasi
dengan gelombang radio, karena itu minimal dibutuhkan dua buah
perangkat agar alat ini dapat berfungsi, adapun perangkat yang dibutuhkan disebut TAG dan READER.
Rangkaian Sensor ultrasonic dan arduino
14
Source Code
//Download dan masukan Library MFRC522
#include <SPI.h>
#include <MFRC522.h>
void setup() {
//Menentukan Fungsionalitas dari PIN pada Microcontroller
Serial.begin(115200); //baudrate yang digunakan untuk komunikasi microcontroller dengan komputer
SPI.begin(); // Initiate SPI bus
mfrc522.PCD_Init(); // Initiate MFRC522
}
void loop() {
//Program yang akan dijalankan berulang-ulang
if ( ! mfrc522.PICC_IsNewCardPresent()) {return;}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {return;}
Chalange
1. Tambahkan Buzzer pada program diatas dan buatlah logika, jika kartu yang digunakan benar maka
bunti buzzer beep 2 x dan jika salah maka bunyi beeb pajang 1 x
2. Tambahkan program untuk 2 kartu berhasil berhasil
15
4. GPS
Global Positioning System (GPS) adalah sistem
navigasi berbasis satelit yang terdiri dari setidaknya 24
satelit. GPS berfungsi dalam segala kondisi cuaca, di
mana pun di dunia, 24 jam sehari, tanpa biaya
berlangganan atau biaya penyiapan. Departemen
Pertahanan AS (USDOD) awalnya menempatkan satelit
ke orbit untuk penggunaan militer, tetapi mereka dibuat
tersedia untuk digunakan sipil pada 1980-an.
Dasar pada sebuah sistem navigasi posisi dan perpindahan pada suatu objek, salah satu sensor yang dapat
digunakan pada sistem navigasi adalah sensor GPS. Sensor GPS dapat menerima sinyal yang dipancarkan
oleh satelit kemudian merubahnya menjadi suatu titik lokasi yang memiliki nilai longitude, latitude dan
altitude
Rangkaian GPS dengan Arduino
16
Source Code
//Download dan masukan Library TinyGPS++
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
void setup() {
//Menentukan Fungsionalitas dari PIN pada Microcontroller
Serial.begin(115200); //baudrate yang digunakan untuk komunikasi microcontroller dengan komputer
serial_gps.begin(9600);
Serial.println("GPS Mulai");
}
void loop() {
//Program yang akan dijalankan berulang-ulang
while(serial_gps.available()) {
gps.encode(serial_gps.read());
}
if(gps.location.isUpdated()) {
latitude = String(gps.location.lat(),6);
longitude = String(gps.location.lng(),6);
String link = "www.google.com/maps/place/" + String(latitude) + "," + String(longitude) ;
Serial.println(link);
// delay(2000);
}
delay(500); //Jeda waktu perulagan seama 500 mili detik
}
17
Menghubungkan ke Akuator dan Display
1.Relay
2.Servo
3.Motor Driver + Motor DC
4.LCD I2C 20x4
1. Relay
Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan
merupakan komponen Electromechanical (Elektromekanikal) yang
terdiri dari 2 bagian utama yakni Elektromagnet (Coil) dan
Mekanikal (seperangkat Kontak Saklar/Switch). Relay
menggunakan Prinsip Elektromagnetik untuk menggerakkan
Kontak Saklar sehingga dengan arus listrik yang kecil (low power)
dapat menghantarkan listrik yang bertegangan lebih tinggi. Sebagai
contoh, dengan Relay yang menggunakan Elektromagnet 5V dan 50
mA mampu menggerakan Armature Relay (yang berfungsi sebagai
saklarnya) untuk menghantarkan listrik 220V 2A.
Rangkaian Relay dan arduino
Source Code
//Inisialisasi pembuatan variable
int relay1=7;
void setup() {
//Menentukan Fungsionalitas dari PIN pada Microcontroller
Serial.begin(115200); //baudrate yang digunakan untuk komunikasi microcontroller dengan komputer
pinMode(relay1,OUTPUT);
}
void loop() {
//Program yang akan dijalankan berulang-ulang
digitalWrite (relay1,HIGH);
delay(500); //Jeda waktu perulagan seama 500 mili detik
digitalWrite (relay1,LOW);
delay(500); //Jeda waktu perulagan seama 500 mili detik
}
18
2. Servo
Motor Servo merupakan motor listrik dengan menggunakan sistem closed
loop. Sistem tersebut digunakan untuk mengendalikan akselerasi dan
kecepatan pada sebuah motor listrik dengan keakuratan yang tinggi,
Selain itu, motor servo biasa digunakan untuk mengubah energi listrik
menjadi mekanik melalui interaksi dari kedua medan magnet permanent.
Pada umumnya, motor servo terdiri dari tiga komponen utama yaitu
(Motor, Sistem kontrol, Potensiometer atau encoder). Motor berfungsi
sebagai penggerak roda gigi agar dapat memutar potensiometer dan poros
output-nya secara bersamaan. Potensiometer atau encoder berfungsi
sebagai sensor yang akan memberikan sinyal umpan balik ke sistem
kontrol untuk menentukan posisi targetnya.
Rangkaian Servo dengan arduino
Source code
//Download dan masukan Library
#include <Servo.h
void setup() {
//Menentukan Fungsionalitas dari PIN pada Microcontroller
Serial.begin(115200); //baudrate yang digunakan untuk komunikasi microcontroller dengan komputer
myservo.attach(outServo);
}
void loop() {
//Program yang akan dijalankan berulang-ulang
myservo.write(0); //0-180
delay(1000); //Jeda waktu perulagan seama 500 mili detik
myservo.write(180); //0-180
delay(1000); //Jeda waktu perulagan seama 500 mili detik
}
19
3. Motor Driver + Motor DC
Module Driver motor merupakan rangkaian yang terdiri dari IC Driver salah
satunya dengan IC (HG7881 ) Motor yang berbentuk module yang sudah
siap digunakan untuk mengontrol motor DC.
Rangkaian Driver motor arduino
Source Code
//Inisialisasi pembuatan variable
#define A1 5 // Motor A pins
#define A2 6
#define B1 10 // Motor B pins
#define B2 11
void setup() {
//Menentukan Fungsionalitas dari PIN pada Microcontroller
Serial.begin(115200); //baudrate yang digunakan untuk komunikasi microcontroller dengan komputer
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(B1, OUTPUT);
pinMode(B2, OUTPUT);
digitalWrite(A1, LOW);
digitalWrite(A2, LOW);
digitalWrite(B1, LOW);
digitalWrite(B2, LOW);
switch (input) {
case 1: // if input=1 ....... motors turn forward
forward();
break;
case 2: // if input=2 ....... motors turn backward
backward();
break;
case 3: // if input=1 ....... motors turn stop
Stop();
break;
}
delay(200);
input=0;
}
}
21
4. LCD I2C 16 x 2 atau 20x4
LCD adalah media tampilan yang paling mudah untuk
diamati karena menghasilkan tampilan karakter yang baik
dan cukup banyak. Pada LCD 20×4 dapat ditampilkan 80
karakter, masing-masing baris memiliki 20 karakter. LCD
20x4 pada umumnya menggunakan 16 pin sebagai
kontrolnya, tentunya akan sangat boros apabila
menggunakan 16 pin tersebut. Karena itu, digunakan
driver khusus sehingga LCD dapat dikontrol dengan jalur
I2C. melalui I2C maka LCD dapat dikontrol dengan
menggunakan 2 pin saja yaitu SDA dan SCL.
Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial
dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun
menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA
(Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya.
Piranti yang dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai
Master dan Slave. Master adalah piranti yang memulai transfer data pada I2C Bus
dengan membentuk sinyal Start, mengakhiri transfer data dengan membentuk
sinyal Stop, dan membangkitkan sinyal clock. Slave adalah piranti yang dialamati
master.
Rangkaian LCD 16x2 I2C Aduino
Source Code
//Download Library LiquidCrystal_I2C
#include <LiquidCrystal_I2C.h>
void setup() {
//Menentukan Fungsionalitas dari PIN pada Microcontroller
Serial.begin(115200); //baudrate yang digunakan untuk komunikasi microcontroller dengan komputer
lcd.begin();
}
22
void loop() {
//Program yang akan dijalankan berulang-ulang
lcd.clear(); //Untuk Menghapus karakter pada LCD
lcd.setCursor(0,0); lcd.print(" TUTORIAL BY");
lcd.setCursor(0,1); lcd.print("Interactive Robotics");
delay(1000); //Jeda waktu perulagan seama 1000 mili detik
}
Chalage
Otomatisasi Sensor dan Akuator
23