Showing posts sorted by relevance for query arduino. Sort by date Show all posts
Showing posts sorted by relevance for query arduino. Sort by date Show all posts

Sunday 25 December 2016

Solusi Arduino Uno board yang tidak terdeteksi di Windows 7

Assalamualaikum Reader.


Setelah kita berhasil menginstal aplikasi Arduino IDE namun kadang kala ketika kita akan hubungkan dengan perangkat Arduino Board. malah tidak terdeteksi otomatis dengan baik di PC/Laptop yang kita gunakan. Dalam hal yang saya, Sistem Operasi yang saya gunakan pada laptop adalah Windows 7 Home Premium dan Arduino yang saya gunakan Arduino Uno. Cirinya ketika perangkat kita belum dikenali oleh OS yang kita gunakan adalah seperti pada gambar berikut.


Setelah mencari tau via browsing, solusi yang bisa kita lakukan adalah dengan menginstall driver Arduino Uno. Silahkan klik link berikut untuk download drivernya. Driver atau Driver

File driver berupa .zip, jalankan langsung dengan double-klik atau ekstrak dahulu.
Double-klik file setup.exe yang ada di folder CH341SER seperti tampak pada gambar.

Lanjutkan dengan klik Install 

maka proses instalasi driver berlangsung sampai selesai seperti pada tampilan berikut

Untuk meyakinkan lagi bisa kita lihat pada tampilan Device Manager. Dalam gambar tersebut nantinya port untuk Arduino Board yang saya gunakan  menggunakana port COM3

Jika kita lihat pada aplikasi Arduino IDE pengaturannya seperti berikut 


Demikian tutorial cara instalasi Driver Arduino Uno di Windows 7, semoga bermanfaat.

Wassalam n keep blogging ...

Wednesday 28 December 2016

Arduino Multiple Led Blinking

Assalamualaikum reader..

Dalam tutorial kali ini saya akan bereksperimen dengan arduino lagi dan melanjutkan tutorial sebelumnya yaitu Belajar Arduino Uno LED basic
Eksperimen kali ini saya dapatkan dari tutorial yang ada di internet dan saya tertarik untuk mencoba made it by myself. Yup.. masih tetep obyek eksperimennya berupa LED tapi kali ini jumlah LED nya adalah 3 buah. Hasil akhir dari eksperimen ini adalah membuat 3 buah LED tersebut blinking.
Bahan-bahan yang dibutuhkan adalah :
1. Arduino Uno board

2. LED (3 buah)

3. Kabel jumper

4. Breadboard

Pertama rangkailah bahan-bahan tadi seperti pada gambar berikut. 

Gambar rangkaian ini sebenarnya mau saya gambar menggunakan aplikasi namanya Fritzing, bisa anda download di internet. Cuman ketika saya coba install di laptop terdapat permasalahan (ada file system yang missing). Akhrnya saya terpaksa menggambar rangkaian ini menggunakan aplikasi yang online. Anda bisa mencobanya sendiri, salah satu websitenya adalah circuits.io
Semua kaki negatif LED (kaki yang pendek) terhubung ke pin GND yang ada di Arduino. Sedangkan untuk kaki positif (kaki yang panjang) masing-masing LED terhubung ke pin 13 (D13), pin 12 (D12), pin 11 (D11). 







Kabel jumper warna hijau (lihat gambar skema) adalah kabel negatif yang terhubung ke pin GND, sedangkan kabel warna biru, orange dan kuning adalah kabel positif yang terhubung ke pin 13, pin 12 dan pin 11.








Friday 13 May 2016

BAHASA PEMROGRAMAN ARDUINO

