Halo agan-agan sekalian, apa tahu yang namanya Self balancing Robot, itu tuh robot mainan yang ada rodanya dua kiri kanan tapi anehnya robot ini bisa berdiri seimbang tanpa harus jatuh. Kenapa bisa seimbahnya dikarenakan pada rangkaian robot tersebut terdapat sensor accelerometer dan gyro yang bisa bikin motor bergerak maju mundur seimbang tanpa terjatuh.
29 Jun 2021
Belajar Dasar Pemograman Pi Pico Menggunakan Pi Pico Starter Shield
Hi agan-agan sekalian, sekarang mari kita cobain produk mikrokontroler pendatang baru ditahun 2021 dari Raspberry Pi berupa mikrokontroler RP2040 yang cukup powerful, chip RP2040 dirancang oleh Raspberry Pi dilengkapi beberapa fitur yaitu menggunakan prosesor Arm Cortex-M0+ dual-core dengan RAM internal 264KB dan dukungan Flash off-chip hingga 16MB. Berbagai pilihan I/O fleksibel termasuk I2C, SPI, Programmable I/O (PIO). Selain chip RP2040 Raspberry Pi mengeluarkan produk yang sudah menjadi sitem minimum mikrokontroler yang dinamai Pi pico Board, cocok untuk agan-agan ingin mulai mencoba atau membuat project mikrokontrolernya menggunakan chip RP2040.
16 Apr 2021
Membuat 110+ Project IoT menggunakan Shield ESP32 IoT Starter Kit
Halo agan agan sekalian, biar diem dirumahnya tidak terlalu membosankan, mari kita buat shield ESP32 plus beberapa komponen sensornya yang bisa bikin agan betah dirumah ngulik project IoT, karena terdapat lebih dari 110+ tutrial yang bisa agan ikutin, mulai dari tahap awal pengenalan hingga membuat project weather station.
1 Apr 2021
Kit Elektronik Latihan Menyolder - Robadge#2 Flip-Flop
Bagi agan-agan yang baru mengenal elektronik dan ingin belajar, terutama latihan menyolder komponen dasar ke papan PCB. Bisa coba Soldering Kit Robadge#2, selain bisa sebagai sarana latihan menyolder, Kit ini juga bentuknya lucu dan berfungsi sebagai rangkaian Flip-Flop (lampu LED kedap-kedip) yang bisa agan-agan pasang jadi bross menyala dibaju.
3 Mar 2021
Membuat Arduino Uno Bluetooth Sendiri Bisa Upload Sketch Lewat Bluetooth | DIY Bluino One
18 Jan 2021
Membuat Robot Mobil RC Kamera Menggunakan ESP32 Cam
31 Des 2020
Membuat Jam Digital Dot Matrix Lengkap dengan Jadwal Waktu Sholat
29 Nov 2020
Cara Membuat Membuat Saklar Otomatis via Wifi Android 4 Channel (Internet of Things) IoT
21 Sep 2020
Kit Elektronik Latihan Menyolder - Robadge#1 Flip-Flop
Bagi agan-agan yang baru mengenal elektronik dan ingin belajar, terutama latihan menyolder komponen dasar ke papan PCB. Bisa coba Soldering Kit Robadge#1, selain bisa sebagai sarana latihan menyolder, Kit ini juga bentuknya lucu dan berfungsi sebagai rangkaian Flip-Flop (lampu LED kedap-kedip) yang bisa agan-agan pasang jadi bross menyala dibaju.
4 Sep 2020
Upload Program Arduino Wireless Bluetooth
15 Okt 2019
Membunyikan Buzzer
Membunyikan Buzzer
Buzzer merupakan komponen elektronik yang dapat menghasilkan bunyi, terdapat dua jenis buzzer yaitu buzzer aktif dan buzzer pasif. Buzzer jenis actif dapat memproduksi suara/getaran sendiri, kita cukup menghubungkannya dengan tegangan 5V dan buzzer tersebut mengeluarkan suara. Sedangkan buzzer pasif tidak dapat menghasilkan suara sendiri, kita harus memberikannya tegangan berbentuk gelombang dan mempunyai frekuensi maka buzzer pasif akan mengeluarkan suara. Speaker adalah salah satu contoh dari jenis buzzer aktif.Pada latihan sekarng menggunakan buzzer jenis pasif untuk memainkan nada-nada sederhana.
Kebutuhan Komponen:
— 1 x Arduino UNO— 1 x Buzzer
Komponen yang digunakan pada Shield:
1 x Buzzer yang dihubungkan ke pin A3.Rangkaian:
Upload sketch:
Buka software Arduino IDE apabila menggunakan PC/Laptop. Jika menggunakan Android dapat membuka aplikasi Bluino Loader yang sudah diinstal dari Google Playstore. Buka sketch Latihan 08 yang sudah diunduh dan disimpan pada folder Examples sebelumnya.Untuk membuka sketch temukan file di: BluinoLoader > examples > Belajar_Arduino_Dasar > Latihan_08
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) dibawah.
/* Bluino Starter Shield
Latihan 08 Membunyikan Buzzer
This sketch uses the buzzer to play songs.
The Arduino's tone() command will play notes of a given frequency.
Version 1.0 9/2017 MK
*/
const int buzzerPin = A3; // connect the buzzer to pin A3
const int songLength = 18; // sets the number of notes of the song
// Notes is an array of text characters corresponding to the notes
// in your song. A space represents a rest (no tone)
char notes[songLength] = {
'c', 'd', 'f', 'd', 'a', ' ', 'a', 'g', ' ', 'c', 'd', 'f', 'd', 'g', ' ', 'g', 'f', ' '};
// beats[] is an array of values for each note. A "1" represents a quarter-note,
// "2" a half-note, and "4" a quarter-note.
// Don't forget that the rests (spaces) need a length as well.
int beats[songLength] = {
1, 1, 1, 1, 1, 1, 4, 4, 2, 1, 1, 1, 1, 1, 1, 4, 4, 2};
int tempo = 113; // The tempo is how fast to play the song (beats per second).
void setup() {
pinMode(buzzerPin, OUTPUT); // sets the buzzer pin as an OUTPUT
}
void loop() {
int i, duration; //
for (i = 0; i < songLength; i++) { // for loop is used to index through the arrays
duration = beats[i] * tempo; // length of note/rest in ms
if (notes[i] == ' ') // is this a rest?
delay(duration); // then pause for a moment
else { // otherwise, play the note
tone(buzzerPin, frequency(notes[i]), duration);
delay(duration); // wait for tone to finish
}
delay(tempo/10); // brief pause between notes
}
}
int frequency(char note) {
int i;
const int numNotes = 8; // number of notes we're storing
char names[numNotes] = {
'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
int frequencies[numNotes] = {
262, 294, 330, 349, 392, 440, 494, 523 };
// Now we'll search through the letters in the array, and if
// we find it, we'll return the frequency for that note.
for (i = 0; i < numNotes; i++) { // Step through the notes
if (names[i] == note) { // Is this the one?
return(frequencies[i]); // Yes! Return the frequency and exit function.
}
}
return(0); // We looked through everything and didn't find it,
// but we still need to return a value, so return 0.
}
Catatan kode:
char notes[] = "cdfda ag cdfdg gf ";
char names[] = {'c','d','e','f','g','a','b','C'};
Sampai saat ini kita banyak berlatih dengan data numerik, tapi Arduino juga dapat mengolah data text. Satu huruf dari sebuah text disebut "char" (cahracter). Ketika text atau gabungan dari banyak character dituliskan dalam kode Arduino dapat dituliskan menggunakan tanda kutip dua (juga disebut "string").tone(pin, frequency, duration);
Banyak fungsi-fungsi bawaan bahasa arduino yang sangat berguna salah satunya fungsi untuk mengendalikan buzzer adalah fungsi tone()
. Fungsi ini akan mengelhasilkan frekuensi tertentu pada pin output, memjadikan fungsi ini sangat berguna untuk membunyikan sebuah buzzer atau speaker. Jika kamu memberi nilai untuk durasi (dalm milidetik), maka nada akan berbunyi dan kemudian berhenti. Jika tidak diberikan nilai durasi maka nada akan berbunyi terus menerus, namun kamu masih dapat menghentikannya menggunkan fungsi noTone()
. Apa yang seharusnya kamu lihat:
Kamu akan mendengar musik yang keluar dari buzzer. Jika ini tidak bekerja, periksa apakah lubang suara pada buzzer tertutup dan pastikan sketch sudah masuk kedalam Arduino.Mengendalikan Relay
Mengendalikan Relay
Relay pada dasarnya merupakan sebuah saklar mekanik yang dikontrol secara listrik. Didalam relay terdapat lilitan dengan inti besi yang akan berubah menjadi magnet ketika dialiri arus listrik dan menarik tuas saklar sehingga menyebabkan saklar menjadi kontak. Pada latihan ini akan belajar bagaimana cara menontrol relay menggunakan Arduino.Kebutuhan Komponen:
— 1 x Arduino UNO— 1 x Relay 5V (SPDT)
— 2 x LED
— 1 x Transistor NPN
— 1 x Dioda 1N4148
— 2 x Resistor 330Ω
— 1 x Resistor 10kΩ
— 1 x Breadboard mini
Komponen yang digunakan pada Shield:
1 x Relay yang terhubung ke D12.Rangkaian:
Upload sketch:
Buka software Arduino IDE apabila menggunakan PC/Laptop. Jika menggunakan Android dapat membuka aplikasi Bluino Loader yang sudah diinstal dari Google Playstore. Buka sketch Latihan 10 yang sudah diunduh dan disimpan pada folder Examples sebelumnya.Untuk membuka sketch temukan file di: BluinoLoader > examples > Belajar_Arduino_Dasar > Latihan_10
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) dibawah.
/* Bluino Starter Shield
Latihan 10 Mengendalikan Relay
A relay is a electrically-controlled mechanical switch. It has an
electro-magnetic coil that either opens or closes a switch.
Version 1.0 9/2017 MK
*/
const int relayPin = 12; // This pin drives the transistor (which drives the relay)
const int timeDelay = 1000; // delay in ms for on and off phases
// You can make timeDelay shorter, but note that relays, being
// mechanical devices, will wear out quickly if you try to drive them too fast.
void setup() {
pinMode(relayPin, OUTPUT); // set pin as an output
}
void loop() {
digitalWrite(relayPin, HIGH); // turn the relay on
delay(timeDelay); // wait for one second
digitalWrite(relayPin, LOW); // turn the relay off
delay(timeDelay); // wait for one second
}
Catatan kode:
digitalWrite(relayPin, HIGH);
Ketika transistor sebagai switching aktif, akan mengaktifkan lilitan relay dan kontak pada relay terhubung, ini akan menghubungkan pin relay COM dengan NO (Normally Open). Pada latihian ini menggunakan kedua pin ini sebagai saklar LED tapi kamu bisa menggunakan untuk perangkat elektronik lain bertegagngan tinggi (220AC) seperti lampu pijar, motor dll disesuaikan dengan kemampuan relay tersebut. digitalWrite(relayPin, LOW);
Relay mempunyai pin NC (Normally Close), Pin NC kebalikan dari pin NO yaitu akan terhubung antara pin COM dengan NC ketika kondisi relay mati. Pin-pin kontak pada relay dapat digunakan sesuai dengan kebutuhan apakah dalam keadaan aktif nyala atau mati. Kedua pin NO dan NC juga dapat digunakan untuk dua peralatan yang nyalanya bergantian. Apa yang seharusnya kamu lihat:
Kamu seharusnya dapat mendengarkan suara klik ketika kontak relay aktif, dan melihat kedua LED menyala bergantian dengan interval waktu masing-masing 1 detik. Jika tidak terjadi, pastikan kedua LED terangkai benar dengan pin kontak relay dan pastikan sketch sudah masuk kedalam Arduino.7-Segment
7-Segment
Pada latihan ini akan belajar bagaimana menampilkan data/angka pada 7-segment. Rangkaian dan library yang digunakan pada latihan ini mengacu pada Digit Shield. Untuk bisa menampilkan angka pada 7-segment memerlukan komponen IC 74LS595 (Shift Register) dan IC 74LS247 (BCD to 7-segment).Pada pemogramannya menggunakan beberapa fungsi khusus yang sudah dibuat menjadi library, seperti fungsi
DigitShield.begin()
digunakan pada awal inisialisasi, fungsi DigitShield.setvalue(value)
digunakan untuk menampilkan angka pada 7-segment bisa berupa nilai hasil pembacaan sensor, jam pembacaan dari modul RTC, dll.
Kebutuhan Komponen:
— 1 x Arduino UNO— 1 x 4 7-segment
— 1 x IC 74LS595
— 1 x IC 74LS247
— 8 x Resistor 100Ω
— 4 x Resistor 10kΩ
Komponen yang digunakan pada Shield:
1 x 4x7-segment yang terhubung ke D5, D6, D7 & D8.Rangkaian:
Upload sketch:
Buka software Arduino IDE apabila menggunakan PC/Laptop. Jika menggunakan Android dapat membuka aplikasi Bluino Loader yang sudah diinstal dari Google Playstore. Buka sketch Latihan 11 yang sudah diunduh dan disimpan pada folder Examples sebelumnya.Untuk membuka sketch temukan file di: BluinoLoader > examples > Belajar_Arduino_Dasar > Latihan_11
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) dibawah.
/* Bluino Starter Shield
Latihan 11 7-segment
To display number counter-up 0 - 9999 on sevent segment.
Version 1.0 9/2017 MK
*/
#include <digitshield.h>
int counter = 0;
// Create a Digit Shield connected to Arduino pins 5,6,7,8
// Connected to pins 5,6,7,8 on the shield, respectively.
DigitShieldClass digitShield(5, 6, 7, 8);
void setup() {
DigitShield.begin(); // Initialize the Digit Shield. This is required before use.
}
void loop() {
digitShield.setValue(counter); // Set an integer value to display
counter = counter + 1; // Counter-up added 1
delay(300); // Delay time when increasing counter
if (counter >= 9999) { // Reset counter to 0 if reach 10000
counter = 0;
}
}
Catatan kode:
#include <digitshield.h>
Kode berikut memberitahu Arduino untuk meyertakan library DigitShield. Tanpa menggunakan library ini, nanti semua fungsi yang berhubungan dengan 7-segment tidak akan dikenali, maka pastikan kamu sudah mendownload library tersebut dan menyimpannya pada subfolder libraries serta pada awal baris kode menyertakannya. digitShield.setValue(counter);
Fungsi ini akan menampilkan angka pada 7-segment, data yang dapat ditampilakan dapat berupa integer atau double (bilangan desimal mempunyai angka dibelakang koma). Apa yang seharusnya kamu lihat:
Kamu akan melihat nilai pada 7-segment mencacah naik dari 0 sampai 9999, dengan jeda waktu 300 ms tiap perbuahan angkanya sesuai dengan delay. Jika tidak tampil, pastikan sketch sudah masuk kedalam Arduino.Mengendalikan Motor Servo
Mengendalikan Motor Servo
Motor servo sangat cocok pengaplikasiannya dalam pembuatan project robotik karena motor servo bisa melakukan yang tidak bisa dilakukan oleh motor biasa yaitu dapat berputar pada posisi yang akurat. Dengan memberikan variasi lebar pulsa dari tegangan output arduino ke servo, sebagai contoh lebar pulsa 1.5ms akan menyebabkan servo bergerak pada posisi 90 derajat. Pada latihan ini kamu akan belajar menggunakan PWM (pulse width modulation) untuk mengontrol dan memutarkan sebuah servo.Kebutuhan Komponen:
— 1 x Arduino UNO— 1 x Servo
Komponen yang digunakan pada Shield:
1 x Servo yang dihubungkan ke pin D3.Rangkaian:
Upload sketch:
Buka software Arduino IDE apabila menggunakan PC/Laptop. Jika menggunakan Android dapat membuka aplikasi Bluino Loader yang sudah diinstal dari Google Playstore. Buka sketch Latihan 09 yang sudah diunduh dan disimpan pada folder Examples sebelumnya.Untuk membuka sketch temukan file di: BluinoLoader > examples > Belajar_Arduino_Dasar > Latihan_09
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) dibawah.
/* Bluino Starter Shield
Latihan 09 Mengendalikan Motor Servo
Sweep a servo back and forth through its full range of motion.
Version 1.0 9/2017 MK
*/
#include <Servo.h> // servo library
Servo servo1; // servo control object
void setup() {
servo1.attach(3); //Connect the servo to pin 3
}
void loop() {
int position;
// Change position at full speed:
servo1.write(90); // Tell servo to go to 90 degrees
delay(1000); // Pause to get it time to move
servo1.write(180); // Tell servo to go to 180 degrees
delay(1000); // Pause to get it time to move
servo1.write(0); // Tell servo to go to 0 degrees
delay(1000); // Pause to get it time to move
// Tell servo to go to 180 degrees, stepping by two degrees each step
for(position = 0; position < 180; position += 2) {
servo1.write(position); // Move to next position
delay(20); // Short pause to allow it to move
}
// Tell servo to go to 0 degrees, stepping by one degree each step
for(position = 180; position >= 0; position -= 1) {
servo1.write(position); // Move to next position
delay(20); // Short pause to allow it to move
}
}
Catatan kode:
#include <Servo.h>
#include
adalah sebuah perintah "preprocessor" spesial untuk menyertakan sebuah library (atau file lain) kedalam sketch. Servo servo1;
servo1.attach(3);
Pada library servo menambahkan beberapa perintah untuk dapat mengontrol sebuah servo. Sebagai persiapan supaya Arduino dapat mengontrol sebuah servo, terlebih dahulu kamu harus membuat "object" servo untuk setiap servo (dalam contoh ini object diberi nama ("servo1"), kemudian tuliskan perintah "attach" untuk menghubungkan ke pin digital (dalam contoh ini menggunakan pin 3). servo1.write(180);
Servo yang digunakan pada latihan ini tidak dapat berputar 360 derajat, tapi dapat diberi perintah untuk bergerak pada posisi tertentu. Kita menggunakan fungsi pada library servo, perintah write()
akan membuat servo bergerak pada nilai derajat tertentu (0 sampai 180). Perlu diingat bahwa servo memerlukan waktu untuk bergerak dari satu posisi ke posisi lain, maka tambahkan delay()
apabila diperlukan. Apa yang seharusnya kamu lihat:
Kamu akan melihat servo bergerak ke beberapa posisi pada kecepatan tertentu. Jika motor servo tidak bergerak, periksa kembali koneksi kabel dan pastikan sketch sudah masuk kedalam Arduino.LED Berjalan
LED Berjalan
Kamu telah menyelesaikan LED berkedip menyala dan mati. Sekarang saatnya untuk mencoba latihan yang sedikit lebih rumit yaitu dengan menghubunkan empat LED sekaligus. Latihan ini bagus untuk melatih dalam memahami program dan bagaimana program tersebut berjalan didalam Arduino.Untuk mengendalikan beberapa LED, kamu akan belajar beberapa trik pemograman supaya kode kamu terlihat lebih sederhana:
for()
loops - digunakan ketika ingin membuat sebuah fungsi berjalan beberapa kali.arrays[ ]
- digunakan untuk mtengatur beberapa parameter dengan mudah dengan mengelompokannya bersama. Kebutuhan komponen:
— 1 x Arduino UNO— 4 x LED
— 4 x 330 Ohm Resistor
Komponen yang digunakan pada Shield:
4 x yang terhubung ke pin D9, D10, D11 & D13.Selector switch pada posisi LED.
Rangkaian:
Upload sketch:
Buka software Arduino IDE apabila menggunakan PC/Laptop. Jika menggunakan Android dapat membuka aplikasi Bluino Loader yang sudah diinstal dari Google Playstore. Buka sketch Latihan 04 yang sudah diunduh dan disimpan pada folder Examples sebelumnya.Untuk membuka sketch temukan file di: BluinoLoader > examples > Belajar_Arduino_Dasar > Latihan_04
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) dibawah.
/* Bluino Starter Shield
Latihan 04 LED Berjalan
It turns each LED ON and then OFF before going to the next LED.
Version 1.0 9/2017 MK
*/
int ledPins[] = {9,10,11,13}; // Defines an array to store the pin numbers of the 4 LEDs.
// An array is like a list variable that can store multiple numbers.
// Arrays are referenced or "indexed" with a number in the brackets [ ]. See the examples in
// the pinMode() functions below.
void setup() {
// setup all 4 pins as OUTPUT - notice that the list is "indexed" with a base of 0.
pinMode(ledPins[0],OUTPUT); // ledPins[0] = 9
pinMode(ledPins[1],OUTPUT); // ledPins[1] = 10
pinMode(ledPins[2],OUTPUT); // ledPins[2] = 11
pinMode(ledPins[3],OUTPUT); // ledPins[3] = 13
}
void loop() {
int index;
int delayTime = 300; // milliseconds to pause between LEDs
for(index = 0; index <= 3; index++) { // step through the LEDs, from 0 to 3
digitalWrite(ledPins[index], HIGH); // turn LED on
delay(delayTime); // pause to slow down
digitalWrite(ledPins[index], LOW); // turn LED off
}
}
Catatan kode:
int ledPins[] = {9,10,11,13};
Ketika harus mengatur variabel yang cukup banyak, dapat menggunakan "array" sebagai cara untuk mengelopokan variabel sehingga menjadi lebih mudah. Pada contoh latihan kali ini kita membuat sebuah array dari integer, diberi nama ledPins dengan empat elemen.digitalWrite(ledPins[0], HIGH);
Disini untuk menggunakan ledPins kamu dapat mengacu pada elemen dalam array berdasarkan posisinya. Elemen pertama ada pada posisi 0, yang kedua ada di posisi 1, dan seterusnya. Untuk mengacu pada tiap elemen yang menggunakan "ledPins[x]" di mana x adalah posisinya. Di sini kita membuat pin digital 9 HIGH
, karena elemen array pada posisi 0 adalah "9".for(index = 0; index <= 3; index++)
Didalam sketch, menggunakan for()
loop untuk membuat nyala LED berpindah satu persatu dari pin D9 sampai D13.Setiap
for()
loop mempunyai tiga parameter dan dipisahkan menggunakan titik koma (;
):1. index = 0; Sesuatu yang dikerjakan sebelum dimulai: Membuat index = 0.
2. index <= 3; Operasi logika yang dites, selama hasilnya benar (true) akan terus looping: Jika index lebih kecil atau sama dengan 3, akan menjalankan kode yang ada didalam tanda kurung {}. Ketika index = 4, akan keluar dari loop dan melanjutkan baris kode selanjutnya didalam sketch.
3. index++ Sesuatu yang dilakukan setelah menjalankan satu baris loop: Meletakan "++" setelah sebuah variabel bermaksud menambahkan variabel tersebut dengan satu. Dapat juga menggunakan "index = index + 1".
Apa yang seharusnya kamu lihat:
Kamu akan melihat nyala lampu LED bergerak satu arah seperti berjalan. Jika ini tidak terjadi, pastikan sketch sudah masuk kedalam Arduino.Push Button
Push Button
Sampai saat ini kebanyakan fokus latihan pada komponen output. Sekarang kita mencoba latihan menggunakan komponen input sederhana yang umum digunakan yaitu push button menggunakan fungsi digital input. Push button dirangkaikan dengan Arduino sehingga ketika push button ditekan akan menjadikan kondisiLOW
.Pada latihan ini, menggunakan parameter
INPUT_PULLUP
didalam fungsi pinMode()
, sehingga tidak memerlukan resistor yang dihubungkan sebagai pull-up untuk menjaga inputan pada pin dalam kondisi HIGH
ketika push button tidak ditekan.Kebutuhan Komponen:
— 1 x Arduino UNO— 2 x Push Button
— 1 x LED
— 1 x Resistor 330Ω
Komponen yang digunakan pada Shield:
2 x Push Button yang terhubung dengan D2 & D4.1 x LED yang terhubung ke D13.
Rangkaian:
Upload sketch:
Buka software Arduino IDE apabila menggunakan PC/Laptop. Jika menggunakan Android dapat membuka aplikasi Bluino Loader yang sudah diinstal dari Google Playstore. Buka sketch Latihan 05 yang sudah diunduh dan disimpan pada folder Examples sebelumnya.Untuk membuka sketch temukan file di: BluinoLoader > examples > Belajar_Arduino_Dasar > Latihan_05
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) dibawah.
/* Bluino Starter Shield
Latihan 05 Push Button
Use pushbuttons for digital input.
Version 1.0 9/2017 MK
*/
const int button1Pin = 2; // pushbutton 1 pin
const int button2Pin = 4; // pushbutton 2 pin
const int ledPin = 13; // LED pin
int button1State, button2State; // variables to hold the pushbutton states
void setup() {
// Set up the pushbutton pins to be an input with the internal pull-up resistor enabled :
pinMode(button1Pin, INPUT_PULLUP);
pinMode(button2Pin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT); // Set up the LED pin to be an output
}
void loop() {
button1State = digitalRead(button1Pin);
button2State = digitalRead(button2Pin);
// if button1 or button 2 are pressed (but not both)
if (((button1State == LOW) && (button2State == HIGH)) || ((button1State == HIGH) && (button2State == LOW))) {
digitalWrite(ledPin, HIGH); // turn the LED on
}
else {
digitalWrite(ledPin, LOW); // turn the LED off
}
}
Catatan kode:
pinMode(button2Pin, INPUT_PULLUP);
Semua pin pada Arduino dapat difungsikan sebagai input sebagaimana bisa difungsikan sebagai output. Sebelumnya harus dinyatakan terlebih dahulu pin mana yang akan diset sebagai input dengan menggunakan fungsi pinMode()
. Pada fungsi pinMode()
menggunakan parameter INPUT_PULLUP
bertujuan untuk mengaktifkan internal pull-up resistor didalam IC mikrokontroller secara kode.button1State = digitalRead(button1Pin);
Untuk membaca sebuah inputan digital menggunakan fungsi digitalRead()
. Fungsi ini akan menghasilkan HIGH
jika tegangan 5V terhubung dengan pin, atau LOW
jika tegangan 0V terhubung dengan pin.if (button1State == LOW)
Karena menghubungkan salah satu kaki push button ke GND, maka akan membaca LOW
ketika push button ditekan. Disini menggunakan operator dua sama dengan ("==") untuk mendeteksi apakah push button ditekan. Apa yang seharusnya kamu lihat:
Kamu akan melihat LED akan menyala ketika salah satu push button ditekan, dan akan mati ketika kedua push button ditekan. (Lihat pada sketch kenapa bisa terjadi seperti itu!). Jika tidak bekerja, pastikan sketch sudah masuk kedalam Arduino.Membaca Sensor Cahaya
Membaca Sensor Cahaya
Pada latiahan 02 telah belajar menggunakan potensiometer, merupakan hambatan yang dapat berubah tergantung dari posisi putaran knob. Pada latihan sekarang akan menggunakan sebuah sensor cahaya (photoresistor), dimana nilai hambatan akan berubah-ubah bergantung dari intensitas cahaya yang diterima oleh sensor. Kita memerlukan rangkaian pembagi tegangan untuk bisa menggunakan photoresistor supaya perubahan hambatannya dapat menyebabkan perubahan tegangan dan dapat dibaca oleh Arduino.Kebutuhan Komponen:
— 1 x Arduino UNO— 1 x Photoresistor
— 1 x LED
— 1 x Resistor 10kΩ
— 1 x Resistor 330Ω
Komponen yang digunakan pada Shield:
1 x Photoresistor yang terhubung ke A1.1 x LED yang terhubung ke D9.
Rangkaian:
Upload sketch:
Buka software Arduino IDE apabila menggunakan PC/Laptop. Jika menggunakan Android dapat membuka aplikasi Bluino Loader yang sudah diinstal dari Google Playstore. Buka sketch Latihan 06 yang sudah diunduh dan disimpan pada folder Examples sebelumnya.Untuk membuka sketch temukan file di: BluinoLoader > examples > Belajar_Arduino_Dasar > Latihan_06
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) dibawah.
/* Bluino Starter Shield
Latihan 06 Membaca Sensor Cahaya
Use a photoresistor (light sensor) to control the brightnessof a LED.
Version 1.0 9/2017 MK
*/
const int sensorPin = A1;
const int ledPin = 9;
int lightLevel; // We'll also set up some global variables for the light level
int calibratedlightLevel; // used to store the scaled / calibrated lightLevel
void setup() {
pinMode(ledPin, OUTPUT); // Set up the LED pin to be an output.
}
void loop() {
lightLevel = analogRead(sensorPin); // reads the voltage on the sensorPin
calibratedlightLevel = map(lightLevel, 0, 1023, 0, 255); // scale the lightLevel from 0 - 1023 range to 0 - 255 range.
// the map() function applies a linear scale / offset.
// map(inputValue, fromMin, fromMax, toMin, toMax);
analogWrite(ledPin, calibratedlightLevel); // set the led level based on the input lightLevel.
}
Catatan kode:
calibratedlightLevel = map(lightLevel, 0, 1023, 0, 255);
Parametersmap(value, fromLow, fromHigh, toLow, toHigh)
value: nilai yang dipetakan
fromLow: batas bawah dari range nilai terbaca
fromHigh: batas atas dari range nilai terbaca
toLow: batas bawah dari range nilai diinginkan
toHigh: batas atas dari range nilai diinginkan
Ketika membaca sinyal analog menggunakan fungsi
analogRead()
, akan terbaca nilai dari angka 0 sampai 1023. Tapi jika kita ingin mengeluarkan output pada pin PWM menggunakan fungsi analogWrite()
, nilai yang diset antara 0 sampai 255. Kita dapan memperkecil nilai yang mempunyai range besar menjadi range yang kecil atau sebaliknya menggunakan fungsi map()
.Apa yang seharusnya kamu lihat:
Kamu akan melihat LED menyala lebih terang atau lebih redup tergantung dari intensitas cahaya yang terbaca oleh photoresistor. Jika tidak terjadi, pastikan sketch sudah masuk kedalam Arduino.Membaca Sensor Suhu
Membaca Sensor Suhu
Sensor suhu berfungsi untuk mengukur suhu lingkungan sekitar. Sensor yang digunakan pada latihan ini adalah TMP36 memiliki tiga pin; positif, ground dan sinyal. Ini merupakan jenis sensor suhu yang linier, setiap perubahan suhu satu derajat sama dengan perubahan 10 mV pada keluaran sensor.Sensor TMP36 memiliki nilai 750 mV pada suhu 25°C (suhu ruangan). Pada latihan ini akan mempelajari bagaimana menggunakan sensor suhu dengan Arduino, dan menggunakan serial monitor untuk menampilkan suhu.
Kebutuhan Komponen:
— 1 x Arduino UNO— 1 x Sensor suhu
Komponen yang digunakan pada Shield:
1 x Sensor suhu yang terhubung ke pin A2.Rangkaian:
Upload sketch:
Buka software Arduino IDE apabila menggunakan PC/Laptop. Jika menggunakan Android dapat membuka aplikasi Bluino Loader yang sudah diinstal dari Google Playstore. Buka sketch Latihan 07 yang sudah diunduh dan disimpan pada folder Examples sebelumnya.Untuk membuka sketch temukan file di: BluinoLoader > examples > Belajar_Arduino_Dasar > Latihan_07
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) dibawah.
/* Bluino Starter Shield
Latihan 07 Membaca Sensor Suhu
Use the "serial monitor" window to read a temperature sensor.
Version 1.0 9/2017 MK
*/
const int temperaturePin = A2; // We'll use analog input A2 to measure the temperature sensor's signal pin.
void setup() {
Serial.begin(115200); //Initialize serial port & set baud rate to 115200 bits per second (bps)
}
void loop() {
float voltage, degreesC, degreesF; //Declare 3 floating point variables
voltage = getVoltage(temperaturePin); //Measure the voltage at the analog pin
degreesC = (voltage - 0.5) * 100.0; // Convert the voltage to degrees Celsius
degreesF = degreesC * (9.0 / 5.0) + 32.0; //Convert degrees Celsius to Fahrenheit
//Now print to the Serial monitor. Remember the baud must be 115200 on your monitor!
// These statements will print lines of data like this:
// "voltage: 0.73 deg C: 22.75 deg F: 72.96"
Serial.print("voltage: ");
Serial.print(voltage);
Serial.print(" deg C: ");
Serial.print(degreesC);
Catatan kode:
Serial.begin(115200);
Sebelum menggunakan serial monitor, harus menyertakan Serial.begin()
sebagai inisialisasi awal. 115200 adalah "baud rate", atau kecepatan komunikasi data. Ketika dua perangkat atau antara Arduino dengan komputer berkomunikasi satu sama lain, maka harus diseting dengan baud rate yang sama.Serial.print(degreesC);
Serial.print()
merupakan salah satu fungsi yang sering digunakan untuk serial monitor. Perintah ini dapat menampilkan tulisan (string), angka atau data dari hasil pengukuran.Serial.println(degreesF);
Serial.println()
mempunyai fungsi yang sama dengan Serial.print()
perbedaanya setelah fungsi ini menampilkan data akan diakhiri dengan akhir baris jadi untuk data yang akan ditampilkan selanjutnya pada garis baru. Apa yang seharusnya kamu lihat:
Kali ini untuk melihat latihan ini bekerja atau tidak kamu harus menggunakan fitur serial monitor pada software Arduino IDE atau aplikasi Bluino Loader. Untuk membuka serial monitor kamu dapat mengklik ikon kaca pembesar dipojok kanan atas, atau pada aplikasi ini kamu dapat membuaka langsung fitur serial monitor tersebut dengan mengklik ikon yang berada di samping ikon upload.Kamu dapat membaca suhu setempat yang terukur oleh sensor suhu. Jika tidak menampilkan, pastikan sketch sudah masuk kedalam Arduino dan setingan baud rate pada serial monitor sudah sama 115200.
Contoh yang harus terlihat pada serial monitor:
voltage: 0.73 deg C: 23.24 deg F: 73.84
voltage: 0.73 deg C: 23.24 deg F: 73.84
voltage: 0.73 deg C: 22.75 deg F: 72.96
voltage: 0.73 deg C: 23.24 deg F: 73.84
voltage: 0.73 deg C: 23.24 deg F: 73.84
Membaca Potensiometer
Membaca Potensiometer
Potensiometer disebut juga rebagai variabel resistor. Memiliki tiga kaki, ketika diberi tegangan 5V antara kaki no 1 dan 3, pada kaki tengah atau no 2 dapat mengeluarkan tegangan atara 0V sampai dengan 5V tergantung dari posisi knob potensiometer. Sebuah potensiometer merupakan apalikasi dari rangkaian pembagi tegangan yang sangat bagus. Tegangan dibagi secara proporsional berdasarkan hambatan anatara kaki tengah dengan kaki ground. Pada latihan ini akan belajar menggunakan potensiometer untuk mengatur nilai delay saat LED berkedip.Kebutuhan Komponen:
— 1 x Arduino UNO— 1 x Potensiometer
— 1 x LED
— 1 x Resistor 330Ω
Komponen yang digunakan pada Shield:
1 x Potensiometer yang terhubung ke A0.1 x LED yang terhubung ke D13.
Rangkaian:
Upload sketch:
Buka software Arduino IDE apabila menggunakan PC/Laptop. Jika menggunakan Android dapat membuka aplikasi Bluino Loader yang sudah diinstal dari Google Playstore. Buka sketch Latihan 02 yang sudah diunduh dan disimpan pada folder Examples sebelumnya.Untuk membuka sketch temukan file di: BluinoLoader > examples > Belajar_Arduino_Dasar > Latihan_02
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) dibawah.
/* Bluino Starter Shield
Latihan 02 Membeaca Potensiometer
Measure the position of a potentiometer and use it to
control the blink rate of an LED. Turn the knob to make
it blink faster or slower!
Version 1.0 7/2017 MK
*/
int sensorPin = A0; // The potentiometer is connected to analog pin 0
int ledPin = 13; // The LED is connected to digital pin 13
int sensorValue; // We declare another integer variable to store the value of the potentiometer
void setup() { // this function runs once when the sketch starts up
pinMode(ledPin, OUTPUT);
}
void loop() { // this function runs repeatedly after setup() finishes
sensorValue = analogRead(sensorPin);
digitalWrite(ledPin, HIGH); // Turn the LED on
delay(sensorValue); // Pause for sensorValue in milliseconds
digitalWrite(ledPin, LOW); // Turn the LED off
delay(sensorValue); // Pause for sensorValue in milliseconds
}
Catatan kode:
int sensorValue;
Sebuah "variabel" merupakan tempan penyimpanan data yang dapat dirubah-rubah secara program. Pertama harus mendeklerasikan sebuah variabel sebelum menggunakannya; pada contoh disini mendeklerasikan sebuah variabel yang diberi nama sensorValue, tipe dari variabel ini adlah int (integer). Perlu diingat penamaan varabel bersifat case-sensitive.
sensorValue = analogRead(sensorPin);
Kita menggunakan fungsi analogRead()
untuk membaca nilai dari pin analog. analogRead()
membutuhkan satu parameter, yaitu nama pin yang akan digunakan ("sensorPin"), dan nilai hasil pembacaannya akan disimpan pada variabel ("sensorValue") dengan nilai antara 0 (0 volt) dan 1023 (5 volt). delay(sensorValue);
Mikrokontroller sangat cepat dalam memperoses isi program, dapat menjalankan ratusan baris kode tiap detiknya. Untuk membuatnya menjadi lambat sehingga kita bisa melihat apa yang sedang dikerjakan, dengan cara menambahkan delay pada baris kode. delay()
menghitung dalam milidetik; dimana 1000 milidetik sama dengan 1 detik. Apa yang seharusnya kamu lihat:
Kamu akan melihat LED berkedip dengan kedipan lebih cepat atau lebih lambat tergantung dari potensiometer. Jika tidak bekerja, pastikan sketch sudah masuk kedalam Arduino.LED RGB Berkedip
LED RGB Berkedip
Salah satu yang lebih menarik selain LED berkedip adalah merubah warna sebuah LED. RGB atau red-green-blue, adalah LED yang mempunyai tiga nyala cahaya yang berbeda-beda yang dapat dikombinasikan sehingga dapat menciptakan semua jenis warna. Pada latihan ini akan belajar bagaimana menggunakan sebuah LED RGB untuk membuat kombinasi warna yang unik.Kebutuhan Komponen:
— 1 x Arduino UNO— 1 x LED RGB common Cathode
— 3 x Resistor 330Ω
Komponen yang digunakan pada Shield:
1 x LED RGB yang terhubung ke D9, D10 & D11.Selector switch pada posisi RGB.
Rangkaian:
Upload sketch:
Buka software Arduino IDE apabila menggunakan PC/Laptop. Jika menggunakan Android dapat membuka aplikasi Bluino Loader yang sudah diinstal dari Google Playstore. Buka sketch Latihan 03 yang sudah diunduh dan disimpan pada folder Examples sebelumnya.Untuk membuka sketch temukan file di: BluinoLoader > examples > Belajar_Arduino_Dasar > Latihan_03
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) dibawah.
/* Belajar Arduino Dasar
Latihan 03 LED RGB Berkedip
Make an RGB LED display a rainbow of colors!
Version 1.0 9/2017 MK
*/
const int RED_PIN = 9;
const int GREEN_PIN = 10;
const int BLUE_PIN = 11;
const int DISPLAY_TIME = 1000; // used in mainColors() to determine the length of time each color is displayed.
void setup() //Configure the Arduino pins to be outputs to drive the LEDs
{
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
}
void loop()
{
mainColors(); // Red, Green, Blue, Yellow, Cyan, Purple, White
}
/**********************
* void mainColors()
* This function displays the eight "main" colors that the RGB LED
* can produce. If you'd like to use one of these colors in your
* own sketch.
/***********************/
void mainColors()
{
// all LEDs off
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(DISPLAY_TIME);
// Red
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(DISPLAY_TIME);
// Green
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, LOW);
delay(DISPLAY_TIME);
// Blue
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, HIGH);
delay(DISPLAY_TIME);
// Yellow (Red and Green)
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, LOW);
delay(DISPLAY_TIME);
// Cyan (Green and Blue)
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, HIGH);
delay(DISPLAY_TIME);
// Purple (Red and Blue)
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, HIGH);
delay(DISPLAY_TIME);
// White (turn all the LEDs on)
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, HIGH);
delay(DISPLAY_TIME);
}
Catatan kode:
Pada sketch latihan ini menunjukan penyederhanan sebuah fungsi didalam fungsi utamaloop()
.Menulis fungsi sendiri dapat berguna untuk membuat isi sketch terlihat rapi, mudah dipahami, dan efisien.
Pada contoh ini, kita akan membuat satu fungsi:
mainColors()
mainColors()
berfungsi untuk menampilkan beberapa warna dari kombinasi tiap warna LED (RED, BLUE, dan GREEN) nyala dan mati dengan tingkat kecerahan yang bervariasi bisa sepenuhnya nyala atau sepenuhnya mati.Pemanggilan fungsi:
Melakukan panggilan pada sebuag fungsi bermaksud untuk menjalankan kumpulan kode dari fungsi tersebut. Karena fungsi
mainColors()
tidak memiliki parameter didalam tanda kurungnya, jadi untuk memanggilnya sederhana, cukup menuliskan seperti dibawah:
mainColors();