Mengendalikan Peralatan Listrik Via Internet/Web Dengan Starduino Board

starduino_webrelay

Mengontrol peralatan listrik melalui internet/web dapat dilakukan dengan beberapa cara baik yang sederhana ataupun yang sedikit lebih canggih. Pada tulisan ini akan saya sampaikan sekilas tentang bagaimana mengontrol relay melalui internet/web dengan menggunakan Starduino Board yang terhubung ke sebuah PC melalui port serial.

PC yang digunakan haruslah memiliki program web-server yang sedang running (online). Pada eksperimen ini saya menggunakan paket program WAMP (Windows-Apache-MySQL-PHP) versi 2.2 yang dapat didownload dari situsnya di: http://www.wampserver.com/en/.

Prinsip kerja teknik pengontrolan relay via internet/web ini dapat dijelaskan sebagai berikut. User melakukan pengontrolan (update status) peralatan listrik (relay) melalui perantaraan sebuah halaman web yang ditulis menggunakan bahasa scripting PHP. Melalui user-interface yang tersedia, user dapat memilih kondisi/status relay dengan meng-klik checkbox untuk masing-masing relay (Relay-1 s/d Relay-8). Selanjutnya, untuk meng-update kondisi/status Relay-1 s/d Relay-8, user harus meng-klik tombol Update Relay Status.

Setelah tombol Update Relay Status di-klik, maka scripting PHP akan membaca nilai checkbox untuk Relay-1 s/d Relay-8 dan menjalankan sebuah program aplikasi yang akan mengirimkan data kondisi/status relay kepada Starduino Board melalui port serial RS232. Jika perintah terkirim dengan baik dan dikenali oleh Starduino Board, maka kondisi/status Relay-1 s/d Relay-8 akan di-update sesuai dengan keingingan user. Adapun rogram aplikasi yang dieksekusi oleh scripting PHP adalah program RSerial.exe.

Program RSerial.exe
Program ini saya buat menggunakan kompiler FreePascal versi 2.6.0. Fungsi program ini adalah mengirimkan perintah melalui port serial kepada Starduino Board. Pada eksperimen ini, Starduino Board terhubung ke PC melalui port serial COM1 dengan nilai baudrate 9600.

Untuk mengaktifkan Relay-1 dan Relay-3, maka perintahnya adalah:

>RSerial.exe COM1 9600 R1 R3

dan untuk mematikan Relay-3 serta mengaktifkan Relay-7, maka perintahnya adalah:

>RSerial.exe r3 R7

Huruf R (kapital) menyatakan ON dan huruf r menyatakan OFF. Nomor yang mengikuti huruf R atau r adalah nomor relay.

Untuk mengeksekusi program RSerial.exe, digunakan perintah PHP exec(). Berikut adalah penggalan scripting PHPnya.

if (!empty($_POST[‘relay1’]))
    $R1 = $_POST[‘relay1’];
else
    $R1 = “off”;
if (!empty($_POST[‘relay2’]))
    $R2 = $_POST[‘relay2’];
else
    $R2 = “off”;
if (!empty($_POST[‘relay3’]))
    $R3 = $_POST[‘relay3’];
else
    $R3 = “off”;
if (!empty($_POST[‘relay4’]))
    $R4 = $_POST[‘relay4’];
else
    $R4 = “off”;
if (!empty($_POST[‘relay5’]))
    $R5 = $_POST[‘relay5’];
else
    $R5 = “off”
if (!empty($_POST[‘relay6’]))
    $R6 = $_POST[‘relay6’];
else
    $R6 = “off”;
if (!empty($_POST[‘relay7’]))
    $R7 = $_POST[‘relay7’];
else
    $R7 = “off”;
if (!empty($_POST[‘relay8’]))
    $R8 = $_POST[‘relay8’];
else
    $R8 = “off”;

$CMD = “”;
if ($R1==”on”) $CMD = $CMD . “R1”; else $CMD = $CMD . “r1”;
if ($R2==”on”) $CMD = $CMD . ” R2″; else $CMD = $CMD . ” r2″;
if ($R3==”on”) $CMD = $CMD . ” R3″; else $CMD = $CMD . ” r3″;
if ($R4==”on”) $CMD = $CMD . ” R4″; else $CMD = $CMD . ” r4″;
if ($R5==”on”) $CMD = $CMD . ” R5″; else $CMD = $CMD . ” r5″;
if ($R6==”on”) $CMD = $CMD . ” R6″; else $CMD = $CMD . ” r6″;
if ($R7==”on”) $CMD = $CMD . ” R7″; else $CMD = $CMD . ” r7″;
if ($R8==”on”) $CMD = $CMD . ” R8″; else $CMD = $CMD . ” r8″;

exec(“RSerial.exe COM1 9600” . $CMD, $Output);

starduino_drv08_webSebagai pelengkap, pada eksperimen ini saya juga menggunakan sebuah LCD 16×2 karakter untuk menampilkan kondisi Relay-1 s/d Relay-8. Gambar di samping adalah foto hardware yang saya gunakan dalam eksperimen yang terdiri dari Starduino Board, Modul Relay DRV08, dan Modul LCD 16×2.

Pada eksperimen ini yang ditunjukkan adalah sebatas tentang bagaimana melakukan pengontrolan relay via internet/web. Pada eksperimen ini tidak membahas tentang bagaimana melakukan monitoring input yang dapat berupa input logika dengan kondisi on/off ataupun input yang berupa sensor seperti sensor suhu, sensor cahaya, sensor jarak, dan lain sebagainya.

Setelah eksperimen ini, saya ingin melakukan eksperimen untuk monitoring input logika, input senor suhu, sensor jarak, atau yang lainnya. Lumayan sambil belajar pemrograman PHP. Dan tentunya saya juga ingin bereksperimen dengan menggunakan embedded web-server menggunakan Arduino atau Raspberry Pi. Semoga bisa segera terlaksana. 🙂

Video Demo
Anda dapat menyaksikan video pengujian sistem ini melalui YouTube. Berikut adalah linknya:

http://youtu.be/-73vNnnLTrE

 

Bagi Anda yang berminat dengan sistem ini atau modul-modul yang digunakan dalam eksperimen ini, yakni Starduino Board, Modul Relay DRV08, dan Modul LCD 16×2, silakan menghubungi saya melalui email ke info@teknikelektrolinks.com. Untuk informasi harga dan pemesanan, silakan mengunjungi situsnya di: http://teknikelektrolinks.com.

