Wednesday, November 8, 2017

MENGENAL INTERRUPT PADA ARDUINO

Interrupt Service Routine (ISR) atau interrupt adalah suatu keadaan dimana saat pemicu program interrupt dipicu baik secara eksternal ataupun internal, program interrupt akan menghentikan sejenak program lain yang sedang dijalankan dan melaksanakan program interrupt tersebut.
Pada arduino Interrupt dapat digunakan dengan menambahkan program berikut pada program yang ingin kita berikan fungsi interrupt.

-      attachInterrupt (interrupt, ISR, mode)//[eksternal interrupt]
-      attachInterrupt (pin, ISR, mode) (hanya Arduino Due)

AttachInterrupt [eksternal interrupt] memudahkan kita dalam mengolah data pada arduino. Pada setiap boards arduino kebanyakan memiliki 2 pin interrupt. pada arduino uno, memiliki 2 buah pin interrupt yang dapat difungsikan, yaitu pin 2 digital (int 0), dan pin 3 digital (int 1). Dibawa ini merupakan ketersediaan pin interupsi pada berbagai board arduino

-      int  pada Board arduino :  int.0 int.1 int.2 int.3 int.4 int.5
-      Untuk board arduino Uno, dan Ethernet yaitu pin : 2, 3
-      Untuk board arduino Mega2560 yaitu : 2, 3, 21, 20, 19, 18
-      Untuk board arduino Leonardo yaitu : 3, 2, 0, 1 7

Pada setiap int memiliki pasangan yang bisa dipasangkan dengan pin interrupt yang tersedia diatas antara lain :

-      Pada arduino uno  int0 dan pin 2 serta int1 dan pin 3 atau sebaliknya sesuai dengan keinginan kita
-      Pada arduino mega int4 dan pin 19 serta int5 dan pin 18

Pada kondisi diatas jika kita menginginkan penggunaan interrupt lebih dari 2 buah interrupt misalnya, kita ingin membuat 3 buah interrupt maka boar yang digunakan adalah board maga atau leonardo, pada kasus ini kita akan menggunakan mega sehingga pin yang digunakan adalah pin 2,3 dan 19 untuk dipasangkan degan int0,int1 dan int4
-         Int0   = pin 2
-         Int1   = pin 3
-         Int5   = pin 19  

Mode interrupt external (AttachInterrupt ) terdiri atas 4 kondisi, yaitu:

1.  LOW, fungsi interrupt yang dijalankan untuk kondisi pin rendah,
2.  CHANGE, fungsi interrupt yang dijalankan setiap kali perubahan pin nilai,
3.  RISING, fungsi interrupt yang dijalankan jika terjadi perubahan nilai pin dari LOW ke HIGH,
4.  FALLING, fungsi interrupt yang dijalankan jika terjadi perubahan nilai pin dari HIGH ke LOW.

Contoh sketch :
#include <OneWire.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h"
#include <SPI.h>

#define RAIN_GAUGE_PIN 2
#define RAIN_GAUGE_INT 0 //INT0
int rainCounter = 0;
float rain;
long lastDebounce0 = 0;
long debounceDelay = 1000;
// Set the LCD address to 0x3f for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x3F, 2,1,0,4,5,6,7,3, POSITIVE);
RTC_DS3231 rtc;
char dayOfTheWeek[7][12] = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"};

void setup()
{
// initialize the LCD
lcd.begin(20,4);
Serial.begin(9600);
pinMode(RAIN_GAUGE_PIN,INPUT);
digitalWrite(RAIN_GAUGE_PIN,HIGH);
attachInterrupt(0,countRain,FALLING);//INTERRUPH
return;
//(tahun, bulan, tanggal, jam, menit, detik)
//rtc.adjust(DateTime(2017, 7, 28, 22, 26, 0));
}


void countRain()
{
if((millis()-lastDebounce0)> debounceDelay)
  {
  rainCounter++;
  rain = (rainCounter*0.2); // 1pulsa berharga 0.2mm
  lastDebounce0 = millis();
  }
}


void loop()
{
  DateTime now = rtc.now();
  Serial.println(rain);
  lcd.setCursor(0, 1); //baris pertama
  lcd.print("CH : ");
  lcd.print(rain);
  lcd.print("mm");
  lcd.print(now.year(), DEC);
  lcd.print('/');
  lcd.print(now.month(), DEC);
  lcd.print('/');
  lcd.print(now.day(), DEC);
  lcd.print("<>");
  lcd.print(now.hour(), DEC);
  lcd.print(':');
  lcd.print(now.minute(), DEC);
  lcd.print(':');
  lcd.print(now.second(), DEC);
  lcd.println();

}

