0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan24 halaman

Modul Workshop Mikon Dasar

Dokumen ini adalah modul workshop mengenai mikrokontroler dasar dengan fokus pada penggunaan Arduino. Tujuan dari workshop ini adalah untuk memahami fungsi, pemrograman dasar, dan pin-pin pada Arduino, serta mencakup alat dan software yang diperlukan. Modul ini juga menjelaskan struktur pemrograman, tipe data, dan kontrol alur dalam pemrograman Arduino.

Diunggah oleh

veendygundar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan24 halaman

Modul Workshop Mikon Dasar

Dokumen ini adalah modul workshop mengenai mikrokontroler dasar dengan fokus pada penggunaan Arduino. Tujuan dari workshop ini adalah untuk memahami fungsi, pemrograman dasar, dan pin-pin pada Arduino, serta mencakup alat dan software yang diperlukan. Modul ini juga menjelaskan struktur pemrograman, tipe data, dan kontrol alur dalam pemrograman Arduino.

Diunggah oleh

veendygundar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 24

WorkshopMikrokontrolerDasar | 1

Modul Workshop Mikrokontroller Dasar

Tujuan :

 Mengetahui fungsi dan penggunaan Arduino


 Memahami pemrograman dasar Arduino
 Memahami pin-pin yang ada pada Arduino

Alat :

 Arduino Uno
 Protoboard
 1 unit computer
 LED dan jumper
 1 Potensiometer
 1 Push button

Software :

 Arduino IDE

Index Modul

Bab I Pendahuluan

1.1 Pengenalan Arduino


1.2 Bagian – bagian pada Arduino
1.3 Pengenalan Program Dasar Arduino

Bab II Input dan Output

2.1 Pembacaan pin analog dan digital


2.2 Input
2.3 Output

WorkshopMikrokontrolerDasar | 2
Bab I Pendahuluan

1.1 Pengenalan Arduino

Arduino merupakan pengendali mikro single-board yang bersifat open-source[1],


diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik
dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya
memiliki bahasa pemrograman sendiri.

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.

Gambar. Board Arduino

Arduino menggunakan keluarga mikrokontroler ATMega yang dirilis oleh Atmel


sebagai basis, namun ada individu/perusahaan yang membuat clone arduino dengan
menggunakan mikrokontroler lain dan tetap kompatibel dengan arduino pada level
hardware. Untuk fleksibilitas, program dimasukkan melalui bootloader meskipun ada
opsi untuk membypass bootloader dan menggunakan downloader untuk memprogram
mikrokontroler secara langsung melalui port ISP.

WorkshopMikrokontrolerDasar | 3
1.2 Bagian – bagian pada Arduino

Gambar. Board Arduino tipe USB

a. 14 pin input/output digital (0-13)

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.

f. 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.

g. IC 1 – Microcontroller Atmega

Komponen utama dari papan Arduino, di dalamnya terdapat CPU, ROM dan
RAM.

h. X1 – sumber daya eksternal

Jika hendak disuplai dengan sumber daya eksternal, papan Arduino dapat
diberikan tegangan DC antara 9-12V.

i. 6 pin input analog (0-5)

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.

1.3 Pengenalan Program Dasar Arduino

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() {

// semua kode yang disini akan dibaca sekali oleh Arduino

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.

void setup() { pinMode(13,OUTPUT); // mengset ‘pin’


13 sebagai output
}

• Loop()

Sedangkan void loop digunakan untuk menjalankan suatu siklus program, yang

akan dilakukan terus-menerus hingga Arduino mati/reset.

void loop() { digitalWrite(13, HIGH); //


nyalakan ‘pin’ 13 delay(1000); //
pause selama 1 detik digitalWrite(13,

WorkshopMikrokontrolerDasar | 6
LOW); // matikan ‘pin’ 13 delay(1000);
/// pause selama 1 detik
}

• Function

Function (fungsi) adalah blok pemrograman yang mempunyai nama dan


mempunyai statement yang akan di eksekusi ketika function di panggil. Fungsi
void setup() dan void loop() telah di bahas di atas dan pembuatan fungsi yang lain
akan di bahas selanjutnya. Cara pendeklarasian 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.

• /*....*/ blok comment


Semua statement yang di tulis dalam block comments tidak akan di eksekusi dan
tidak akan di compile sehingga tidak mempengaruhi besar program yang di buat
untuk di masukan dalam board arduino.

• // 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 :

int inputVariable = 0; // mendefinisikan sebuah variable bernama


inputVariable dengan nilai awal 0
inputVariable = analogRead(2); // menyimpan nilai yang ada di analog pin 2
ke inputVariable

 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
}

float f; // 'f' sebagai variable local

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

Operator aritmatik terdiri dari penjumlahan, pengurangan, pengkalian, dan


pembagian.

y=y+3 , x=x-8 , i=i*5;r

WorkshopMikrokontrolerDasar | 9
Dalam menggunakan operan aritmatik harus hati-hati dalam menentukan tipe data
yang digunakan jangan sampai terjadi overflow range data.

 Compound Assignments