Semoga bermanfaat dan selamat berkarya!

🙂

Advertisements

Tutorial Starduino: Membaca Data Dari GPS dan Menampilkannya di LCD

starduino_gps_573

Gambar di samping adalah foto eksperimen Starduino yang sedang membaca data dari GPS dan menampilkannya di layar LCD 16×2 karakter. Modul GPS yang digunakan adalah Parallax CIROCOMM PMB-648 GPS module.

Modul GPS tipe ini tergolong mudah untuk diantarmukakan dengan mikrokontroler (Starduino Board) karena memiliki output berupa data serial dengan level tegangan TTL dan RS232. Adapun baudrate yang digunakan adalah 4800 (default).

Jika menggunakan Starduino Board, pin TX/RX-TTL modul GPS bisa langsung dihubungkan dengan pin-1 (RX) dan pin-2 (TX) pada Starduino Board. Sedangkan pin TX/RX-RS232 modul GPS bisa dihubungkan ke pin-2 (RX) port DB9 Starduino Board dan pin-3 (TX) port DB9 Starduino Board. Pada eksperimen ini, saya menghubungkan pin TX modul GPS ke pin-1 Starduino Board.

Modul GPS PMB-648 dari Parallax ini mendukung protokol data NMEA0183 versi 2.2, untuk lebih detil tentang protokol data NMEA0183, silakan download datasheetnya melalui link berikut ini: http://www.tronico.fi/OH6NT/docs/NMEA0183.pdf.

Sesaat setelah modul GPS diberi catudaya, maka modul GPS akan mengirimkan data-data secara terus-menerus dengan format yang sesuai dengan protokol data NMEA0183. Berikut adalah tampilan data yang dikirimkan oleh modul GPS sesaat setelah modul GPS diberi catudaya yang saya ‘tangkap’ menggunakan program DockLight V1.9.

docklight_gps

Pada tutorial singkat ini hanya akan ditampilkan data mengenai posisi pada derajad lintang dan bujur dan beberapa data tambahan seperti waktu/jam, ketinggian dari permukaan air laut, dan jumlah satelit yang terbaca. Adapun data yang harus diambil adalah data pada kalimat berawalan $GPGGA seperti yang ditunjukkan pada screenshot di atas.

GP adalah Global Positioning. Kalimat yang diawali dengan $GP berarti kalimat yang berhubungan dengan posisi global seperti derajad lintang dan bujur, ketinggian, dll.

GGA adalah Global Positioning System Fix Data. Time, Position and fix related data
for a GPS receiver
.

Berikut adalah keterangan selengkapnya mengenai format kalimat $GPGGA.

nmea0183_gga

Setelah mengetahui informasi-informasi di atas, maka tugas program kontroler adalah menerima dan menampung data yang diterima dari modul GPS dan mengidentifikasi kalimat $GPGGA yang selanjutnya data-data yang terkandung dalam kalimat $GPGGA tersebut kita ambil dengan memilah-milah string yang terpisahkan oleh tanda baca koma (,).

Berikut adalah penggalan-penggalan program yang terdiri dari deklarasi variabel-variabel yang digunakan, perintah pembacaan data serial dan penyimpanan pada buffer data serial, perintah pemilahan data-data string yang terpisahkan oleh tanda baca koma, dan perintah tampilan pada LCD 16×2.

Deklarasi Variabel

#include <LiquidCrystal.h>
#include <MsTimer2.h>

int i=0, j=0, n=0;
char ch;
char *char_ptr;
char inbuf[250];
char *gps[16];
int inbuf_len = 0;
boolean CRLF = false;
unsigned long XWAIT;

LiquidCrystal LCD(7,6,5,4,3,2);

Baca Data Serial – Simpan Dalam Buffer Data Serial

while (!CRLF && XWAIT>0)
{
  if (Serial.available())
  {
    inbuf[inbuf_len] = Serial.read();
    inbuf_len++;
    if (strstr(inbuf, “\r\n”))
      CRLF = true;
  }
  XWAIT—;
}

Pemilahan Data String

gps[0] = strtok(inbuf, “,”);
for (i=1; i<10; i++)
  gps[i] = strtok(NULL, “,”);

Menampilkan Data Pada LCD 16×2

LCD.clear();
LCD.print(“Jam Sekarang:”);
LCD.setCursor(0, 1);
LCD.print(gps[0]);
LCD.print(” UTC”);
delay(2000);

LCD.clear();
LCD.print(“Lintang:”);
LCD.setCursor(0, 1);
LCD.print(gps[1]);
LCD.print(” LS”);
delay(2000);

LCD.clear();
LCD.print(“Bujur:”);
LCD.setCursor(0, 1);
LCD.print(gps[3]);
LCD.print(” BT”);
delay(2000);

LCD.clear();
LCD.print(“Jumlah Satelit:”);
LCD.setCursor(0, 1);
LCD.print(gps[6]);
LCD.print(” Satelit”);
delay(2000);

LCD.clear();
LCD.print(“Ketinggian:”);
LCD.setCursor(0, 1);
LCD.print(gps[8]);
LCD.print(” Meter”);
delay(2000);

starduino_gps

Video Demo
Anda dapat menyaksikan video demo hasil eksperimen ini melalui link berikut ini:

http://youtu.be/qyZgNSsgGu4.

Demikianlah tutorial singkat pembacaan data dari modul GPS Parallax PMB-648 menggunakan Starduino Board dan menampilkan data jam, derajad lintang dan bujur, jumlah satelit terbaca, dan ketinggian pada LCD 16×2 karakter.

Untuk informasi harga dan pemesanan Starduino Board, silakan mengunjungi situsnya di: http://teknikelektrolinks.com dan http://teknikelektrolinks.com/pemesanan.htm.

Semoga bermanfaat.

Selamat belajar dan selamat berkarya!

🙂

Tutorial Starduino: Memprogram Starduino/Arduino Ala PLC Dengan LDmicro

starduino_ldmicro

LDmicro adalah sebuah software pemrograman mikrokontroler keluarga PIC dan AVR yang menggunakan bahasa ladder seperti layaknya PLC atau Smart-Relay. Oleh karenanya software ini sangat cocok untuk praktisi listrik yang lebih familiar dengan ladder ketimbang mnemonic assembler dan bahasa pemrograman tingkat tinggi seperti BASIC, C, atau PASCAL.

