Archive for Oktober 2016
Kali ini saya akan memberikan sedikit tips mengenai Cara koding untuk Input Digital Arduino
>>Cara kerjanya yaitu Bagaimana bila kitta menekan Tombol / Push Button,maka Arduino akan menerimanya<<
-Sebelum kita memulai Prakter Percobaan,Siapkan alat dan bahan :
---------------------------------------------------------------------------------------------------------------------------------
int pb = 2; // Posisi pin untuk push button di pin 2
void setup() {
Serial.begin(9600);
pinMode(pb,INPUT); // Konfigurasi pb (pin 2) sebagai input
}
void loop() {
int aktifpb = digitalRead(pb);
if (aktifpb == 1){
Serial.println("pb on"); // Kalimat yang muncul jika PB ditekan
} else{
Serial.println("pb off"); // Kalimat yang muncul jika PB tidak ditekan
}
delay (100); // Jeda selama 100ms
}
BENTUK RANGKAIANNYA
PENGEMBANGAN LAINNYA???
///ini diaaaa\\\
int pb = 13;
int led1 = 12;
int led2 = 11;
int led3 = 10;
void setup()
{
Serial.begin(9600);
pinMode(pb, INPUT);//konfigurasi tombol( pin 13 )sebagai input
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop(){
int aktifpb = digitalRead(pb);
if (aktifpb == 1){
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
delay (2000);
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
delay (2000);
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
delay (2000);
Serial.println("tombol ditekan, traficlight nyala"); // Kalimat yang muncul jika PB ditekan
}
else{
Serial.println("pb off"); // Kalimat yang muncul jika PB tidak ditekan
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
delay(1000);
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
delay(1000);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
}
}
>>Cara kerjanya yaitu Bagaimana bila kitta menekan Tombol / Push Button,maka Arduino akan menerimanya<<
-Sebelum kita memulai Prakter Percobaan,Siapkan alat dan bahan :
- Arduino Uno
- Tacticle Switch 2 kaki
- Resistor 10k Ω
- Kabel Jumper
- Breadboard
LALU :
1.Masuk program ARDUINO
2.MASUKAN PROGRAM SEPERTI DI BAWAH INI
int pb = 2; // Posisi pin untuk push button di pin 2
void setup() {
Serial.begin(9600);
pinMode(pb,INPUT); // Konfigurasi pb (pin 2) sebagai input
}
void loop() {
int aktifpb = digitalRead(pb);
if (aktifpb == 1){
Serial.println("pb on"); // Kalimat yang muncul jika PB ditekan
} else{
Serial.println("pb off"); // Kalimat yang muncul jika PB tidak ditekan
}
delay (100); // Jeda selama 100ms
}
BENTUK RANGKAIANNYA
- Tentukan Port COM
arduino, kalo agan pake PC, pilih COM selain COM1. Dan jangan lupa kita
menggunakan arduino UNO, pastikan di Tools>Board>Arduino/Genuino
Uno.

- Sekarang arduino connected dengan komputer. Klik Verify untuk compile program.
- upload program
![]() |
| Klik ikon yang diberi tanda merah untuk mengupload. |
- Sesudah terupload, buka serial monitor Tools>Serial Monitor atau melalui shortcut Ctrl+Shift+M atau bisa juga dengan klik icon di samping kanan.
- Akan muncul jendela sebagai berikut, jika switch tidak ditekan maka muncul "pb off" jika switch ditekan muncul "pb on". Untuk kalimatnya bisa diganti sesuai keinginan di bagian program utama Serial.println("ini bisa diganti");
PENGEMBANGAN LAINNYA???
///ini diaaaa\\\
int pb = 13;
int led1 = 12;
int led2 = 11;
int led3 = 10;
void setup()
{
Serial.begin(9600);
pinMode(pb, INPUT);//konfigurasi tombol( pin 13 )sebagai input
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop(){
int aktifpb = digitalRead(pb);
if (aktifpb == 1){
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
delay (2000);
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
delay (2000);
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
delay (2000);
Serial.println("tombol ditekan, traficlight nyala"); // Kalimat yang muncul jika PB ditekan
}
else{
Serial.println("pb off"); // Kalimat yang muncul jika PB tidak ditekan
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
delay(1000);
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
delay(1000);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
}
}
- Bila pb tidak di tekan , maka keadanyaa lampu flip flop
- Bila pb di tekan,akan nyala trafficLight 1 kali
Input Digital Arduino
Fungsi fungsi yg tersedia untuk komunikasi serial Arduino
- if (Serial) : Untuk mengecek apakah Port sudah siap
- Serial.available() : Untuk mengecek apakah data sudah ada di buffer penerima
- Serial.begin() : untuk mengeset kecepatan transmisi data
- serial.end() : Untuk menon-aktifkan pin rx dan tx sbg fungsi serial dan kembali sbg pin I/O
- Serial.find() : mencari string dlm buffer data
- Serial.findUntil(): mencari buffer data sampai data dgn panjang/terminator nya yg diberikan ditemukan
- Serial.flush(): menunggu data terkirim semua
- Serial.parseFloat(): mengambil data float pertama dari data di buffer serial.
- serial.parseInt(): mengambil data integer pertama dari data di buffer serial.
- Serial.peek(): mengambil data berikutnya di bufer penerima
- Serial.print() : mengirim data ASCII
- Serial.println() : mengirimdata ASCII + CR,LF (kode enter)
- Serial.read(): membaca data yg diterima
- Serial.readBytes(): membaca data byte yg diterima
- Serial.readBytesUntil()
- Serial.setTimeout(): mengeset batas maksimum waktu tunggu(timeout) transmisi data.
- Serial.write() : mengirim data byte (numerik)
- Serial.serialEvent(): fungsi ini akan dipanggil jika data datang/diterima.berlaku spt interupsi serial.
Sebelum kita memulai latihan pemrograman serial arduino kita perlu tahu ttg menu serial Monitor yg tersedia spt tampak pada gambar dibawah ini:

Gambar 1. Menu Serial Monitor
Serial Monitor digunakan untuk mentransfer data dari PC ke Arduino board dan menerima data dari arduino board.
Selain dengan tool serial monitor yg terdapat pada IDE arduino anda juga bisa menggunakan tool serial lainya seperti hyperterminal, putty dll untuk mengirim dan menerima data pada PC Anda.
Langkah membuat program sketch komunikasi serial
1. set baud rate misal 9600 dgn fungsi serial.begin(9600) dlm fungsi void setup(). Speed yg tersedia antara lain 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800,38400, 57600, 115200 (liat dokumentasi tiap jenis arduino).
2. untuk menerima data cek apakah ada data di Rx Buffer dgn fungsi serial.avalable()
jika data tersedia return value = true jika data kosong return value = false.
if( serial.available() > 0)
3. mengambil data dari buffer penerima : serial.read() , return valuenya adalah 1 byte data pertama yg ada di RX Buffer .
misal byte pertama RX buffer berisi char 2
maka char data = serial.read(); //data = ‘2’ –> karakter
byte data = serial.read(); // data = 50 –> numerik
4. Untuk mengirim data bisa menggunakan
serial.print(dataygdikirim) : mengirim data ascii
serial.println(dataygdikirim) , ditambahkan kode enter (CR dan LF)
serial.write(dataygdikirim) : mengirim data byte
Contoh serial.print(‘A’) akan mengirim huruf A
serial.print(65) akan mengirim 2 byte berisi code Ascii ‘6’ dan ‘5’ (aktual yg dikirim 54 dan 53)
serial.write(65) akan mengirim 1 byte 65 (aktual yg dikirim numerik 65)
serial.write(data) adalah pengganti syntax Serial.print(data, BYTE) versi sebelumnya. Parameter data pada serial.write adalah angka 1 byte ( 0-255)
CONTOH PROGRAM :
-tombol a .. running ke kanan
-tombol b .. running ke kiri
-tombol c.. runinng dari tengah ke kanan kiri
int lampu = 13;
int lampu1 = 12;
int lampu2 = 11;
int lampu3 = 10;
int lampu4 = 9;
int out;
void setup()
{
Serial.begin(9600);
pinMode(lampu, OUTPUT);
pinMode(lampu1, OUTPUT);
pinMode(lampu2, OUTPUT);
pinMode(lampu3, OUTPUT);
pinMode(lampu4, OUTPUT);
}
void loop()
{
if (Serial.available()>0)
{
int baca = Serial.read();
if (baca =='a')
{
out=1;
}
if (baca =='b')
{
out=0;
}
if (baca =='c')
{
out=2;
}
if(out==1)
digitalWrite(lampu,HIGH);
delay (100);
digitalWrite(lampu1,HIGH);
digitalWrite(lampu,LOW);
delay (100);
digitalWrite(lampu2,HIGH);
digitalWrite(lampu1,LOW);
delay (100);
digitalWrite(lampu3,HIGH);
digitalWrite(lampu2,LOW);
delay (100);
digitalWrite(lampu4,HIGH);
digitalWrite(lampu3,LOW);
delay (100);
digitalWrite(lampu4,LOW);
Serial.println("LED NYALA kanan");
}
else if(out=="0")
{
digitalWrite(lampu,LOW);
digitalWrite(lampu4,HIGH);
delay (100);
digitalWrite(lampu3,HIGH);
digitalWrite(lampu4,LOW);
delay (100);
digitalWrite(lampu2,HIGH);
digitalWrite(lampu3,LOW);
delay (100);
digitalWrite(lampu1,HIGH);
digitalWrite(lampu2,LOW);
delay (100);
digitalWrite(lampu,HIGH);
digitalWrite(lampu1,LOW);
delay (100);
digitalWrite(lampu,LOW);
Serial.println("LED NYALA kiri");
}
else if(out==2)
{
digitalWrite(lampu,LOW);
digitalWrite(lampu2,HIGH);
delay (100);
digitalWrite(lampu3,HIGH);
digitalWrite(lampu2,LOW);
digitalWrite(lampu1,HIGH);
delay (100);
digitalWrite(lampu1,LOW);
digitalWrite(lampu3,LOW);
digitalWrite(lampu,HIGH);
digitalWrite(lampu4,HIGH);
delay (100);
digitalWrite(lampu,LOW);
digitalWrite(lampu4,LOW);
delay (100);
digitalWrite(lampu1,LOW);
digitalWrite(lampu3,LOW);
digitalWrite(lampu,HIGH);
digitalWrite(lampu4,HIGH);
delay (100);
digitalWrite(lampu3,HIGH);
digitalWrite(lampu2,LOW);
digitalWrite(lampu1,HIGH);
digitalWrite(lampu,LOW);
delay (100);
digitalWrite(lampu3,LOW);
digitalWrite(lampu2,HIGH);
digitalWrite(lampu1,LOW);
delay (100);
Serial.println("LED NYALA tengah");
}
}


