Gunakan panduan ini step by step, halaman per halaman, karena sudah
saya susun sebaik mungkin, dan tiap halaman ada keterkaitan.
Saya Ajang Rahmat, dan saya adalah Co-founder dari Kelas Robot,
perusahaan Edukasi Robotika yang saya dan kang Ade Rahayu
kembangkan di Sumedang…
Kelas Robot
@kelasrobot Kami selalu yakin bahwa belajar Robotika
bisa dilakukan dengan Mudah dan
https://kelasrobot.com Menyenangkan!
Kelas Robot
Dan juga karena rangkaian Board Arduino bersifat Open Source, kita bisa
membuat Board Arduino versi kita sendiri.
Dan dibawah ini adalah bentuk dari rangkaian Sistem Minimum, agar
Microcontroller ATMega328 bisa berfungsi.
Ada juga jenis Board Microcontroller yang di desain dari Source Arduino,
tapi tidak menggunakan merek Arduino, biasanya disebut Compatible
With Arduino, contoh: Board DFRobot, Board RobotDyn, dan
sebagainya.
Memiliki 14 Pin Digital INPUT / OUTPUT dari pin 0-13, termasuk pin
Serial (RX0, TX0) pada pin 0 dan 1. Diantaranya juga termasuk kedalam
pin PWM (3,5,6,9,10,11).
Memiliki 6 Pin ANALOG INPUT dari pin A0-A5, dimana bisa digunakan
juga sebagai Pin Digital INPUT / OUTPUT.
Memiliki Pin Power 5V, 3.3V, GND, AREF, dan juga VIN.
Untuk upload program menggunakan USB Tipe B, atau USB yang biasa
digunakan untuk printer.
USB Tipe B
ATMega328
Untuk MQTT sangat lancar dan cepat ketika Publish dan ada delay
ketika Subscribe, menggunakan Library PubSubClient.
Rp, 325.000
https://www.tokopedia.com/
kelasrobot/paket-belajar-mik
rokontroler-untuk-pemula-co
mpatible-arduino-kit
Rp, 180.000
https://www.tokopedia.com/
kelasrobot/paket-belajar-mik
rokontroler-untuk-pemula-v
2-compatible-arduino-kit
Thanks
Sebagai contoh Sumber Power 5V, ingin menyalakan LED 5MM yang
maksimal tegangan-nya 2.4V, maka bisa gunakan resistor agar
tegangan dan arus yang masuk sesuai dengan beban LED nya.
LED memiliki 2 pin atau 2 kaki, umumnya kaki panjang Positif kaki
pendek Negatif. Jika ingin di kendalikan Microcontroller kaki pendek bisa
di pasang ke GND dengan resistor 220 Ohm, kaki panjang ke Pin
Digital.
Positif
IN Negatif
GND
OUT
GND
VCC
GND
VCC
OUT
Karena LDR adalah jenis dari Resistor, untuk itu tidak ada positif dan
negatif, jadi bisa dipasang bulak balik.
OUT
GND
VCC
Yang digunakan adalah USB Tipe B, atau USB yang biasa digunakan
untuk Menghubungkan Komputer ke Printer.
USB Tipe B
Hubungkan
ke Laptop /
PC
Arduino IDE adalah software resmi yang dibuat dan dikembangkan oleh
Arduino.
Serial Monitor
Untuk Verify dan
Upload Koding
Untuk memilih Board silakan ke Menu Tools klik Board, kemudian pilih
Board yang sedang digunakan.
INFO: di Arduino IDE memang sudah tersedia banyak koding contoh yang
bisa kita gunakan, yang ada di menu File, Examples.
void setup(){
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);
}
void loop(){
Penjelasan program:
void setup() {
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);
delay(2000);
digitalWrite(2, LOW);
}
void loop() {
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
Didalam Arduino ada 2 fungsi utama, yaitu void setup dan juga void
loop. Dan ini fungsi wajib yang harus ada di koding arduino.
void setup() {
//program akan dijalankan sekali disini
}
void loop() {
//program akan dijalankan berulang kali disini
}
Jika kita menyimpan koding didalam void setup akan dijalankan sekali
saja, dan jika disimpan didalam void loop akan dijalankan berulang kali.
void setup(){
pinMode(3, OUTPUT);
analogWrite(3, 255); //nilai PWM 0-255
}
void loop(){
Penjelasan program:
void setup() {
pinMode(3, OUTPUT);
}
void loop() {
analogWrite(3, 0);
delay(1000);
analogWrite(3, 10);
delay(1000);
analogWrite(3, 100);
delay(1000);
analogWrite(3, 200);
delay(1000);
analogWrite(3, 255);
delay(1000);
}
TUGAS: untuk tugas kali ini cukup menjalankan koding yang ada di
examples arduino saja ya.
Kita akan membuat rangkaian dan program push button. Kita harus
siapkan dulu Arduino, Breadboard, push button, resistor 1K ohm, dan
kabel jumper male-male 4pcs.
byte tombol = 2;
byte status_tombol;
void setup() {
Serial.begin(9600);
pinMode(tombol, INPUT);
}
void loop() {
status_tombol = digitalRead(tombol);
Serial.println(status_tombol);
}
Kita akan membuat rangkaian dan program LED dan push button. Kita
harus siapkan dulu Arduino, Breadboard, push button, LED, resistor
220 ohm, resistor 1K ohm, dan kabel jumper male-male 5 pcs.
byte tombol = 2;
byte status_tombol;
byte led = 3;
void setup() {
Serial.begin(9600);
pinMode(tombol, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
status_tombol = digitalRead(tombol);
Serial.println(status_tombol);
digitalWrite(led, status_tombol);
}
Dan untuk menyalakan LED, selain menggunakan HIGH dan LOW, kita juga
bisa menggunakan 1 untuk menyala dan 0 untuk mematikan LED.
Jadi sekali lagi jika yang mau kita buat hanya, “LED menyala ketika tombol
ditekan, dan LED mati ketika tombol dilepas”, maka kita tidak perlu
menggunakan program if.
Tapi jika ingin menggunakan program if, bisa gunakan koding pada halaman
selanjutnya...
void setup() {
Serial.begin(9600);
pinMode(tombol, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
status_tombol = digitalRead(tombol);
Serial.println(status_tombol);
if (status_tombol == 1)
digitalWrite(led, HIGH);
else
digitalWrite(led, LOW);
}
Silakan ketik ulang koding diatas, kemudian Upload. Dan hasilnya akan
sama.
untuk koding if dan else, jika di dalam if dan else nya hanya ada 1 baris
koding, maka tidak perlu ditambahkan {}, tapi jika lebih maka WAJIB
ditambahkan, seperti dibawah ini.
if (status_tombol == 1) {
//LED Menyala
digitalWrite(led, HIGH);
}
else {
//LED Mati
digitalWrite(led, LOW);
}
1. Buatlah koding LED menyala ketika Button dilepas, dan mati ketika
tombol ditekan.
2. Buatlah koding ketika Button ditekan LED nyala selama 3 detik
kemudian mati.
3. Buatlah koding LED berkedip ketika Button ditekan, dan mati ketika
tombol dilepas.
Kita akan membuat rangkaian dan program LED dan push button. Kita
harus siapkan dulu Arduino, Breadboard, Potensiometer dan kabel
jumper male-male 5 pcs.
Moncong atau
Kemudian silakan rangkai seperti gambar dibawah ini: Puteran Potensio
mengarah keatas.
void setup() {
Serial.begin(9600);
}
void loop() {
nilai_pot = analogRead(potensio);
Serial.println(nilai_pot);
}
Jika sudah Done Uploading, untuk melihat berapa nilai nilai_pot, silakan
buka Serial Monitor, dengan cara klik menu Tools pilih Serial Monitor
atau bisa juga dengan tekan CTRL + SHIFT + M.
Pada pembacaan nilai analog tidak dibutuhkan pinMode ya. Dan dengan
format koding yang sama kita bisa gunakan koding tersebut untuk
membaca sensor Analog lain.
Kita akan membuat rangkaian dan program LED dan potensiometer. Kita
harus siapkan dulu Arduino, Breadboard, Potensiometer, LED, resistor
220 ohm, dan kabel jumper male-male 6 pcs.
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop() {
nilai_pot = analogRead(potensio);
nilai_pwm = map(nilai_pot, 0, 1023, 0, 255);
Serial.println(String() + nilai_pot + " " + nilai_pwm);
analogWrite(led, nilai_pwm);
}
Koding map() pada proyek ini digunakan untuk mengubah 8 bit nilai
analog yaitu dari 0-1023 menjadi nilai pwm dari 0-255.
Kita akan membuat rangkaian dan program LDR. Kita harus siapkan dulu
Arduino, Breadboard, LDR, Resistor 10K ohm, dan kabel jumper
male-male 4 pcs.
void setup() {
Serial.begin(9600);
}
void loop() {
nilai_ldr = analogRead(ldr);
Serial.println(nilai_ldr);
}
Jika sudah Done Uploading, untuk melihat berapa nilai nilai_ldr, silakan
buka Serial Monitor, dengan cara klik menu Tools pilih Serial Monitor
atau bisa juga dengan tekan CTRL + SHIFT + M.
1. byte ldr = A0; membuat variabel dengan nama ldr, dengan tipe data
byte dimana di isi dengan nilai A0 (A0 ya bukan AO), yang mana
merupakan Pin ldr yang terhubung ke pin A0 Arduino.
2. int nilai_ldr; membuat variabel dengan nama nilai_ldr, dengan tipe data
int dimana awal nilai dikosongkan. Variabel ini digunakan untuk
menyimpan nilai ldr.
3. Serial.begin(9600); komunikasi Serial antara Arduino dengan Komputer
melalui USB, dimana baud rate / kecepatan kirim dan terima data di set
ke 9600.
4. nilai_ldr = analogRead(ldr); membaca nilai dari ldr, dan hasil
pembacaan-nya disimpan di variabel nilai_ldr.
5. Serial.println(nilai_ldr); menampilkan data dari variabel nilai_ldr, yang
menyimpan data ldr.
Kita akan membuat rangkaian dan program LED dan LDR. Kita harus
siapkan dulu Arduino, Breadboard, LED, LDR, Resistor 220 ohm,
Resistor 10K ohm, dan kabel jumper male-male 5 pcs.
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop() {
nilai_ldr = analogRead(ldr);
Serial.println(nilai_ldr);
if (nilai_ldr < 600) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
}
1. if (nilai_ldr < 600) jika nilai_ldr kurang dari 600 maka akan membuat LED
menyala. Dan untuk nilai 600 silakan sesuaikan dengan hasil pengujian
sendiri ya, saya gunakan angka 600 karena nilai normal-nya ditempat saya
sekitar 680. Jadi sesuaikan saja, dan silakan set mau sensitif apa.
2. digitalWrite(led, HIGH); koding untuk menyalakan LED ini disimpan di dalam
if, dan akan dijalankan jika if memenuhi kondisinya yatu lebih kecil dari 600.
3. else jika kondisi logika pada if tidak terpenuhi, yang berarti tidak lebih kecil
dari 600, maka koding didalam else yang akan di jalankan.
4. digitalWrite(led, LOW); koding untuk mematikan LED ini disimpan di dalam
else, dan akan dijalnkan jika kondisi if tidak terpenuhi, yang berarti sama
dengan atau lebih besar dari 600.
Pada Bab 5 ini setiap program tidak akan ada penjelasan ya. Jadi Bab
ini lebih menantang kamu untuk lebih luas lagi mendalami rangkaian dan
program arduino.
Jadi jika belum sepenuhnya memahami logika dasar, silakan balik lagi
ke pembahasan proyek sederhana ya.
Semangat…!!!
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
delay(1000);
}
void setup() {
for (int i = 0; i <= jumlah_led; i++) {
pinMode(led[i], OUTPUT);
}
}
void loop() {
int nilai_pot = analogRead(A0);
byte no_led = map(nilai_pot, 0, 1023, 0, jumlah_led);
for (int i = 0; i <= jumlah_led; i++) {
if (i < no_led)
digitalWrite(led[i], HIGH);
else
digitalWrite(led[i], LOW);
}
}
Hehehe… Sabar, sebenarnya bisa tanpa array dan for, akan tetapi
kodingnya akan sangat panjang, jadi array dan for sebagai jalan
pintas untuk menghemat baris koding.
Dan untuk menjelaskan array dan for pada koding tersebut butuh
banyak halaman, jadi untuk penjelasan program silakan buka
youtube.com/kelasrobot
Di BAB terakhir panduan ini tidak akan ada pembahasan ataupun tugas
ya hehe ;D
Terimakasih sebelumnya.
Siapa tau ada yang penasaran dengan Wajah 2 Co-founder Kelas Robot.
Silakan ditebak sendiri yang mana saya, yang mana kang Ade Rahayu :D
Udah promo Board Uno WiFi, kemudian Promo Starter KIT, masih aja
mau promo Produk dan Jasa wkwkwkkwk
Baik ini adalah halaman terakhir, dan jika kamu ingin berkerja sama
ataupun ada kebutuhan bisnis dengan kami, silakan hubungi di kontak
berikut ya…
WhatsApp:
0812-8793-1296 (Ajang)
0811-1810-095 (Ade)
Email:
kelasrobot@gmail.com
Terimakasih…
See ya di Panduang berikutnya….