Program LDmicro mampu menghasilkan file hexa untuk mikrokontroler tipe PIC dan AVR, termasuk di antaranya adalah ATmega8 seperti yang digunakan pada Starduino Board. Hasil kompilasi program LDmicro inilah yang nantinya akan kita program ke dalam memori program ATmega8 pada Starduino Board. Program LDmicro dapat di download dari situsnya di: http://cq.cx/ladder.pl.

Pada tutorial singkat ini akan disampaikan mengenai bagaimana membuat program ladder sederhana untuk mengontrol keluaran dengan menggunakan tombol ON dan tombol OFF. Setelah membuat ladder dengan benar, maka program dapat dikompilasi untuk menghasilkan file hexa yang selanjutnya akan diprogram ke dalam Starduino Board.

Mari kita perhatikan screenshot di atas. XON adalah kontak input normally-closed yang mewakili pin 14 pada ATmega8 atau pin PB0 atau pin 8 pada layout Starduino Board. Oleh karena input pada mikrokontroler adalah aktif-low, maka XON dibuat sebagai normally-closed atau negated. Kontak XON pada ladder tersebut berfungsi sebagai tombol untuk menyalakan output YLED.

XOFF adalah kontak input normally-opened yang mewakili pin 15 pada ATmega8 atau pin PB1 atau pin 9 pada layout Starduino Board. Karena PB1 adalah aktif-low, maka XOFF dibuat sebagai normally-opened. Kontak XOFF pada ladder di atas berfungsi sebagai pemutus yang akan mematikan output YLED.

YLED adalah output berupa LED yang mewakili pin 19 pada ATmega8 atau pin PB5 atau pada Starduino ini adalah LED aktif-high yang terhubung pada pin-13.

Kontak YLED (normally-opened) berfungsi sebagai pengunci yang akan menjadi jalan lewat arus listrik yang akan mempertahankan kondisi ON pada YLED setelah XON dilepas. Jadi, ketika XON ditekan, maka YLED akan ON. Setelah XON dilepas, YLED akan tetap ON. YLED akan OFF jika XOFF ditekan.

Berikut adalah listing program ldstar1.ld

LDmicro0.1
MICRO=Atmel AVR ATmega8 28-PDIP
CYCLE=10000
CRYSTAL=16000000
BAUD=2400
COMPILED=C:\WinAVR\bin\ldstar1.hex

IO LIST
    XOFF at 15
    XON at 14
    YLED at 19
END

PROGRAM
RUNG
    PARALLEL
        CONTACTS XON 1
        CONTACTS YLED 0
    END
    CONTACTS XOFF 0
    COIL YLED 0 0 0
END

Pengesetan Tipe Mikrokontroler dan Parameternya
Starduino Board menggunakan ATmega8, maka pada program LDmicro, pilih tipe mikrokontroler yang sesuai menggunakan menu Settings –> Microcontroller –> ATmega8. Selanjutnya set parameter Crystal Frequency menjadi 16.000000 dan biarkan parameter Cycle Time (ms) = 10.0. Anda bisa mengubahnya menjadi lebih cepat atau lebih lambat sesuai dengan frekuensi clock dan kebutuhan aplikasi Anda.

Kompilasi
Untuk menghasilkan file hexa yang dapat diprogram ke dalam memori program ATmega8. Pilih menu Compile –> Compile. Atau bisa juga menggunakan Compile –> Compile As untuk menyimpan file hexa dengan nama dan lokasi tertentu. Pada contoh ini saya menyimpan file hexa pada direktori C:\WinAVR\bin\ untuk memudahkan proses selanjutnya yakni download file hexa hasil kompilasi ke dalam memori program Starduino Board menggunakan program AVRDUDE.

Download File Hexa ke Starduino Board
Untuk mendownload file hexa ke Starduino Board, kita gunakan program AVRDUDE. Berikut adalah screenshot proses download file hexa ldstar1.hex ke memori program Starduino Board menggunakan AVRDUDE.

starduino_avrdude

Perintah yang digunakan adalah:

C:\WinAVR\bin>avrdude –carduino –pm8 –PCOM1 –b19200 –Uflash:w:ldstar1.hex:i

Starduino Board terhubung ke komputer melalui port serial COM1 dengan baudrate 19200.

Berikut adalah foto pengujian program ladder ON/OFF menggunakan tombol ON dan tombol OFF.

starduino_ldmicro_tes

Video Demo
Video demo hasil eksperimen Starduino Board dan LDmicro dapat dilihat di YouTube. Berikut adalah link-nya: http://youtu.be/rbJdNjAkqpE.

Kesimpulan
Starduino Board yang berbasis ATmega8 dapat diprogram menggunakan program LDmicro. Dengan menggunakan LDmicro, Starduino Board dapat diprogram seperti layaknya sebuah PLC atau Smart-Relay.

Dengan menggunakan AVRDUDE, file hexa hasil kompilasi program LDmicro dapat dimasukkan ke dalam memori program Starduino Board.

Untuk informasi harga dan pemesanan Starduino Board, silakan mengunjungi situsnya di: http://teknikelektrolinks.com.

Selamat berkarya!

🙂

Tutorial Starduino: Fungsi Blinking_LED Untuk LED Status/Indikator

starduino_led

LED Blinking atau LED yang menyala berkedip-kedip sering dijadikan contoh pada awal pembelajaran pemrograman mikrokontroler. Yup, materi awal pemrograman mikrokontroler biasanya adalah bagaimana mengontrol pin digital I/O. Untuk memvisualisasikan kondisi pin digital I/O yang dikontrol, maka dihubungkanlah pin yang dikontrol tersebut ke sebuah LED.

LED dapat dirangkai agar menyala ketika pin digital I/O berlogika 1 (HIGH). Rangkaian LED seperti ini dinamakan rangkaian LED Aktif-HIGH. LED juga dapat dirangkai agar menyala ketika pin digital I/O berlogika 0 (LOW). Rangkaian LED seperti itu dinamakan rangkaian LED Aktif-LOW. Detil rangkaian LED Aktif-High dan LED Aktif-LOW dapat dilihat pada tulisan berikut ini: https://starduino.wordpress.com/2011/12/03/rangkaian-led-aktif-low-dan-led-aktif-high-dan-contoh-program-kontrol-led-untuk-avr-gcc-dan-arduino/. Pada tulisan tersebut diberikan contoh pemrograman pengendalian LED Aktif-HIGH dan LED Aktif-LOW menggunakan Arduino dan AVR-GCC.

