Tutorial ini menunjukkan jumlah maksimal LED yang dapat dikontrol secara langsung menggunakan pin digital Arduino (UNO). Dan apakah semua LED dapat menyala bersamaan?
KEBUTUHAN PERANGKAT
Arduino (uno)
LED (12 buah)
Resistor 220 ohm maks 1 kilo-ohm (12 buah)
kabel jumper (warna-warni)
SIRKUIT
Untuk menghubungkan 1 buah LED ke arduino, silakan lihat tutorial Blinking LED. Silakan duplikat rangkaian LED tsb hingga berjumlah 12 buah rangkaian. Masing2 kaki positif-nya dihubungkan ke pin digital D2 hingga D13. Pin D0 dan D1 tidak dapat digunakan sebagai output dikarenakan sudah memiliki fungsi khusus sebagai RX dan TX.
SKEMATIK
Lihat rangkaian skematik di Blinking LED.
KODE
Setelah membuat rangkaian sirkuitnya:
sambungkan Arduino ke komputer
jalankan Arduino Software (IDE). Jika belum terinstal, silakan didownload disini.
masukkan kode berikut:
//#define _CDEBUG_ // uncomment for DEBUGGING #define LED_NUM 12 int aLedPin[LED_NUM] = {13,12,11,10,9,8,7,6,5,4,3,2}; // PIN D0 & D1 can not be set as OUTPUT because of dedicated function as RX & TX int i = 0, iPos = 0; int iDir = 1; void setup() { // put your setup code here, to run once: Serial.begin(9600); for (i=0; i<LED_NUM; i++) { pinMode(aLedPin[i], OUTPUT); digitalWrite(aLedPin[i], LOW); } } void loop() { // test all LEDs are blinking simulatenously? //LEDAllBlinks(); // uncomment to display blinking 12-LEDs // knight rider led LEDKnightRider(); // uncomment to display Knight Rider LED (using 12 LEDs) } void LEDKnightRider() { #ifdef _CDEBUG_ Serial.println(iPos); #endif digitalWrite(aLedPin[iPos], HIGH); delay(50); digitalWrite(aLedPin[iPos], LOW); iPos = iPos + iDir; if ((iPos == LED_NUM - 1) || (iPos == 0)) { iDir = iDir * -1; } } void LEDAllBlinks() { for (i=0; i<LED_NUM; i++) { digitalWrite(aLedPin[i], HIGH); } delay(1000); for (i=0; i<LED_NUM; i++) { digitalWrite(aLedPin[i], LOW); } delay(1000); }
Mengontrol arduino via handphone (android /iOS) sepertinya sih keren ya. Tapi susah gak sih? Mesti develop aplikasi di android/iOS secara khusus? Cara komunikasinya pake apa? Lama dong?
Pertanyaan-pertanyaan seperti itu pasti terlintas. Tak jarang, keraguan yang akhirnya juga dapat menjadi motif urungnya melanjutkan niatan diatas.
Dengan menggunakan BLYNK yang menyediakan dashboard berisi bermacam-macam widget, hal itu tidak lagi jadi masalah, bahkan tidak sampe 1 menit (seperti iklan video-nya), kita sudah dapat mengontrol Arduino via handphone (android/iOS).
Untuk kali ini, saya akan mencoba mengontrol arduino saya dengan rangkaian yang saya buat di artikel saya sebelumnya.
Install BLYNK di handphone. Download BLYNK (android/iOS). Buat account di BLYNK atau login dengan account facebook.
Setelah berhasil login, buat proyek baru di BLYNK dan tambahkan widget Button dan Value. Silakan tambahkan widget lainnya sesuai kebutuhan. Yang perlu diingat adalah BLYNK free-version menyediakan sejumlah saldo nilai energi, dimana 1 widget seharga nilai energi tertentu. Klo saldo nilai energi ini, habis atau tidak mencukupi, maka kita tidak akan bisa menambahkan widget ke proyek. Jangan lupa mengirimkan AUTH TOKEN (yg ada di kotak merah) ke e-mail anda. AUTH TOKEN ini nantinya diperlukan untuk dimasukkan ke kode program ARDUINO-nya sebagai pengenal proyek ini.
BLYNK: Project Settings
BLYNK: Project view
BLYNK: Widgets
BLYNK: Widget Button Settings
BLYNK: Widget Value Display Settings
BLYNK juga sudah menyediakan in-app purchase untuk tambahan sejumlah nilai energi tertentu dengan harga tertentu.
Download BLYNK library. Saya menggunakan library yang ini.
Ekstrak file .zip dan copy-paste-kan semua folder ke folder {instalasi arduino}/libraries.
Masukkan AUTH TOKEN ke kode arduino (lihat di bagian kode di bawah)
Upload kode ke Arduino
Buka console windows, dan pindah ke folder {instalasi arduino}/libraries/Blynk/scripts
edit file blynk-ser.bat. Ubah nilai serial COM. Sesuaikan dengan nomor port serial Arduino Anda. Untuk kasus saya, COM8 adalah port serial Arduino saya.
Jalankan file blynk-ser.bat
Dan kini, Andapun sudah dapat mengontrol LED di Arduino dan menampilkan jarak yang dideteksi ULTRASONIC SENSOR secara online-realtime.
#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor. #define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor. #define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
int distance = 0; SimpleTimer timer; NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance. // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "AUTH_TOKEN_PROYEK_ANDA"; void myTimerEvent() { // You can send any value at any time. // Please don't send more that 10 values per second. distance = sonar.ping_cm(); Blynk.virtualWrite(V1, distance); Blynk.virtualWrite(V2, distance); Blynk.virtualWrite(V3, distance); } void setup() { // Debug console DebugSerial.begin(9600); // Blynk will work through Serial Serial.begin(9600); Blynk.begin(auth, Serial); // Setup a function to be called every second timer.setInterval(1000L, myTimerEvent); } void loop() { Blynk.run(); timer.run(); // Initiates SimpleTimer }
TIPS: masukkan AUTH TOKEN proyek Anda menggantikan teks AUTH_TOKEN_PROYEK_ANDA.
Tutorial ini menunjukkan hal termudah yang dapat Anda lakukan dengan Arduino yaitu dengan blinking led (led berkedip-kedip).
KEBUTUHAN PERANGKAT
Arduino (uno)
LED
Resistor (220 ohm, maks 1 kilo-ohm)
kabel jumper (warna-warni)
SIRKUIT
hubungkan 1 kaki resistor yang lebih panjang/bengkok (kaki positif disebut anoda) ke Arduino pin 13.
hubungkan kaki lainnya yang lebih pendek (kaki negatif disebut katoda) ke Arduino GND (ground)
untuk menjaga supaya arus stabil (tidak berlebih), tambahkan resistor (220 ohm, ato sampai 1 kilo-ohm) diantara kaki anoda dan kabel jumper yang terhubung dengan pin 13.
TIPS: Untuk menghubungkan titik satu ke titik lainnya yang berjauhan, silakan gunakan kabel jumper dengan warna kesukaanmu. Akan tetapi, sebaiknya gunakan warna tertentu untuk membedakan arus positif dan negatif.
SKEMATIK
KODE
Setelah membuat rangkaian sirkuitnya:
sambungkan Arduino ke komputer
jalankan Arduino Software (IDE). Jika belum terinstal, silakan didownload disini.
masukkan kode berikut:
/* Blink Menyalakan LED 1 detik, kemudian padam 1 detik, berulang-ulang.
modified 8 May 2014 by Scott Fitzgerald */
// function setup hanya dijalankan sekali saja sejak reset atau menyalakan board void setup() { // inisialisasi digital pin 13 sebagai output pinMode(13, OUTPUT); }
// fungsi loop dijalankan berulang-ulang selama ada power void loop() { digitalWrite(13, HIGH); // nyalakan LED delay(1000); // tunda 1 detik digitalWrite(13, LOW); // padamkan LED dengan memberikan tegangan LOW delay(1000); // tunda 1 detik }
LATIHAN
Silakan tambahkan rangkaian beberapa led baru dan tulislah kode untuk menyalakan led secara bergantian!