Compound assignments merupakan kombinasi dari aritmatic dengan sebuah


variable. Ini biasanya dipakai pada pengulangan.

x ++; // sama seperti x = x + 1 atau menaikan nilai x sebesar 1

x --; // sama seperti x = x - 1 atau mengurangi nilai x sebesar 1

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

Merupakan konstanta Boolean yang mendefinisikan logic level. False


mendefinisikan 0 dan True mendefinisikan 1.

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.

digitalWrite( 13, HIGH );

WorkshopMikrokontrolerDasar | 11
 Input/Output

Konstanta ini digunakan dengan fungsi pinMode() untuk mendefinisikan mode pin
digital, sebagai input atau output.

pinMode( 13, 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

Operator for digunakan dalam blok pengulangan tertutup.

for (inisiasi; test kondisi; proses inkremental/dekremental)

pernyataan yang akan diulang;

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).

pinMode(13,OUTPUT); // Menentukan pin digital 13 pada Arduino sebagai output

WorkshopMikrokontrolerDasar | 13
 digitalRead(pin)

Membaca nilai dari pin yang kita kehendaki dengan hasil HIGH atau LOW.

Value = digitalRead(pin); // mengset ‘value’ sama dengan pin

 digitalWrite(pin, value)

Digunakan untuk menentukan pin digital yang dipakai. Pin digital arduino
mempunyai 14 ( 0 – 13).

digitalWrite(13, HIGH); //untuk memberikan 5V (nyala) kepada pin 13.


digitalWrite(13, LOW); //untuk memberikan 0V (mati) kepada pin 13.

h. Analog I/O

Input / Ouput analog pada breadboard arduino ada 6 pengalamatnya 0 - 5

 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.

analogRead(A0); //untuk membaca nilai input dari pin A0

 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.

Delay(1000); // menunggu selama satu detik

j. Serial

 Serial.begin(baudrate)

Adapun untuk komunikasi antara Arduino dengan komputer, menggunakan :

Serial.begin(9600); // untuk komunikasi Arduino dengan komputer

 Serial.print()

Adapun untuk menampilkan nilai pada sebuah sensor di Serial Monitor, yaitu
menggunakan :

Serial.print(namasensor); //menampilkan nilai sensor yang disimpan di variabel


nama sensor

Untuk menampilkan teks, menggunakan :

Serial.print("Selamat Datang"); //menampilkan teks Selamat Datang pada Serial


Monitor

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 :

Persiapan : 1 LED 5mm super bright, 1 resistor 220 ohm, 1 protoboard,


jumper wire.

Rangkai seperti gambar di bawah ini :

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.

Rangkai seperti gambar di bawah ini :

Buka Arduino IDE dan masukkan program di bawah ini:

int pinLed = 10; // LED terhubung dengan pin 3

void setup(){}

void loop() {

// buat iterasi dari 0 sampai 255 dengan kelipatan 5

for (int nilai = 0; nilai <= 255; nilai += 5) {

// set nilai analog menggunakan iterasi di atas

WorkshopMikrokontrolerDasar | 18
analogWrite(pinLed, nilai);

// beri jeda waktu 3 milidetik biar ga terlalu cepat

delay(30);

// buat iterasi mundur dari 255 ke 0 dengan kelipatan 5

for (int nilai = 255; nilai >= 0; nilai -= 5) {

// set nilai analog menggunakan iterasi di atas

analogWrite(pinLed, nilai);

// beri jeda waktu 3 milidetik

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.

Rangkai seperti gambar di bawah ini :

Buka Arduino IDE dan masukkan program di bawah ini :

const int pinButton = 2;

const int pinLed = 3;

// variabel untuk menyimpan nilai input pin button

int nilaiButton = 0;

void setup() {

// set mode input pada pin untuk button, ga wajib

pinMode(pinButton, INPUT);

// set pin untuk LED ke mode output

pinMode(pinLed, OUTPUT);

WorkshopMikrokontrolerDasar | 20
void loop() {

// baca nilai pin untuk button

nilaiButton = digitalRead(pinButton);

// cek apakah button ditekan

if (nilaiButton == HIGH) {

// buat LED berkedip

digitalWrite(pinLed, HIGH);

delay(100);

digitalWrite(pinLed, LOW);

delay(100);

} else { // kalo nilai pin LOW

// 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.

Rangkain seperti gambar di bawah ini :

Buka Arduino IDE dan masukkan program di bawah ini:


const int analogInPin = 0; // analog input pada pin analog 0
const int analogOutPin = 9; // analog output pada pin 9/terpasang led

int sensorValue = 0; // variable input analog


int outputValue = 0; // variable output analog

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);

// mencetak pada serial monitor:


Serial.print("sensor = " );
Serial.print(sensorValue);
Serial.print(" output = ");
Serial.println(outputValue);
// tunggu 20 milidetik sebelum lanjut ke pembacaan berikutnya
delay(20);
}

Output Program :

WorkshopMikrokontrolerDasar | 23
Bab II

Input dan Output

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

Anda mungkin juga menyukai