Nah, sekarang apakah fungsi sebuah LED pada sebuah sistem? Fungsi sebuah LED pada sebuah sistem adalah sebagai indikator kondisi/tahapan pada suatu proses, sebagai indikator kondisi sebuah output, atau sebagai indikator alarm. Sebagai contoh, jika LED Standby menyala menandakan bahwa sistem sedang dalam kondisi STANDBY. Contoh lain adalah jika LED Heater menyala menandakan bahwa relay/kontaktor heater dalam keadaan ON. Atau jika LED menyala berkedip-kedip cepat menandakan bahwa telah terjadi suatu kesalahan pada sistem.

Nah, pada tulisan Tutorial Starduino kali ini akan dibahas sebuah fungsi yang saya beri nama Blinking_LED() yang berfungsi untuk menyalakan LED secara berkedip-kedip dengan jumlah kedip dan durasi on/off yang dapat diatur melalui parameter-parameter fungsi. Berikut adalah listing program fungsi Blinking_LED().

// Fungsi Blinking_LED untuk Arduino (STARDUINO)
// Parameter:
//   – pin  : nomor pin digital I/O Starduino/Arduino
//   – aLED : tipe LED (HIGH=aktif HI, LOW=Aktif LO)
//   – n    : jumlah blink
//   – dON  : durasi pulsa HIGH (ms)
//   – dOFF : durasi pulsa LOW (ms)
// Oleh Chandra MDE – TEKNIK ELEKTRO LINKS
void Blinking_LED(int pin, int aLED, int n, int dON, int dOFF)
{
pinMode(pin, OUTPUT);
for (int i=1; i<=n; i++)
{
digitalWrite(pin, aLED);
delay(dON);
digitalWrite(pin, !aLED);
delay(dOFF);
}
}

Fungsi Blinking_LED() memiliki 5 buah parameter. Parameter pertama adalah pin yang menyatakan nomor pin digital I/O pada Starduino Board atau Arduino yang dihubungkan dengan rangkaian LED. Parameter kedua adalah aLED. Parameter ini untuk menyatakan bahwa rangkaian yang terhubung ke pin adalah rangkaian LED Aktif-HIGH atau Aktif-LOW.

Parameter ketiga adalah n yang menyatakan jumlah kedipan LED. Parameter selanjutnya adalah dON yang menyatakan durasi LED ON dalam satuan milidetik. Dan parameter terakhir adalah dOFF yang menyatakan durasi LED OFF dalam satuan milidetik.

Setelah mengetahui fungsi masing-masing parameter, saatnya kita menggunakan fungsi tersebut dalam sebuah program. Berikut adalah beberapa contoh penggunaan fungsi Blinking_LED() dalam program.

// Contoh implementasi fungsi
int main()
{
// Blinking LED pada Pin-13 Aktif-HIGH sebanyak 5 kali
// durasi ON 100ms dan durasi OFF 100ms
Blinking_LED(13, HIGH, 5, 100, 100);

// Blinking LED pada Pin-12 Aktif-LOW sebanyak 10 kali
// dengan durasi ON 100ms dan durasi OFF 400ms
Blinking_LED(12, LOW, 10, 100, 400);

// Blinking LED pada Pin-13 Aktif-HIGH sebanyak 3 kali
// dengan durasi ON 500ms dan durasi OFF 500ms
Blinking_LED(13, HIGH, 3, 500, 500);
}

Pada contoh penggunaan pertama akan menghasilkan LED (Aktif-HIGH) berkedip sebanyak 5 kali dengan durasi ON 100ms dan durasi OFF 100ms. Sedangkan pada contoh kedua akan menghasilkan LED (Aktif-LOW) berkedip sebanyak 10 kali dengan durasi ON 100ms dan durasi OFF 400ms. Dan contoh ketiga menghasilkan LED (Aktif-HIGH) berkedip sebanyak 3 kali dengan durasi ON 500ms dan durasi OFF 500ms.

Semoga bermanfaat. Selamat belajar dan selamat berkarya!

Smile

Tutorial Starduino: Mengontrol 4 Relay Dari Komputer Via Komunikasi Serial RS232 Dengan Perantaraan Starduino Board

starduino_drv04_lcd

Pada tutorial Starduino kali ini, kita akan membahas tentang bagaimana mengontrol relay dari komputer melalui port komunikasi serial RS232 dengan menggunakan Starduino Board.

Gambar di samping adalah foto pengujian Starduino Board untuk mengontrol relay dan menampilkan statusnya di LCD 16×2.

Starduino Board, Modul Relay DRV04, dan Modul LCD 16×2 dapat dipesan melalui email ke info@teknikelektrolinks.com atau SMS ke 081231784018 atau BB ke 24B15B64.

Untuk pembelian paket Starduino + Modul DRV04 akan mendapatkan source code sketch Arduino pengontrolan relay melalui port serial + source code program VB.NET lengkap dengan Installer VB.NET 2005 Express Edition.

Untuk memudahkan eksperimen,  berikut adalah tabel perintah pengontrolan relay.

Perintah Aksi
‘A’ RELAY 1 ON
‘1’ RELAY 1 OFF
‘B’ RELAY 2 ON
‘2’ RELAY 2 OFF
‘C’ RELAY 3 ON
‘3’ RELAY 3 OFF
‘D’ RELAY 4 ON
‘4’ RELAY 5 OFF

Berikut adalah looping utama program yang berfungsi menerima data dari port serial dan mengeksekusi perintah sesuai data yang diterima dari komputer.

if (Serial.available())
{
  char inChar = Serial.read();
  if (inChar==’A’)
    digitalWrite(RL1, HIGH);
  else if (inChar==’1′)
    digitalWrite(RL1, LOW);
  else if (inChar==’B’)
    digitalWrite(RL2, HIGH);
  else if (inChar==’2′)
    digitalWrite(RL2, LOW);
  else if (inChar==’C’)
    digitalWrite(RL3, HIGH);
  else if (inChar==’3′)
    digitalWrite(RL3, LOW);
  else if (inChar==’D’)
    digitalWrite(RL4, HIGH);
  else if (inChar==’4′)
    digitalWrite(RL4, LOW);
}

Fungsi Serial.available() berfungsi mengembalikan jumlah karakter yang ada di dalam buffer port serial. Jika fungsi Serial.available() bernilai 0 (nol), maka tidak ada karakter dalam buffer. Jika fungsi Serial.available() > 0, maka ada karakter yang diterima dalam buffer port serial.

