Serial Communication Arduino |
HALLO GAN SIST!
Kali ini ane bermaksud ingin membagikan apa yang dipelajarin kemarin.
Sebenarnya ane juga cuma newbie kalo soal arduino, kita belajar bareng-bareng aja, yang mau memberi saran, kritik, atau mau menambahkan boleh saja langsung di kolom comment saja.
Komunikasi serial adalah komunikasi yang pengiriman datanya per-bit secara berurutan dan bergantian. Komunikasi ini mempunyai suatu kelebihan yaitu hanya membutuhkan satu jalur dan kabel yang sedikit dibandingkan dengan komunikasi paralel
Sebenarnya ane juga cuma newbie kalo soal arduino, kita belajar bareng-bareng aja, yang mau memberi saran, kritik, atau mau menambahkan boleh saja langsung di kolom comment saja.
Komunikasi serial adalah komunikasi yang pengiriman datanya per-bit secara berurutan dan bergantian. Komunikasi ini mempunyai suatu kelebihan yaitu hanya membutuhkan satu jalur dan kabel yang sedikit dibandingkan dengan komunikasi paralel
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.
Kali ini ane contohin yang sederhana dulu nyalain satu led dari Serial Monitor di software Arduino IDE.
- Siapin alat-alatnya dulu gan.
- Arduino UNO
- Led
- Kabel Downloader
- Komputer dan Sofware Arduino IDE
- Seperti biasa buka Arduino IDE-nya dulu.
- Tentukan dahulu pin yang akan digunakan, untuk menuliskan variabel agar lebih mudah saat di program utama, gunakan fungsi integer.
- Kalo kurang jelas bisa langsung ambil dimari gan.
// CREATED BY @MARTINPMT
int led = 12; // Posisi pin led di pin 12
int led = 12; // Posisi pin led di pin 12
void setup()
{
pinMode(led, OUTPUT);
Serial.begin(9600);
Serial.flush();
}
void loop()
{
String input = "";
while (Serial.available() > 0)
{
input += (char) Serial.read();
delay(5); // ini buat jedanya gan satuannya millisecond
}
if (input == "on")
{
digitalWrite(led, HIGH); // menghidupkan led, ini pake aktif high
Serial.println("led 1 nyala");
}
else if (input == "off")
{
digitalWrite(led, LOW); // mematikan led
Serial.println("led 1 mati");
}
}
- Rangkai led dengan arduino, cek dibawah gan. Anoda (+) di pin 12 dan Katoda (-) di pin GND. Lalu sambungkan arduino ke USB.
- 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.
- Jika program agan berhasil, di status bar akan tertulis "Done Compiling" lalu klik Upload untuk mengupload program ke arduino.
- 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 diketik "on" lalu send, maka led akan nyala
- Jika diketik "off" lalu send, maka led akan mati
- Pengembangan program ditambah flip-flop dan dengan looping.
- Jika diketik "on" lalu send, maka led akan nyala
- Jika diketik "off" lalu send, maka led akan mati
- Jika diketik "flip" lalu send, maka led akan flip-flop dengannjeda 100 ms
// CREATED BY @MARTINPMT
int led = 12; // Posisi pin led di pin 12
int led = 12; // Posisi pin led di pin 12
void setup()
{
pinMode(led, OUTPUT);
Serial.begin(9600);
Serial.flush();
}
void loop()
{
String input = "";
while (Serial.available() > 0)
{
input += (char) Serial.read();
delay(5); // ini buat jedanya gan satuannya millisecond
}
on:
if (input == "on")
{
digitalWrite(led, HIGH); // menghidupkan led, ini pake aktif high
Serial.println("led 1 nyala");
loop();
goto on;
}
off:
if (input == "off")
{
digitalWrite(led, LOW); // mematikan led
Serial.println("led 1 mati");
loop();
goto off;
}
flip:
if (input == "flip")
{
digitalWrite(led, HIGH); // menghidupkan led
delay (100);
digitalWrite(led, LOW); // mematikan led
delay (100);
digitalWrite(led, HIGH); // menghidupkan led
delay (100);
Serial.println("led 1 flip flop");
loop();
goto flip;
}
Begitulah contoh program dasar dari komunikasi serial arduino dengan satu led. Program ini dapat dikembangan lebih lanjut seperti menjadi running led dan masih banyak lagi. Dengan komunikasi serial monitor arduino dapat menggantikan input berupa switch atau tombol dan inputan lainnya. Ini dulu aja ya gan, pengembangannya custom sendiri atau cari di youtube university atau googling biasanya untuk trial dengan banyak led butuh tambahan kabel jumper, resistor, dan protoboard. Terima kasih telah mengambil keputusan untuk membaca postingan ini.
Happy Coding!
Sumber :
https://www.arduino.cc
http://arifzakariya.blog.ugm.ac.id/2012/01/09/komunikasi-serial-mikrokontroler/
https://pccontrol.wordpress.com/2014/06/28/pengetahuan-dasar-serial-komunikasi-pada-arduino/
gimana caranya biar lampunya menyala (ON) menampilkan angka 1?
ReplyDelete