A.Struktur
Dalam penulisan Program/ Sketch Menggunakan Arduino, ada dua fungsi yang harus ada hal ini dikarenakan arduino memiliki struktur dasar/ standart penulisan yaitu void setup, dan void loop, namun Arduino juga memiliki beberapa fungsi tambahan seperti komentar satu bari ( // ), Blok komentar (/*…*/), kurung kurawal ( { } ), Titik Koma ( ; ).

1.void setup( ) {   }
Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya/ di-Reset

Contoh ;
int LED = 3;
void setup(){
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop(){
}

2.void loop( ) {   }
Fungsi ini akan dijalankan setelah void setup  selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan dengan kata lain program yang ada di dalam kurung kurawal void loop akan mengunlang secara terus menerus.

3.Fungsi()
Digunakan untuk membuat sekumpulan program dengan memberikan label/ nama tertentu yang dapat dipanggil sewaktu- waktu dan fungsi ini biasanya digunakan untuk sekumpulan program yang akan sering dipanggil / dijalankan, sehingga program akan jauh lebih sederhana.

4.//(komentar satu baris)
Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program.

5./*  */(Blok Komentar)
Jika anda punya banyak catatan, maka hal itu dapat dituliskanpada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program.

6.{   }(kurung kurawal)
Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).

7.;(titk koma)
Hamper baris kode pada Arduino harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan/ eror.

B.Struktur Pengaturan

Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan Arduino.

1.If dan Else
Berfungi untuk melakukan pengetesan atau pengujian kondisi sehingga apabila sebuah kondisi telah terpenuhi maka program/ sketch akan menjalankan Pernyataan yang berada di dalam kurung kurawal, namun jika tidak maka program akan melewati pernyataan tersebut, if sendiri memiliki beberapa bentuk dalam penulisannya 
-Bentuk pertama;
ini adalah bentuk if tunggal yang digunakan hanya untuk 1 kondisi, sehingga bila sudah tercapai kondisi tersebut jalankan pernyataan jika tidak lewati pernyataan.

Format penulisan :
If(kodisi){
pernyataan}

Contoh :
If (SensorPin > 100){
digitalWrite(13, HIGH);}

Program diatas menyatakan jika nilai Sensor Pin besar dari 100 maka nyalakan LED pada pin 13.

-Bentuk kedua;
Ini adalah bentuk kedua yang digunakan untuk kondisi if dengan satu pengecualian, jadi apabila if dalam kondisi tersebut program akan menjalankan  pernyataan1 jika tidak program akan menjalankan pernyataan2.

Format Penulisan :
if (kodisi){
Peryataan1}
else{
peryataan2}

Contoh :
If (SensorPin > 100){
digitalWrite (13, HIGH);}
else{
digitalWrite (13,LOW);}

-Bentuk Ketiga;
Pada bentuk ketiga ini if memiliki beberapa pengecualian, sehingga apabila dalam kondisi1 program akan menjalankan pernyataa1, jika tidak cek kondisi2 jika dalam kondisi2 jalankan pernyataan2 jika tidak cek kondisi 3 jika dalam kondisi 3 maka jalankan pernyataan3, jika tidak ada sama dengan kondisi1, kondisi2, kondisi3 maka jalankan pernyataan4.

Format Penulisan:
If(kondisi1){
Pernyataan1}
else if(kondisi2){
Pernyataan2}
else if(kondisi3){
Pernyataan3}
else {Pernyataan4}

Contoh :
If (SensorPin > 20){
digitalWrite (13, HIGH);}
else if(SensorPin > 40){
digitalWrite (12, HIGH);}
else if(SensorPin > 60){
digitalWrite (11 HIGH);}
else{ digitalWrite (11 HIGH);}

2.For
Digunakan bila anda ingin melakukan pengulangan kode didalam kurung kurawal beberapa kali, namun untuk melakukanya dibutuhkan sebuah counter, baik itu counter up ( i++ ), ataupun counter down ( i-- ), sebagai mana yang telah dilihat pada format penulisan i=0 menyatakan posisi awal,sedangkan# untuk jumlah pengulangan dan i++ adalah counter.

Format Penulisan :
for (int i = 0; i < #pengulangan; i++) {
pernyataan}
Contoh
for (int i =0; i <9; i++){    
pinMode(ledPins[i],OUTPUT);
}

3.Switch 
Digunakan untuk menguji suatu nilai pada variable dengan konstanta- konstanta tertentu, konstanta tersebut diawali dengan case dan diakhiri dengan break, jika variable sama dengan konstanta 1 maka jalankan pernyataan 1, jika variable sama dengan konstanta 2 maka jalankan pernyataan 2 dan begitu seterusnya  namun jika variable tidak sama dengan konstanta manapun maka jalankan default.

Format Penulisan :
switch (var) {
case 1:
//pernyataan 1
break;
case 2:
//pernyataan 2
break;
default: 
}

4.while 
Akan menjalankan intruksi yang ada di dalam kurung ()secara terus menerus dan tak terhingga, sampai ekspresi dalam kurung() menjadi salah(false) oleh sebab itu harus ada yang mengubah variable agar dapat keluar dari intruksi ini. 

Format Penulisan:
While(kondisi)
{peryataan(s)
}

5.Do-While
Bekerja dengan cara yang sama seperti while, dengan pengecualian bahwa kondisi ini di uji pada akhir program, sehingga program akan berjalan setidaknya sekali.

Format Penulisan:
do
{pernyataan
}
While(kondisi);


6.Break
Digunakan untuk  keluar dari do while dan while, untuk melewati kondisi normal. Hal ini juga digunakan untuk keluar dari pernyataan switch.

Contoh; 
for(x =0; x <255; x ++){
analogWrite(PWMpin, x);
sens =analogRead(sensor);  
if(sens > threshold){ 
x =0;
break;
}  delay(50);
}

7.Continue
Pernyataan melompati sisa literasi saat (do, for, atau if). Ini akan terus  memeriksa ekspresi kondisional dari loop, dan melanjutkan dengan literasi berikutnya.

Contoh;
for(x =0; x <255; x ++){
 if(x >40&& x <120){      // create jump in values
 continue; }
    analogWrite(PWMpin, x);
    delay(50);
}

8.Return
Return berguna untuk mengembalikan nilai dari fungsi ke  fungsi panggilan, jika diinginkan.
contoh:
int checkSensor(){       
if (analogRead(0) > 400) {
return 1;
else{return 0;}
}

9.go to
adalah intruksi lompat tak bersyarat, instruksi ini mengakibatkan eksekusi dilanjutkan ke alamat yang dituju oleh label .
Contoh;
for(byte r = 0; r < 255; r++){
for(byte g = 255; g > -1; g--){
for(byte b = 0; b < 255; b++){
if (analogRead(0) > 250){ goto Label1;}
Label2}}
}
Label1:

C. Arithmetic
1.Aritmatika 
     Arduino IDE selain mendukung untuk  kompailer juga mendukung operator Aritmatika seperti yang ada dibawah ini.

-Sama dengan ( = )
Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20).

-Penjumlahan( + )
 Penjumlahan
-Pengurangan( - )
 Pengurangan
-Perkalian( * )
 Perkalian
-pembagian( /)
 Pembagian
-Sisa pembagian ( % )
Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).