Fungsi Serial.read() berfungsi membaca/mengambil data karakter dari buffer port serial. Perintah char inChar = Serial.read() berfungsi mendeklarasikan variable inChar sebagai penampung data karakter hasil pembacaan fungsi Serial.read().

Selanjutnya, karakter dibandingkan dengan konstanta karakter sesuai dengan tabel perintah di atas untuk mengetahui perintah apa yang harus dieksekusi oleh kontroler.

Jika inChar==’A’, maka aktifkan RELAY-1 dan jika inChar==’1’, maka matikan RELAY-1. Pembandingan yang sama juga berlaku untuk perintah ‘B’, ‘2’, ‘C’, ‘3’, ‘D’, dan ‘4’.

Setelah program di upload ke Starduino, maka pengujian dapat dilakukan dengan mengirimkan karakter ‘A’, ‘1’, ‘B’, dan seterusnya dari komputer.

Untuk mengirimkan data secara manual bisa menggunakan terminal bawaan IDE Arduino atau program terminal seperti Hyperterminal.

Dapat juga pengontrolan dilakukan dengan menggunakan program aplikasi yang dapat Anda peroleh jika membeli paket Starduino Board + Modul DRV04. Berikut adalah tampilan program aplikasi Starduino+DRV04 yang dibuat menggunakan VB.NET 2005 Express Edition.

starduino_drv04_vbnet

Demikian sekelumit penjelasan mengenai pengontrolan relay dari komputer melalui port serial RS232 dengan perantaraan Starduino Board.

Untuk informasi harga dan pemesanan Starduino Board, silakan cek di: http://teknikelektrolinks.com.

Selamat belajar dan selamat berkarya!

🙂

Tutorial Starduino: Mengubah STARDUINO Menjadi AVR ISP Programmer

starduino_isp1

STARDUINO BOARD tidak memerlukan rangkaian ISP Programmer/ Downloader untuk mengisi memori programnya. Mikrokontroler ATmega8 pada Starduino telah ditanami program bootloader Arduino sehingga kita dapat meng-upload program langsung dari port serial maupun port USB.

Tapi bagaimana jika kita ingin memrogram IC mikrokontroler AVR ATmega8 lain yang masih baru dan belum ditanami bootloader Arduino? Atau bagaimana jika kita ingin bereksperimen dengan ATtiny2313 misalnya? Apakah kita harus membeli lagi ISP Programmer? Jawabannya bisa iya, bisa juga tidak. Jika menurut Anda sebuah AVR ISP Programmer/Downloader merupakan investasi yang bagus, maka Anda bisa membeli sebuah AVR ISP Programmer/Downloader. Akan tetapi, Anda bisa saja membuat sendiri dengan memanfaatkan Starduino Board yang sudah Anda miliki.

Foto di atas adalah pengujian Starduino sebagai AVR ISP Programmer/Downloader. Untuk menjadikan Starduino Board menjadi AVR ISP Programmer/Downloader, berikut adalah langkah-langkah yang harus dilakukan.

1. Upload sketch ArduinoISP

arduinoisp

Pertama-tama, buka sketch ArduinoISP yang tersedia pada Examples bawaan software IDE Arduino. Selanjutnya, lakukan Upload dan Starduino pun telah berubah fungsi menjadi AVR ISP Programmer/Downloader.

Pin-pin yang digunakan untuk memrogram IC mikrokontroler AVR adalah:

Pin-10 RESET
Pin-11 MOSI
Pin-12 MISO
Pin-13 SCK

Pada foto di atas, Pin-10 Starduino dihubungkan dengan Pin-1 ATtiny2313 (RESET), Pin-11 Starduino dihubungkan dengan Pin-17 ATtiny2313 (MOSI), Pin-12 Starduino dihubungkan dengan Pin-18 ATtiny2313 (MISO), dan Pin-13 Starduino dihubungkan dengan Pin-19 ATtiny2313 (SCK).

2. Men-disable Auto-Reset Starduino

Starduino akan otomatis masuk ke kondisi reset setiap kali port serial diinisialisasi dan akibatnya bootloader akan running dan menunggu komunikasi dari PC selama kurang-lebih 7 detik. Jika kondisi ini tidak dinon-aktifkan (disabled), maka AVRDUDE akan gagal mengadakan komunikasi dengan Starduino dengan fungsi ISP Programmer/Downloader.

starduino_isp_c10ufCara menon-aktifkan fungsi Auto-Reset adalah dengan ‘mengganjal’ kondisi kaki RESET pada kondisi logika HIGH dengan menambahkan sebuah kapasitor elektrolit 10uF seperti ditunjukkan pada foto di samping.

Kaki+ kapasitor 10uF dihubungkan dengan Pin-1 ATmega8 Starduino dan Kaki– kapasitor dihubungkan ke GND.

Kapasitor 10uF tersebut akan ‘mengganjal’ kondisi logika di kaki RESET menjadi selalu HIGH. Dengan demikian, ketika port serial diinisialisasi oleh program downloader (dalam hal ini kita menggunakan AVRDUDE), maka Starduino tidak akan mengalami RESET, sehingga AVRDUDE bisa berkomunikasi dengan baik dengan program AVR ISP Programmer yang sudah di-upload ke Starduino.

3. Upload File .HEX Menggunakan AVRDUDE

Untuk menguji fungsi Starduino sebagai AVR ISP Programmer/Downloader, berikut adalah listing program LED berkedip-kedip menggunakan AVR-GCC.

/*
  BLINK.C
  ATtiny2313
*/

#define F_CPU 1000000UL      

#include <avr/io.h>
#include <util/delay.h>

#define ON 1
#define OFF 0

#define LED(n) ((n)==(OFF) ? (PORTD&=~_BV(PD0)) : (PORTD|=_BV(PD0)))

// Inisialisasi mikrokontroler
void setup(void)
{
   PORTD = 0b00000000;
   DDRD  = 0b01000001;
}

// Program Utama
int main(void)
{
  setup();

  while(1)
  {
      LED(ON); _delay_ms(100);
      LED(OFF); _delay_ms(100);
  }
}

Program di atas akan menyalakan sebuah LED yang terhubung pada Pin-2 ATtiny2313 (PD0). LED akan berkedip-kedip dengan selang 100 milidetik.

