Modul Workshop Mikon Dasar
Modul Workshop Mikon Dasar
Tujuan :
Alat :
Arduino Uno
Protoboard
1 unit computer
LED dan jumper
1 Potensiometer
1 Push button
Software :
Arduino IDE
Index Modul
Bab I Pendahuluan
WorkshopMikrokontrolerDasar | 2
Bab I Pendahuluan
Arduino juga merupakan platform, hardware terbuka yang ditujukan kepada siapa
saja yang ingin membuat purwarupa peralatan elektronik interaktif berdasarkan hardware
dan software yang fleksibel dan mudah digunakan. Mikrokontroler diprogram
menggunakan bahasa pemrograman arduino yang memiliki kemiripan syntax dengan
bahasa pemrograman C. Karena sifatnya yang terbuka maka siapa saja dapat mengunduh
skema hardware arduino dan membangunnya.
WorkshopMikrokontrolerDasar | 3
1.2 Bagian – bagian pada Arduino
Berfungsi sebagai input atau output, dapat diatur oleh program. Khusus untuk 6
buah pin 3, 5, 6, 9, 10 dan 11, dapat juga berfungsi sebagai pin analog output
dimana tegangan output-nya dapat diatur. Nilai sebuah pin output analog dapat
diprogram antara 0 – 255, dimana mewakili nilai tegangan 0 – 5V.
b. USB
Berfungsi untuk Memuat program dari komputer ke dalam papan , memberi daya
listrik pada papan. dan Komunikasi serial antara papan dan komputer .
c. 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.
WorkshopMikrokontrolerDasar | 4
d. 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).
e. 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.
g. 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.
WorkshopMikrokontrolerDasar | 5
Bahasa pemrograman Arduino mirip bahasa C yang digunakan pada AVR. Akan
tetapi lebih sederhana, dan lebih mudah untuk dipelajari. Bahasa pemrograman Arduino
sering disebut juga dengan bahasa processing.
a. Struktur Pemrograman
void setup() {
void loop() {
//semua kode yang ada disini akan dibaca berulang kali (terus menerus) oleh
Arduino
• Setup()
Semua kode program yang ada dalam void setup akan dibaca sekali oleh Arduino.
Biasanya isinya berupa kode perintah untuk menentukan fungsi pada sebuah pin
dan digunakan untuk menginisialisasi variabel-variabel yang akan digunakan.
• Loop()
Sedangkan void loop digunakan untuk menjalankan suatu siklus program, yang
WorkshopMikrokontrolerDasar | 6
LOW); // matikan ‘pin’ 13 delay(1000);
/// pause selama 1 detik
}
• Function
type functionName(parameters)
{ // Statement;
• { } Curly Braces
Curly brace mendefinisikan awal dan akhir dari sebuah blok fungsi. Apabila ketika
memprogram dan programer lupa memberi curly brace tutup maka ketika di
compile akan terdapat laporan error.
• ; Semicolon
Semicolon harus di berikan pada setiap statement program yang kita buat ini
merupakan pembatas setiap statement program yang di buat.
• // Line Comment
Sama halnya dengan block comments, line comments pun sama hanya saja yang di
jadikan komen adalah perbaris.
WorkshopMikrokontrolerDasar | 7
b. Variable
Sama halnya dengan block comments, line coments pun sama hanya saja yang di
jadikan komen adalah perbaris.
Type variableName = 0;
Contoh :
Variable Scope
Sebuah variable dapat dideklarasikan pada awal program sebelum void setup(),
secara local di dalam sebuah function, dan terkadang di dalam sebuah block
statement pengulangan. Sebuah variable global hanya satu dan dapat digunakan
pada semua block function dan statement di dalam program. Variable global
dideklarasikan pada awal program sebelum function setup(). Sebuah variable local
dideklarasikan di setiap block function atau di setiap block statement pengulangan
dan hanya dapat digunakan pada block yang bersangkutan saja.
int value; // ‘value’ adalah variable global dan dapat di gunakan pada semua
block funtion void setup()
// no setup needed
void loop()
{ for (int i=0; i<20;) // 'i' hanya dapat di gunakan dalam pengulangan saja
i++;
WorkshopMikrokontrolerDasar | 8
}
c. Tipe Data
• Byte
Type byte dapat menyimpan 8-bit nilai angka bilangan asli tanpa koma. Byte
memiliki range 0 – 255.
Integer
Integer adalah tipe data yang utama untuk menyimpan nilai bilangan bulat tanpa
koma. Penyimpanan integer sebesar 16-bit dengan range 32.767 sampai -32.768.
Long
Perluasan ukuran untuk long integer, penyimpanan long integer sebesar 32bit
dengan range 2.147.483.647 sampai -2.147.483.648
Float
Float adalah tipe data yang dapat menampung nilai decimal, float merupakan
penyimpan yang lebih besar dari integer dan dapat menyimpan sebesar 32-bit
dengan range 3.4028235E+38 sampai -3.4028235E+38
Array
Array adalah kumpulan nilai yang dapat diakses dengan index number, nilai yang
terdapat dalam array dapat di panggil dengan cara menuliskan nama array dan
index number. Array dengan index 0 merupakan nilai pertama dari array. Array
perlu dideklarasikan dan kalau perlu diberi nilai sebelum digunakan.
d. Operator Aritmatik
Aritmatik
WorkshopMikrokontrolerDasar | 9
Dalam menggunakan operan aritmatik harus hati-hati dalam menentukan tipe data
yang digunakan jangan sampai terjadi overflow range data.
Compound Assignments
x += y; // sama seperti x = x + y
x -= y; // sama seperti x = x – y
x *= y; // sama seperti x = x * y
x /= y; // sama seperti x = x / y
Comparison
Statement ini membadingkan dua variable dan apabila terpenuhi akan bernilai 1
atau true. Statement ini banyak digunakan dalam operator bersyarat.
x == y; // x sama dengan y
x != y; // x tidak sama dengan y
x < y; // x lebih kecil dari y
x > y; // x lebih besar dari y
x <= y; // x lebih kecil dari sama dengan y
x >= y; // x lebih besar dari sama dengan y
Logic Operator
Operator logical digunakan untuk membandingkan 2 ekspresi dan
mengembalikan nilai balik benar atau salah tergantung dari opertaror yang
digunakan. Terdapat 3 operator logical AND,OR, dan NOT, yang biasanya
digunakan pada if statement.
Contoh penggunaan :
WorkshopMikrokontrolerDasar | 10
Logical AND
If ( x > 0 && x < 5) // bernilai benar apabila kedua operator pembanding
terpenuhi
Logical OR
If ( x > 0 || y > 0) // bernilai benar apabila salah satu dari operator
pembanding terpenuhi
Logical NOT
If ( !x > 0 ) // benilai benar apabila ekspresi operator salah
e. Konstanta
Arduino mempunyai beberapa variable yang sudah dikenal yang kita sebut
konstanta. Ini membuat memprogram lebih mudah untuk dibaca. Konstanta
diklasifikasi berdasarkan group.
True/False
If ( b == TRUE );
//doSomething
High/Low
Konstanta ini mendefinisikan aktifitas pin HIGH atau LOW dan digunakan ketika
membaca dan menulis ke digital pin. HIGH didefinisikan sebagai 1 sedangkan
LOW sebagai 0.
WorkshopMikrokontrolerDasar | 11
Input/Output
Konstanta ini digunakan dengan fungsi pinMode() untuk mendefinisikan mode pin
digital, sebagai input atau output.
f. Flow Control
If...else
Operator if…else memeriksa sebuah kondisi apabila tidak sesuai dengan kondisi
yang pertama maka akan mengeksekusi baris program yang ada di else.
if (kondisi A)
{
Kode Perintah A
}
else if (kondisi B)
{
Kode Perintah B
}
else
{
Kode Perintah C
}
• For
WorkshopMikrokontrolerDasar | 12
• While
Operator while akan terus mengulang baris perintah yang ada dalam bracket
sampai ekspresi sebagai kondisi pengulangan benilai salah.
while(test kondisi)
pernyataan / program ;
• Do...while
Sama halnya dengan while() hanya saja pada operator Do…while tidak melakukan
pengecekan pada awal tapi di akhir, sehingga otomatis akan melakukan satu kali
baris perintah walaupun pada awalnya sudah terpenuhi.
do {
//pernyataan utama;
}
while(test kondisi)
g. Digital I/O
Input / Output Digital pada breadboard arduino ada 14, pengalamatnya 0 - 13, ada
saat tertentu I/O 0 dan 1 tidak bisa digunakan karena dipakai untuk komunikasi
serial, sehingga harus hati-hati dalam pengalokasian I/O.
pinMode(pin, mode)
Digunakan dalam void setup() untuk mengkonfigurasi pin apakah sebagai Input
atau Output. Arduino digital pin secara default dikonfigurasi sebagai input
sehingga untuk merubahnya harus menggunakan operator pinMode(pin,
mode).
WorkshopMikrokontrolerDasar | 13
digitalRead(pin)
Membaca nilai dari pin yang kita kehendaki dengan hasil HIGH atau LOW.
digitalWrite(pin, value)
Digunakan untuk menentukan pin digital yang dipakai. Pin digital arduino
mempunyai 14 ( 0 – 13).
h. Analog I/O
analogRead(pin)
Membaca nilai pin analog yang memiliki resolusi 10-bit. Fungsi ini hanya dapat
bekerja pada analog pin (0-5). Hasil dari pembacaan berupa nilai integer dengan
range 0 sampai 1023.
analogWrite(pin,value)
Fungsi analogWrite() adalah fungsi yang digunakan untuk menuliskan suatu nilai
berupa angka pada sebuah komponen, misalnya motor. Pengguna dapat mengatur
seberapa cepat motor bergerak, tergantung pada nilai yang dituliskan.
analogWrite(3, 255); //untuk memberikan nilai 255 (setara 5V) pada pin 3
analogWrite(3, 0); //untuk memberikan nilai 0 (setara dengan 0V) kepada pin 3
WorkshopMikrokontrolerDasar | 14
i. Time
delay(ms)
Fungsi ini digunakan untuk memberikan jeda antar fungsi. Nilai time adalah waktu
lamanya jeda dalam satuan ms (milisecond), di mana 1 detik setara dengan 1.000
milisecond.
j. Serial
Serial.begin(baudrate)
Serial.print()
Adapun untuk menampilkan nilai pada sebuah sensor di Serial Monitor, yaitu
menggunakan :
Dan untuk membuka Serial Monitor sendiri pada Arduino, bisa dengan memilih
menu Tools kemudian pilih Serial Monitor. Atau dengan menekan kombinasi
CTRL+SHIFT+M di keyboard. Dan bisa juga dengan meng-klik ikon Kaca
Pembesar di Arduino, seperti gambar di bawah ini :
WorkshopMikrokontrolerDasar | 15
Gambar. Ikon Serial Monitor
Percobaan 1 :
WorkshopMikrokontrolerDasar | 16
Buka Arduino IDE dan masukkan program di bawah ini :
void setup()
{
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
delay(100);
Output Program :
WorkshopMikrokontrolerDasar | 17
Percobaan 2 :
Persiapan : 1 LED 5mm super bright, 1 resistor 220 ohm, 1 protoboard, jumper
wire.
void setup(){}
void loop() {
WorkshopMikrokontrolerDasar | 18
analogWrite(pinLed, nilai);
delay(30);
analogWrite(pinLed, nilai);
delay(30);
Output Program :
WorkshopMikrokontrolerDasar | 19
Percobaan 3 :
Persiapan : 1 LED 5mm super bright, 2 resistor 220 ohm, 1 protoboard, jumper
wire, 1 Push button.
int nilaiButton = 0;
void setup() {
pinMode(pinButton, INPUT);
pinMode(pinLed, OUTPUT);
WorkshopMikrokontrolerDasar | 20
void loop() {
nilaiButton = digitalRead(pinButton);
if (nilaiButton == HIGH) {
digitalWrite(pinLed, HIGH);
delay(100);
digitalWrite(pinLed, LOW);
delay(100);
// matikan LED
digitalWrite(pinLed, LOW);
Output Program :
WorkshopMikrokontrolerDasar | 21
Percobaan 4 :
Persiapan : 1 LED 5mm super bright, 2 resistor 220 ohm, 1 protoboard, jumper
wire, 1 Potensiometer.
void setup() {
// inisialisasi komunikasi serial pada 9600 bps:
Serial.begin(9600);
}
WorkshopMikrokontrolerDasar | 22
void loop() {
// membaca nilai analog in:
sensorValue = analogRead(analogInPin);
// memetakan kedalam kisaran output analog:
outputValue = map(sensorValue, 0, 1023, 0, 255);
// merubah nilai analog output:
analogWrite(analogOutPin, outputValue);
Output Program :
WorkshopMikrokontrolerDasar | 23
Bab II
2.1 A
2.2 B
2.3 c
Daftar Pustaka :
https://www.codepolitan.com/analog-output-arduino-menggunakan-pwm-pulse-
width-modulation
http://dendiatama.blogspot.sg/2011/09/analog-input-dan-output-pada-
arduino.html
https://www.codepolitan.com/digital-input-output-pada-arduino
https://id.wikipedia.org/wiki/Arduino
WorkshopMikrokontrolerDasar | 24