2.Operasor Bitwisee
Operasi bitwise banyak digunakan dalam aplikasi mikrokontroler, misalnya untuk menguji kondisi bit pada Port 1 atau pergeseran bit dll. Ada enam buah operator bitwise diantaranya;

-Operator Geser kiri ( << )
Operator geser kiri akan mengeser ke kiri perbit sehingga bit 0 akan menggeser ke bit 1 dan bit 2 akan menggeser ke bit 3 dan seterunya, Untuk melakukan operasi bitwise geser kiri dibutuhkan dua buah operan, disebelah kiri tanda ( <<) adalah nilai geser dan disebelah kanan adalah jumlah bit yang akan digeser ke kiri.

-Operator Geser kanan ( >> )
Operator geser kanan akan mengeser ke kanan perbit” misalnya bit 8 akan menggeser ke bit7 dan bit 7 akan menggeser ke bit 6 dan seterunya, Untuk melakukan operasi bitwise geser kanan dibutuhkan dua buah operan, disebelah kiri tanda ( <<) adalah nilai geser dan disebelah kanan adalah jumlah bit yang akan digeser ke kiri.

-Operasi Bitwise AND (&)
Operator bitwise and (&) berfungsi untuk melakukan operasi logika AND bit/ bit misalnya  bit 0 akan diproyeksikan dengan bit 0 dan bit 1 diproyeksikan dengan 1 dan seterusnya.

Contoh:
int a = 10 ; // Dalam biner : 1010
int b = 12 ; // Dalam biner : 1100
int c = a & b; // Hasil dalam biner : 1000

-Operasi Bitwise OR(|)
Operator bitwise OR (|) berfungsi untuk melakukan operasi logika OR bit/ bit misalnya  bit 0 akan diproyeksikan dengan bit 0 dan bit 1 diproyeksikan dengan 1 dan seterusnya.

Contoh :
int a = 10 ; // Dalam biner : 1010
int b = 12 ; // Dalam biner : 1100
int c = a | b;   // Hasil dalam biner : 1110

-Operasi Bitwise XOR (^)
Operator bitwise XOR (^) berfungsi untuk melakukan operasi logika XOR bit/ bit misalnya  bit 0 akan diproyeksikan dengan bit 0 dan bit 1 diproyeksikan dengan 1 dan seterusnya.
Contoh :
int a = 12; // Dalam Biner : 1100
int b = 10;   // Dalam Biner : 1010
int c = a ^ b; //HarsilDalam Biner : 0110 

- Operasi Bitwise NOT (~)
Operatr bitwise NOT (~) berfungsi untuk melakukan operasi logika NOT pada bit, misalnya bit yang berlogika 0 berubah menjadi 1 dan logika 1 berubah menjadi0.

Contoh :
int a = 12; // Dalam Biner : 1100
int c = ~a //Hasil Dalam Biner : 0011

3.Operator Relasi/ Pembanding
Operator Relasi digunakan untuk membandingkan dua buah nilai atau kondisi. Operator relasi.

-Sama dengan ( == )
Sama dengan (misalnya: 14 == 10 adalah FALSE (salah) atau 10 == 10 adalah TRUE (benar))

-Tidak sama dengan ( != )
Tidak sama dengan (misalnya: 14 != 10 adalah TRUE (benar) atau 10 != 10 adalah FALSE (salah))

-Kecil dari ( < )
Lebih kecil dari (misalnya: 14< 10 adalah FALSE (salah) atau 14 < 14 adalah FALSE (salah) atau 10< 14 adalah TRUE (benar))