Program di-compile menggunakan AVR-GCC dan kemudian di-download menggunakan perintah:

avrdude -carduino -PCOM1 -b19200 -pt2313 -e Uflash:w:t2313.hex:i –q

Tipe programmer yang digunakan adalah arduino yang terhubung melalui port serial COM1 dengan baudrate 19200.

starduino_isp_avrdude

Dari pengujian dapat disimpulkan bahwa dengan meng-upload sketch ArduinoISP yang tersedia pada kumpulan contoh program Arduino, Starduino dapat berfungsi sebagai AVR ISP Programmer/Downloader. Oleh karenanya, dengan memiliki Starduino Board, Anda tidak perlu lagi membeli AVR ISP Programmer/Downloader.

Beli Starduino Board, GRATIS AVR ISP Programmer/Downloader!

Untuk informasi harga dan pemesanan Starduino Board, silakan mengunjungi situsnya di: http://teknikelektrolinks.com.

Selamat belajar dan selamat berkarya!

🙂

Tutorial Starduino: Program Cek Koneksi Starduino Dengan Modem GSM Wavecom Dengan Perintah AT

starduino_wavecom2

Gambar di samping adalah foto pengujian koneksi antara Starduino Board yang berbasis mikrokontroler ATmega8 dengan Modem GSM Wavecom M1306B.

Pengujian koneksi dilakukan dengan cara sebagai berikut: Starduino mengirimkan “AT<CR>” kepada modem, yang mana jika perintah tersebut diterima dengan benar oleh modem, maka modem akan mengirimkan jawaban berupa “OK”.

Sebagai indikator adalah LED yang terhubung ke pin 13 dari Starduino (pada gambar adalah LED Merah yang sedang menyala, dan selanjutnya disebut sebagai LED-13). Skenario pengecekan koneksi antara Starduino dengan Modem GSM Wavecom adalah sebagai berikut:

  • Sebelum mengirimkan perintah “AT<CR>”, Starduino akan menyalakan LED-13 secara berkedip sebanyak 3 kali dengan periode kedipan yang cukup cepat yakni sekitar 100ms (50ms ON – 50ms OFF).
  • Setelah LED berkedip 3 kali, Starduino mengirimkan perintah “AT<CR>”.
  • Selanjutnya, Starduino menunggu balasan dari Modem GSM Wavecom.
  • Jika menerima data “OK”, maka Starduino akan kembali mengedipkan LED-13 sebanyak 3 kali namun dengan periode yang lebih lama yakni sekitar 1000ms (500ms ON – 500ms OFF).
  • Selama perintah “AT<CR>” dari Starduino dijawab dengan “OK” oleh Modem GSM Wavecom, maka LED-13 akan berkedip-kedip terus dengan pola yang sama seperti yang telah dijelaskan.

Nah, berikut adalah listing programnya.

/* CEK KONEKSI MODEM DENGAN AT=OK
    Chandra MDE – Teknik Elektro Links */
int OK;
char curr_char, prev_char;

void setup()
{
  pinMode(13, OUTPUT);
  Serial.begin(115200);
}

void loop()
{
  while(1)
  {
    //Kedip 3 kali (cepat) sebelum kirim AT<CR> ke MODEM
    //=====================================
    digitalWrite(13, HIGH); delay(50);
    digitalWrite(13, LOW);  delay(50);
    digitalWrite(13, HIGH); delay(50);
    digitalWrite(13, LOW);  delay(50);
    digitalWrite(13, HIGH); delay(50);
    digitalWrite(13, LOW);  delay(500);

    //Kirim AT<CR> ke MODEM
    //=================
    Serial.print(“AT”);
    Serial.write(13);

    //Tunggu balasan dari MODEM
    //====================
    curr_char = prev_char = 0;
    OK = 0;
    while(!OK)
    {
      if (Serial.available() > 0)
      {
        curr_char = Serial.read();
        if (prev_char==’O’ && curr_char==’K’)
          OK = 1;
        else
          prev_char = curr_char;
      }
    }

    //Pastikan tidak ada karakter tersisa di buffer serial
    //===================================
    while (Serial.available()) Serial.read();

    //Kedip 3 kali (lama) setelah terima “OK” dari MODEM
    //====================================
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);   
  }
}

Saya merasa tidak perlu menjelaskan listing program di atas secara terperinci. Listing program di atas sudah diberi komentar-komentar yang akan membantu Anda membaca dan memahami blok-blok program beserta fungsi-fungsinya.

Pada aplikasi modem, sangatlah penting untuk mengetahui setiap saat apakah koneksi antara kontroler dengan modem terhubung dengan baik. Setelah kontroler mengetahui bahwa koneksi dengan modem baik, maka kontroler dapat mengirimkan perintah-perintah selanjutnya sesuai dengan program. Dan jika ternyata koneksi dengan modem bermasalah, maka kontroler dapat memberikan tanda peringatan kepada user.

Starduino dapat langsung dihubungkan dengan Modem GSM Wavecom karena tipe konektor port serialnya adalah DB9-Male sehingga konektor modem dapat langsung dihubungkan ke port serial Starduino.

Jika Anda membutuhkan Starduino Board atau bahkan lengkap dengan Modem GSM Wavecom seperti pada foto di atas, silakan langsung menghubungi kami melalui: http://teknikelektrolinks.com/kontak.htm.

Semoga bermanfaat, selamat belajar, dan selamat berkarya!

🙂

Tutorial Starduino: Membaca Data Dari Modul Sensor Suhu LM35AZ

starduino_lm35az_400

LM35AZ adalah modul sensor suhu LM35DZ siap-pakai dengan tegangan keluaran 0-5V untuk suhu 0-100°C. Sedangkan Starduino adalah board mikrokontroler ATmega8 yang telah diisi dengan bootloader Arduino sehingga bisa digunakan dengan IDE Arduino dan memanfaatkan segala kemudahan yang ditawarkan oleh Arduino.

Gambar di samping adalah foto pengujian pembacaan data analog dari modul sensor LM35AZ menggunakan Starduino. Tegangan keluaran modul sensor yang berkisar 0-5V untuk suhu 0-100°C, dihubungkan dengan pin Analog-Input 5 dari Starduino. Pin Analog-Input 5 pada Starduino adalah pin ADC5 pada ATmega8.

Berikut adalah program Arduino untuk membaca data suhu dari modul sensor suhu LM35AZ melalui pin Analog-Input 5.