Saturday, October 21, 2017

BERMAIN DENGAN SERVO

Rangkai Komponen
Servo memiliki peranan yang penting sama halnya dengan motor stepper, terutama dalam mengontrol gerakan sebuah alat atau sistem yang membutuhkan gerakan memutar terbatas misalnya gerakan lengan robot, gerakan membuka dan menutup katub dan masih banyak lagi fungsi lain dari servo. Motor servo biasa digunakan dalam aplikasi-aplikasi di industri, selain itu juga digunakan dalam berbagai aplikasi lain seperti pada mobil mainan radio kontrol, robot, pesawat, dan lain sebagainya. motor servo berfungsi untuk menentukan dan memastikan posisi sudut dari poros output motor.Pada pembahasan kali ini kita akan membahas tentang servo, adapun komponen yang digunakan adalah.

1.        Arduino Uno
2.        Servo mini

3.        Kabel Jumper Secukupnya


Gambar 1.1 Rangkaian Servo 

Pada Gambar diatas merupakan rangkain servo dimana kabel kuning sebagai transfer data dimasukkan ke pin nomor 7. Kabel Hitam dan Mareh sebagai ground dan VCC, setelah komponen dirangkai maka selanjutnya copy dan paste-kan koding dibawa ini ke dalam IDE arduino kemudian verify dan upload ke dalam board arduino. adapun sketchnya atau kodingnnya adalah sebagai berikut :

Koding/Sketch:
#include <Servo.h>
 Servo myservo;  // create servo object to control a servo
                           // twelve servo objects can be created on most boards
 int pos = 0;    // variable to store the servo position

void setup()
{
  myservo.attach(7);  // attaches the servo on pin 9 to the servo object
}