-Besar dari ( > )
Lebih besar dari (misalnya: 14> 10 adalah TRUE (benar) atau 14 > 14 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah))

-Kecil/ sama dengan ( <= )
Kecil/ sama dengan (misalnya: 14 <= 10 adalah FALSE (salah) atau 14 <= 14 adalah TRUE (benar) atau 10 <= 14 adalah TRUE (benar))

-Besar / sama dengan ( >= )
Lebih besar dari (misalnya: 14 >= 10 adalah TRUE (benar) atau 14 >= 14 adalah TRUE (benar)) atau 12 >= 14 adalah FALSE (salah))

PERHATIAN
dalam penulisan operator relasi tanda tidak boleh salah hal ini dikarenakan kesalahan sedikit dalam penulisan tanda dapat menyebankan program/ sketch tidak berkerja sesuai dengan yang diharapkan misalnya : kita ingin membandingkan sebuah Variable dengan operasi relasi sama dengan (==)  tanda yang harus dituliskan adalah == jika kita hanya menuliskan = sekali saja maka instruksi yang dijalankan bukanya membandingkan malah memberi nilai pada Variable, selain dari itu jika kita ingin menusilkan operasi relasi besar sama dengan ( >= ) kita tidak boleh menulikanya terbalik ( => ), meskipun maknanya sama namun Arduino IDE tidak mengenal hal itu sehingga mengakibatkan eror pada saat Verify ( Kompailer ).

Sunday 29 September 2013

PEMOGRAMAN DIGITAL OUTPUT MENGGUNAKAN KONFIGURASI REGISTER



Gimana kabarnya para sobat setia pembaca blog ini? sehat dan tentu baik-baik saja kan,  harapan saya sih. pada kesempatan kali ini saya akan meng-share penggunaan " KONFIGURASI REGISTER". Sebelumnya ada yang tahu bagaimana cara register itu sendiri? cara kerja register bisa di katan hanya menggeser ouput. Maksudnya adalah ketika inputan bernilai 1 atau HIGH maka ouputnya akan bernilai 1 atau HIGH juga pada pin 8 jika inputnya menggunakan PORTB, setelah selang 1 sekon maka outpunya akan bergeser ke pin 9, sementara pin 8 menjadi mati dan seterusnya hingga sampai ke pin 13. Hal ini dapat terjadi jika sobat semua menggunakan program yang berfungsi seperti di atas.

Baiklah sobat sekalian, pada kesempatan kali ini saya tidak akan membahas tentang program menggeser seperti di atas. Tapi, saya akan membahas cara memprogram Arduino sehingga dapat menginput dan mengoutput sebuah program. Ayo simak langkah demi langkah membuat program ini.

  1. Langkah-langkah pada percobaan ini sama dengan cara "PEMOGRAMAN DIGITAL OUTPUT MENGGUNAKAN FUNGSI ARDUINO" yang telah saya share beberapa waktu yang lalu pada blog ini. Bedanya adalah pada sintaksnya saja.
  2. Maka sobat semua harus mengganti sintaks tersebut menjadi seperti di bawah ini :
  3. Amati output pada LED yang telah di pasang. maka hasilnya akan seperti tabel di bawah ini:
Mengapa hasilnya bisa sama dengan percobaan yang sebelumnya yaitu "PEMOGRAMAN DIGITAL OUTPUT MENGGUNAKAN FUNGSI ARDUINO" ? ada yang mungkin tahu jawabannya? baiklah, saya akan mencoba menjelaskan mengapa progra tersebut memiliki output yang sama seperti pada pemograman sebelumnya. 

Maksud dari sintaks setup DDR3 0x3F adalah angka 3 dan F merupakan bilangan hexa, oleh karena itu, maka kita ubah dulu menjadi binersehingga menjadi 0011 1111, dan cara membaca pinnya adalah dari kanan-kiri saja. Hingga mencapai pin 13 yang merupakan Output. Dan pada sintaks looping PORTB 0x07 yang maksudnya merupakan pengulangan berkali-kali untuk menampilkan keluaran. Nilai Yang di sini adalah 07 yang kita harus konversi menjadi biner sehingga menjadi 0000 0111 dan cara membaca juga sama dari kanan ke kiri hingga mencapai pin 13. Sehingga jika inputan bernilai 1 maka outputnya akan mengeluarkan nilai 1 atau ONpada pin 8, 9, dan 10 semenara pin 11, 12, dan 13 akan tetap mati.
 
Dan apa sih perbedaan program ini dengan program yang menggunakan fungsi arduino? perbedaannya adalah program ini dilihat dari sintaksnya aja sudah lebih sedikit dan simple di bandingkan dengan  program fungsi arduino. Baiklah mungkin hanya itu saja membahas tentang program  ini. Sampai jumpa lagi di post saya berikutnya...

TERIMA KASIH