/* PROGRAM MONITORING SUHU STARDUINO */

int Jumlah_Sampling = 50;
long Nilai_ADC;
float Nilai_Rerata_ADC;
float Nilai_Suhu;

void setup()
{
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  digitalWrite(13, HIGH); delay(100);
  digitalWrite(13, LOW);

  //baca ADC
  Nilai_ADC = 0;
  for (int i=1; i<=Jumlah_Sampling; i++)
  {
    Nilai_ADC += analogRead(5);
    delayMicroseconds(10);
  }

  //hitung nilai rerata ADC
  Nilai_Rerata_ADC = (float)Nilai_ADC / (float)Jumlah_Sampling;

  //hitung nilai suhu
  Nilai_Suhu = Nilai_Rerata_ADC / 1024.0 * 100.0;

  Serial.print(“Suhu = “);
  Serial.print(Nilai_Suhu);
  Serial.println(“C”);
  delay(500);
}

Untuk mendapatkan hasil pengukuran yang baik, program menerapkan teknik statistik sederhana yakni nilai rerata. Suhu disampling sebanyak 50 kali dan diambil nilai reratanya. Selanjutnya, nilai rerata inilah yang digunakan untuk pada kalkulasi nilai suhu.

Dengan program di atas, nilai suhu yang ditampilkan pada terminal adalah sebagai berikut.

image

Nampak bahwa tampilan suhu sangatlah mantap, bahkan hingga 2 angka dibelakang koma.

Modul sensor LM35AZ terdiri dari rangkaian filter low-pass RC dan penguat opamp dengan nilai penguatan 5 kali, sehingga untuk tegangan keluaran LM35DZ dengan jangkauan 0-1V untuk suhu 0-100°C, maka tegangan keluaran modul LM35AZ adalah 0-5V DC.

Jika Anda perhatikan pada listing program di atas, program tidak menginisialisasi ADC akan tetapi langsung menggunakan ADC pada proses pembacaan data suhu dengan perintah: analogRead(5);

ADC ATmega8 dapat bekerja pada tegangan referensi VCC (5V), INTERNAL (2.56V), atau EXTERNAL melalui pin AREF. Jika tidak ada proses inisialisasi, maka ARDUINO akan menginisialisasi ADC untuk bekerja pada tegangan referensi 5V.

Sebagai contoh, untuk menginisialisasi ADC agar bekerja pada tegangan referensi 2.56V (Internal), maka tambahkan perintah: analogReference(INTERNAL); pada fungsi setup().

Nah, jika Anda membutuhkan modul sensor suhu dengan range pengukuran 0-100°C, maka modul LM35AZ dapat Anda pilih. Dan jika Anda membutuhkan sistem minimum ATmega8 yang dilengkapi dengan bootloader Arduino, maka Starduino Board adalah pilihan yang tepat.

Untuk informasi harga dan pemesanan modul-modul tersebut, silakan mengunjungi situsnya di: http://teknikelektrolinks.com.

Selamat belajar dan selamat berkarya!

🙂

Starduino Board + LCD 16×2 + Contoh Program

starduino_lcd

Liquid Crystal Display atau LCD merupakan salah satu komponen output yang wajib diketahui dan dikuasai oleh pemrogram mikrokontroler.

LCD yang paling umum digunakan adalah LCD berukuran 2 baris x 16 kolom. Selain mudah diperoleh di pasaran, ukurannya sangat pas digunakan untuk aplikasi-aplikasi yang membutuhkan display, tidak terlalu kecil dan tidak terlalu besar, alias pas!

Seberapa mudahkah mengantarmukakan LCD dengan Starduino Board? Simak ulasan singkat berikut ini.

Skema Rangkaian LCD

LCD dapat diantarmukakan dengan Mode 8-Bit dan Mode 4-Bit. Gambar di bawah adalah skema dari rangkaian LCD Mode 4-Bit.

starduino_lcd_4bit

Kaki-kaki LCD nomor 1, 2, dan 3 adalah kaki VSS/GND, VCC, dan VEE/VO. VEE berfungsi untuk mengatur kecerahan tampilan karakter LCD. Untuk mengaturnya, digunakan VR 10K yang dapat diputar-putar untuk mendapatkan kecerahan tampilan yang diinginkan.

Kaki LCD nomor 4 (RS) adalah kaki Register Selector yang berfungsi untuk memilih Register Kontrol atau Register Data. Register kontrol digunakan untuk mengkonfigurasi LCD. Register Data digunakan untuk menulis data karakter ke memori display LCD.

Kaki LCD nomor 5 (R/W) digunakan untuk memilih aliran data apakah READ ataukah WRITE. Karena kita tidak memerlukan fungsi untuk membaca data dari LCD dan hanya perlu menulis data saja ke LCD, maka kaki ini dihubungkan ke GND (WRITE).

Kaki LCD nomor 6 (ENABLE) digunakan untuk mengaktifkan LCD pada proses penulisan data ke Register Kontrol dan Register Data LCD.

Contoh Program Arduino

Arduino memiliki pustaka khusus untuk LCD yakni LiquidCrystal.h. Dengan menggunakan pustaka ini, pemrograman LCD menjadi sangat mudah. Berikut adalah program Arduino untuk menampilkan tulisan “TEKNIK ELEKTRO LINKS” dengan konfigurasi pin seperti pada tabel di bawah ini.

Kaki LCD

Fungsi

Pin I/O Starduino

4

LCD_RS

12

6

LCD_EN

11

11

D4

5

12

D5

4

13

D6

3

14

D7

2

Kode Program Arduino

#include <LiquidCrystal.h>

LiquidCrystal LCD (12, 11, 5, 4, 3, 2);

void setup()
{
  LCD.begin (16, 2);  //inisialisasi LCD 16×2

  LCD.print (“ TEKNIK ELEKTRO ”);
  LCD.setCursor (0, 1);  //pindah kursor
  LCD.print (“    L I N K S   ”);
}

void loop()
{
  while(1);
}

Penjelasan Program

Untuk menggunakan pustaka LiquidCrystal.h, digunakan perintah:

 #include <LiquidCrystal.h>;

Selanjutnya adalah deklarasi object LCD dengan parameter-parameter nomor pin I/O Starduino Board yang dihubungkan ke LCD dengan urutan RS, EN, D4, D5, D6, D7. Sesuai dengan tabel konfigurasi di atas, maka deklarasi object LCD adalah:

