Menggunakan Printf di Arduino

Arduino telah menyediakan fungsi yang dapat digunakan untuk mengakses komunikasi serial. Fungsi-fungsi tersebut antara lain Serial.begin(baudrate), Serial.print(), Serial.println(), Serial.write(). Serial.begin(baudrate) digunakan untuk melakukan inisisalisasi komunikasi serial dengan baudrate tertentu, sedangkan fungsi yang lain digunakan untuk mengirimkan data. Namun menurut Saya fungsi-fungsi tersebut ada keterbatasannya, contohnya seperti ini,

Serial.print("Angka ");
Serial.print(i);
Serial.print("Increment ");
Serial.println(i++);

Sintak program diatas digunakan untuk mengirimkan data text ke Serial port arduino, dimana data tersebut ada yang berupa data text static dan data angka yang dapat berubah-ubah. Keterbatasan fungsi-fungsi serial arduino dapat kita temukan pada saat menuliskan program diatas. Arduino tidak bisa menampilkan string dan angka sekaligus, kita harus memanggil fungsi Serial.print secara berulang-ulang.

Untuk mempermudah penulisan sintak program agar tidak panjang seperti diatas maka saya gunakan fungsi printf. Fungsi printf jika kita gunakan pada pemrograman C di komputer, fungsinya adalah untuk menampilkan kata-kata ke layar PC. Di arduino kita juga dapat gunakan fungsi ini untuk menampilkan kata-kata atau data ke serial port. Untuk melakukan hal itu perlu ada penambahan sintak khusus. Lebih jelasnya dapat dilihat di bawah ini

static FILE uartout = {0} ;

int i;

static int uart_putchar (char c, FILE *stream) {
   Serial.write(c);
   return 0 ;
}

void setup() {
   Serial.begin(9600);
   fdev_setup_stream (&uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE);
   stdout = &uartout ;
}

void loop() {
   printf("Loop %d\r\n",i);
   i++;
   delay(1000);
}

Sintak diatas merupakan cara penggunaan printf untuk mengirimkan data ke serial port. Lebih efisien karena cukup memanggil satu baris fungsi, dibandingkan dengan sintak yang menggunakan fungsi bawaan arduino pada sourcecode pertama

-Semoga Bermanfaat-
By : Eko Rudiawan

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s