void loop()
{
  for(pos = 0; pos <= 180; pos += 1) // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 180; pos>=0; pos-=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}

lebih lengkapnya saksikan video berikut untuk lebih memahami dalam menggunakan servo dengan arduino





Thursday, May 18, 2017

MONITORING LEVEL AIR VIA SMS


Kali ini kita akan membahas tentang monitorng level air via sms, jadi monitoring level disini bisa level air sungai jangan sampai kebanjiran monitoring air diwaduk, monitoring level tank di rumah dan lain-lain tergantung kebutuhan kita, baik langsung saja namun sebelum kita memulai projek ini kita akan menyiapkan beberapa komponen dan modul yang digunakan anatara lain :

1. Arduino uno
2. SIM900 a kit 4.0
3. Kabel jumper
4. Sensor ultrasonik
5. Buzzer

Setelah kita menyiapkan semua komponen dan mikrokontrollernya langkah selanjutnya adalah menrangkainya kedalam sebuah papan rangkaian

a. Rangkaian






b. Upload sketch

Setelah proses merangkai rangkain telah dilakukan maka langkah yang paling ditunggu-tunggu yaitu membuat sketcnya (koding), tapi jangan khawatir kodingnyat ane telah siapakan, nah...kita tinggal memasukkan sketch dibawa ini kedalam IDE arduino dan diupload. adapun sketchnya sebagai berikut

#include <SoftwareSerial.h>
#define trigger 4
#define echo 5
#define buzzer 7
SoftwareSerial mySerial(2,3);
String noHP;
float time=0,distance=0;

void setup()
  {
   mySerial.begin(9600);//
   Serial.begin(9600);    // the GPRS baud rate
   noHP="082395436245";// no hp bisa di ganti
   delay(500);
   pinMode(trigger,OUTPUT);
   pinMode(echo,INPUT);

   pinMode(buzzer, OUTPUT);
   Serial.print("Level water");
   Serial.print("Indicator");
   delay(2000);
  }

void loop()
  {
   digitalWrite(trigger,LOW);
   delayMicroseconds(2);
   digitalWrite(trigger,HIGH);
   delayMicroseconds(10);
   digitalWrite(trigger,LOW);
   delayMicroseconds(2);
   time=pulseIn(echo,HIGH);
   distance=time*340/20000;
   Serial.print("Space Wall  :");
   Serial.print(distance);
   Serial.print("Cm");
   Serial.print("Level water is :");
   Serial.print("Status SMS  :");
   delay(2000);

 if(distance)
   {
    sendsms(noHP,"Air penuh");
    delay(1000);
    digitalWrite(buzzer, HIGH);
    Serial.print("water :Full");
    Serial.print("Status sms  :sending..");
    delay(2000);

   }
  }
  //Send a text message
void sendsms(String nomorHP,String pesan)
  {
   mySerial.print("AT+CMGS=");
   mySerial.write((byte)34);
   mySerial.print(nomorHP);
   mySerial.write((byte)34);
   mySerial.println();
   delay(1000);
   Serial.println();
   mySerial.print(pesan);
   mySerial.write((byte)26);
   mySerial.println();
   delay(2000);
   Serial.println("water full");
  }

Pada sketch diatas ane sengaja tidak mencantumkan jarak dalam penentuan kondisi sebab, penentuan kondisi disesuikan dengan projek masing-masing.baik demikian pembahasan projek ini kurang lebih mohon maaf...kalau ada yang kurang mohon di koreksi yoo...Terima Kasih

SEMOGA BERMANFAAT ...Sampai jumpa pada bahasan berikutnya. 


Thursday, April 20, 2017

KONFIGURASI RASPBERRY Pi MELALUI PC/Leptop

Pada artikel ini membahas tentang cara mengkoneksikan dan mengakses Raspberry Pi melalui PC/Laptop. Dengan mengakses melalui PC/Laptop berarti kita tidak perlu lagi mengkoneksikan keyboard, mouse, display HDMI atau bahkan WiFi dongle ke board Raspberry Pi. Semua tugas perangkat tadi “digantikan” dengan perangkat yang ada di PC/Laptop


Komponen yang digunakan adalah :

1. Kabel LAN/Ethernet CAT5 (saya gunakan tipe cross)
2. MicroSD card reader
3. PC/Laptop dengan port ethernet/LAN dengan OS Windows 7
4. Software PuTTY
5. Raspberry Pi yang sudah terinstall Debian Wheezy


Langka-langkah dalam Setup koneksi Raspberry ke PC/Laptop

1. Hubungkan Raspberry Pi ke port Ethernet yang ada di Laptop menggunakan kabel Ethernet dan hubungkan power Raspberry. Kemudian pada Laptop buka Control Panel\Network and Internet\Network and Sharing Center,  perhatikan bahwa akan muncul koneksi baru (biasanya dengan nama Local Area Connection). Pastikan bahwa ini ada benar koneksi dari Raspberry Pi.


2. Berikutnya periksa Properties dari Local Area Connection, klik pada Local Area Connection, klik Properties kemudian pilih Internet Protocol Version 4 (TCP/IPv4) dan klik Properties. Pilih Obtain an IP address automatically, dan Obtain DNS server address automatically, kemudian klik OK.


3. Selanjutnya pada Laptop, buka cmd dan pastikan prompt berada  pada lokasi   C://windows/system32/. Kemudian cek konfigurasi koneksi jaringan dengan mengetik perintah ipconfig. Pada tampilan yang dihasilkan cek alamat IP pada konfigurasi Local Area Connection (pada gambar dilingkari kuning). Pada contoh kali ini alamat yang dihasilkan 169.254.15.196, catat alamat ini.

4. Langkah berikutnya matikan Raspberry Pi, kemudian ambil microSD yang terpasang pada slot memory. Masukkan microSD ke card reader yang terpasang pada laptop, dan buka, anda akan melihat beberapa file sistem yang tersimpan pada microSD. Hati-hati dengan file-file ini, jangan sampai ada yang terhapus!!!

5. Berikutnya adalah memberikan alamat IP statis pada Raspberry Pi. Buka file dengan nama cmdline.txt, kemudian tambahkan pada akhir file tersebut ip=169.254.15.191. Alamat ini hanya contoh, sesuaikan dengan alamat yang anda dapatkan pada langkah 3 tadi. Alamat yang diisikan harus unik, tapi masih dalam range subnet mask. Untuk ini, anda cukup mengganti angka terakhir pada alamat IP yang ada pada Laptop. Contoh: pada laptop 169.254.15.1 anda bisa ganti 169.254.15.3.


6. Simpan file yang sudah di edit tadi. Kemudian masukkan kembali microSD ke slot Raspberry Pi dan nyalakan dan tunggu beberapa detik hingga proses booting selesai dan koneksi telah siap.

7. Untuk mengecek apakah seting koneksi berhasil, pada Laptop buka cmd kemudian ping ke alamat Rapberry Pi yang anda set tadi. Jika berhasil tampilan akan tampak seperti berikut. Pada tahap ini berarti seting koneksi Raspberry Pi ke Laptop selesai.




Akses Raspberry Pi dari Laptop dengan PuTTY

Untuk akses Raspberry Pi dari Laptop secara SSH (shell) bisa dilakukan dengan PuTTY.

1. Buka program PuTTY, pada dialog yang muncul isikan alamat IP Raspberry dengan port 22 dan Save kemudian Open.


2. Klik yes pada dialog Security Alert yang muncul, kemudian lakukan proses login seperti biasa. login: pi, password: raspberry.

3. Raspberry Pi sudah siap dieksplor.









Monday, April 10, 2017

BERMAIN DENGAN MOTOR STEPPER

Kali ini kita akan membahas tentang motor stepper, langsung saja 
1. Sebelum membuat motor stepper agar bisa bekerja dalam sebuah sistem maka diperlukan komponen tambahan dalam mendukung sistem motor stepper tersebut. adapun komponennya antara lain : 

- Modul ULN2003  
- Arduino Uno
- Motor Stepper DC
- Batterai 

2.  Setelah komponen di atas telah lengkap selanjutnya rangkai semua komponene seperti gambar berikut :






3. Selanjutnya apabila komponen - komponen telah dirangkai dengan arduino uno selanjutnya upload koding dibawa ini :



#include <Stepper.h>

const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your bike


// initialize the stepper library on pins 8 through 11:
Stepper myStepper (stepsPerRevolution, 8, 9, 10, 11);

STEPCOUNT int = 0; // number of steps the motors has taken

void setup () {
   // nothing to do inside the setup
}

void loop () {
   // read the sensor value:
   int sensorReading = analogRead (A0);
   // map it to a range from 0 to 100:
   int motorSpeed = map (sensorReading, 0, 1023, 0, 100);
   // set the engine speed:
   if (motorSpeed> 0) {
     myStepper.setSpeed (motorSpeed);
     // step 1/100 of a revolution:
     myStepper.step (stepsPerRevolution / 100);
   }
}


Setelah koding diupload menggunakan IDE ke arduino uno maka selanjutnya lihat hasilnya sebagaimana tercantum dalam video berikut :




Semoga bermanfaat

Saturday, February 18, 2017

MENDETEKSI KEKERUHAN AIR DENGAN ARDUINO

Pada kesempatan kali ini kita membahas bagaimana mengukur kekeruhan air dengan arduino,
langsung saja sensor dan komponen apa saja yang dibutuhkan :

1. Komponen dan Sensor
- Arduino Uno
- Sensor GE Turbidity
- LGZD sensor
- LCD 16x2
- LCM 1602 I2C

2. Setelah komponen dan sensor yang diperlukan telah tersedia langkah berikutnya merangkai semua     komponen dan sensor seperti berikut :

 - Rangkaian LCM1602I2C to Arduino Uno,


   
 - Setelah merangkai LCM1602I2C selanjutnya rangkai sensor Turbidity, sensor LGZD dan arduino      Uno sebagaimana tercantum pada gambar berikut :
   
 







  3. Setelah komponen dan sensor diatas dirangkai menjadi satu maka langkah selanjutnya upload             program ke IDE arduino. namun sebelum mengaupload koding/sketch pastikan bahwa alamat I2C       to arduino telah ditemukan apabila belum maka lihat postingan saya sebelumnya disini , jika I2C-       nya telah ada selanjutnya upload koding dibawa ini :
      


#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7,3, POSITIVE);
//Ganti alamat 0x27 dengan alamat I2C anda yang telah ditemukan dipada serial monitor
int led = 2; 
int buzzer = 4;
int sensor_ntu = 2; // Connect turbidity sensor to Digital Pin 2

void setup(){
  lcd.begin (16,2); //LCD untuk ukuran 16x2
  }
void loop(){
  if(digitalRead(sensor_ntu)==LOW ){       //read sensor signal 
   digitalWrite(led, HIGH);   // if sensor is LOW, then turn on
   digitalWrite(buzzer,HIGH);
   lcd.setCursor(0, 0); //baris pertama
   lcd.print("SANGAT KERUH"); 
   delay (2000);
   }else{
   lcd.clear();
   digitalWrite(ledPin, LOW);    // if sensor is HIGH, then turn off the led
   digitalWrite(buzzer,LOW);
   lcd.setCursor(0, 1); //baris kedua
   lcd.print("NORMAL");
   delay (2000);
   lcd.clear();
     }

}
######################################################################
Lebih jelas simak video berikut :





SEMOGA BERMANFAAT ...Sampai jumpa pada bahasan berikutnya. 

Saturday, February 4, 2017

CARA MENYAMBUNGKAN I2C DENGAN LCD 16X2 KE ARDUINO UNO

Komponen yang harus disiapkan :
- 1 Arduino Uno
- 1 LCD 16x2
- Kabel Jumper secukupnya

Adapun Langka-langkanya sebagai  berikut :


1. Rangkain komponen seperti pada gambar beriku :












2. Pastikan anda telah memiliki Library Licuit Cristal_I2C, jika belum Download Library Licuit       Cristal_I2C di alamat dibawa ini :
   Klik disini untuk download Library Licuit Cristal_I2C


3. Selanjutnya mencari berapa alamat I2C anda, dengan cara tuliskan koding dibawa ini ke IDE arduino kemudian di verifikasi dan upload ke arduino

#include <Wire.h>
void setup() {
Serial.begin (115200);
while (!Serial)
{
}
Serial.println ();
Serial.println ("I2C Scanner. Scanning ...");
byte count = 0;
Wire.begin();
for (byte i = 1; i < 120; i++)
{
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0)
{
Serial.print ("Ditemukan Alamat: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX);
Serial.println (")");
count++;
delay (1);
}
}
Serial.println ("Selesai.");
Serial.print ("Ditemukan ");
Serial.print (count, DEC);
Serial.println (" device(s).");
}
void loop()
{
}

setelah upload maka lihat di serial monitor alamat I2C

3. setalah menemukan alamat I2C maka selanjutnya tuliskan koding dibawa ini dan cantumkan juga alamat I2C nya


#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27 ,2,1,0,4,5,6,7,3, POSITIVE);
//Ubah alamat 0x27 dengan alamat i2C anda yang telah ditemukan dipada serial monitor
void setup(){
  lcd.begin (16,2); //LCD untuk ukuran 16x2
  }
void loop(){
  lcd.setCursor(0, 0); //baris pertama
  lcd.print("TEST LCD i2C");  
  lcd.setCursor(0, 1); //baris kedua
  lcd.print("cobaproyek.blogspot.co.id ");
}

  
Selamat mencoba

Friday, January 13, 2017

MEMBUAT BLING BLING LED DENGAN ARDUINO


DASAR PEMOGRAMAN ARDUINO

MEMBUAT LED KEDAP KEDIP DENGAN ARDUINO

Jumpa lagi, kali ini saya akan membahas mengenai pemograman dasar arduino untuk membuat LED berkedip – kedip programnya sangat sederhana sehingga cocok untuk mereka yang baru mengenal arduino

Dalam membuat LED bisa berkedip tentu membutuhkan beberapa komponen :

1.   LED
LED merupakan komponen elektronika yang dapat memancarkan cahaya monokromatikketika diberi tegangan. LED termasuk dalam keluarga Dioda yang terbuat dari bahan semikonduktor










LED yang diperlukan hanya 2 buah saja untuk langka awal dalam membuat bling – bling LED


2.  ARDUINO UNO


Arduino merupakan sebuah pengendali mikro single-board yang bersifat open-source, yang dirancang untuk memudahkan pengguna elektronik dalam merangkai sebuah sistem dalam berbagai bidang. Hardware yang dimilikinya memiliki prosesor Atmel AVR dan Softwarenya memiliki bahasa pemograman tersendiri.



Gambar Arduino Uno


Setelah 2 komponen dan mikrokontroler diatas telah ada, maka selanjutnya yang dibutuhkan adalah


3.  Leptop
    




4.  Protoboard
Protoboard adalah board yang digunakan untuk membuat rangkaian elektronik sementara dengan tujuan untuk uji coba atau prototipe tanpa harus menyolder,dengan memanfaatkan protobord komponen-komponen elektronik yang dipakai tidak akan rusak dan dapat digunakan kembali untuk membuat rangkaian yang lain.




5. Kabel Jumper

    Kabel jumper yang diperlukan jangan terlalu banyak secukupnya saja sesuai kebutuhan


Setelah komponen diatas telah dikumpulkan langkah berikutnya adalah merakitnya berdasarkan skema rangkaian dibawa ini


skema rangkaian 



Keterangan skema rangkaian diatas :
Sambungkan pin 2 pada arduino ke kaki positif LED 1 pada portoboard dengan menggunakan kabel jumper
Sambungkan pin 3 pada arduino ke kaki positif LED 2 pada portoboard
Sambungkan pin Ground  pada arduino ke kaki negatif LED 1 yang diparalelkan dengan kaki negatif LED 2 diportoboard

Setelah semua skema rangkain diatas telah selesai dirangkai maka upload program berikut ke dalam arduino


void setup() {
  // initialize digital pin 2,3 as output.'
   pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
  digitalWrite(2, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(500);              // wait for a second
  digitalWrite(3, HIGH);   // turn the LED on (HIGH is the voltage level)  
  delay(500);   // wait for a second
digitalWrite(2,LOW);// turn the LED off by making the voltage LOW
delay(500); // wait for a second
digitalWrite(3,LOW);// turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}




lebih jelas simak video berikut :