LiquidCrystal LCD (12, 11, 5, 4, 3, 2);

Setelah pendeklarasian object sudah benar, maka LCD perlu diinisialisasi untuk bekerja pada mode 4-bit. Inisialisasi dilakukan dengan memanggil fungsi begin sebagai beikut:

LCD.begin (16, 2);

Untuk menampilkan tulisan digunakan fungsi print. Fungsi setCursor digunakan untuk meletakkan kursor di posisi (kolom, baris) yang diinginkan.

Sangat mudah, bukan?

Untuk informasi harga dan pemesanan Starduino Board, silakan mengunjungi situs: http://teknikelektrolinks.com.

Selamat belajar!

Smile

Rangkaian Tombol Aktif-Low dan Contoh Program AVR-GCC dan Arduino

telinks_1keycircuit

Jika Rangkaian LED Aktif-Low dan LED Aktif-High merupakan rangkaian sederhana dalam eksperimen mikrokontroler yang mewakili rangkaian output, maka rangkaian tombol aktif-low di samping adalah rangkaian sederhana yang mewakili rangkaian input dengan dua-kondisi yakni kondisi logika high dan kondisi logika low.

Rangkaian terdiri dari sebuah resistor yang diseri dengan sebuah tombol normally-opened (NO). Resistor berfungsi sebagai beban yang mencegah terjadinya hubung-singkat ketika tombol ditekan. Nilai resistor yang umum digunakan dalam level tegangan TTL adalah 10K ohm.

Prinsip kerja rangkaian sangat sederhana. Ketika tombol tidak ditekan, maka output berlogika 1 (HIGH). Dan ketika tombol ditekan, maka output berlogika 0 (LOW). Dengan rangkaian sederhana ini, kita dapat memberikan input berupa perubahan logika ke mikrokontroler dari logika 1 ke logika 0 sebagai sinyal bahwa tombol ditekan. Program mikrokontroler bertugas mendeteksi perubahan logika tersebut dan menjalankan aksi sesuai fungsi tombol tersebut. Pada bagian akhir tulisan ini akan diberikan contoh program sederhana pendeteksian penekanan tombol dengan aksi sederhana yakni menyalakan LED ketika tombol ditekan.

Bouncing Pada Tombol

Sesaat ketika tombol ditekan, ada kondisi dimana kontak tombol belum stabil dan oleh karenanya menghasilkan output logika yang belum stabil pula. Untuk mengatasi hal itu, maka perlu diberikan delay sesaat setelah terdeteksi perubahan logika dari HIGH ke LOW, dan melakukan pengecekan lagi terhadap tombol. Jika setelah delay tombol masih LOW, maka dapat dikatakan tombol telah ditekan secara stabil.

Berikut adalah pseudo-code untuk pendeteksian penekanan tombol aktif-low.

Jika (TOMBOL=LOW)
{
  Delay_50_ms
  Selama (TOMBOL=LOW)
  {
    Lakukan_Aksi
  }
}

Resistor Pull-Up Internal Pada Mikrokontroler

telinks_1keycircuit2Port I/O pada mikrokontroler memiliki resistor pull-up yang dapat diaktifkan sehingga dapat digunakan untuk menggantikan resistor pull-up R1 pada rangkaian di atas. Dengan demikian rangkaian tombol aktif-low di atas dapat disederhanakan seperti gambar rangkaian di samping.

Pada mikrokontroler AVR, jika bit DDRx diset 1 (pin yg bersangkutan berfungsi sebagai output) dan bit PORTx diset 1 (pin yang bersangkutan berlogika 1), maka resistor pull-up internal pada pin tersebut akan aktif.

Contoh Program Pendeteksian Tombol Aktif-Low (AVR-GCC)

Pada contoh program ini, rangkaian tombol aktif-low terhubung ke PORTB.0 (PB0), dan rangkaian LED aktif-high terhubung ke PORTB.1 (PB1).

#define F_CPU 1000000UL

#include
#include 

#define ON 1
#define OFF 0

//macro LED ON/OFF untuk LED Aktif-High
#define LED_AH(x)((x)==(ON)?(PORTB|=_BV(PB1)):(PORTB&=~_BV(PB1)))

int main(void)
{
  PORTB = 0b00000001; //LED=OFF, Res Pull-up internal PB0 aktif
  DDRB  = 0b00000010; //PB1=OUTPUT, PB0=INPUT

  while(1)
  {
    if (bit_is_clear(PINB, PB0)) //jika PB0 = LOW (tombol ditekan)
    {
      _delay_ms(50);             //debouncing delay

      while (bit_is_clear(PINB, PB0)) //selama tombol ditekan
      {
        LED_AH(ON);                   //LED = ON
        //...
      }

      LED_AH(OFF); //LED = OFF
    }
  }
}

Contoh Program Pendeteksian Tombol Aktif-Low (Arduino)

Pada contoh program ini, rangkaian tombol aktif-low terhubung ke pin-11, dan rangkaian LED aktif-high terhubung ke pin-13.

int TOMBOL;

void setup()
{
  pinMode(13, OUTPUT);
  pinMode(11, INPUT);
  digitalWrite(11, HIGH); //aktifkan resistor pull-up internal
}

void loop()
{
  TOMBOL = digitalRead(11);
  if (TOMBOL==LOW)
  {
    delay(50);
    while(TOMBOL==LOW)
    {
      digitalWrite(13, HIGH);
      TOMBOL = digitalRead(11);
    }
    digitalWrite(13, LOW);
  }
}

Contoh-contoh program di atas dapat ditulis dengan lebih efisien jika tujuannya hanya menyalakan LED ketika tombol ditekan. Kedua contoh program di atas dapat langsung digunakan dan dikembangkan sesuai dengan aplikasi yang Anda buat. Program ditulis dengan lebih detail agar algoritma pendeteksian penekanan tombol aktif-low dapat lebih mudah dipahami.

Catatan: Nilai delay tidak harus 50ms. Nilai tersebut dapat diganti dengan 10ms, 20ms, 100ms, silakan bereksperimen sendiri.

Teknik pendeteksian penekanan tombol yang dibahas pada tulisan ini sangat boleh jadi bukanlah teknik yang terbaik, jadi tetaplah membaca, tetaplah browsing, dan tetaplah bereksperimen.

Jika ingin bereksperimen dengan Starduino Board, Anda dapat memesannya melalui situs berikut ini: http://teknikelektrolinks.com.

Selamat belajar!

Smile