Mengambil Perintah dan Parameter Setting pd AVR microcontroller melalui Komunikasi serial rs232 (bag 1/2)

Untuk memasukan data parameter setting ke microcontroller ada bebrapa cara antara lain melalui keypad , switch BCD/HEXA ,  remote dan melalui serial komunikasi .

Pada tulisan ini  kita akan membuat program pd microcontroller yang memisahkan perintah / command dan parameter  dari sebuah string yang dikirim dari komputer ke microcontroller melalui serial komunikasi rs232 atau rs485.

Contohnya konkritnya spt ini :

PC mengirim string : “PANJANG=1200″  lalu mengirim:  ” TINGGI=10″  kemudian PC mengirim lagi : “LEBAR=45”.

Maka microcontroller harus mengambil data/parameter  panjang ,tinggi dan parameter lebar yang dikirim oleh PC dengan benar tidak boleh tertukar karena data parameter tsb akan digunakan oleh microcontroller .

Sebelum kita membuat  program c untuk  microcontroller dgn codevision kita akan membuat lebih dahulu simulasi penerimaan data dgn  program  C di komputer dgn gcc  .  sbb:

#include <stdio.h>
#include <string.h>

char *perintah[] = {"PANJANG", "LEBAR", "TINGGI"};

int panjang,lebar,tinggi;

int main(void)
{
  int int_param, i;

   char indexPerintah;

   char Str_perintah[50];

   char param[50];

   char *batas;

   int indexBatas;

   char r_buffer[40]; //  contoh isi r_buffer:"PANJANG=1200" ,"TINGGI="123" dst..;

    printf("masukan perintah : ");
    gets(r_buffer); 

   //cari batas perintah dgn parameter yaitu tanda '='

    batas = strchr(r_buffer,'=');
     if (batas != NULL) {    //jika batas '=' ditemukan

    printf("alamat batas: %d\n", batas);
    printf("alamat r_buffer: %d\n", r_buffer);

    indexBatas = batas - r_buffer;        // index batas '=' pd array r_buffer

    printf("Index = pd array r_buffer: %d\n", indexBatas);
    printf("isi r_buffer: %s\n", r_buffer);

    strncpy(Str_perintah, r_buffer, indexBatas);

    Str_perintah[indexBatas] = '\o';  // string harus diakhiri  dgn NULL
    printf("perintah: %s\n", Str_perintah);

    strcpy(param, batas + 1);
    printf("parameter: %s\n", param);

}
else

    {

      // batas '=' tidak ditemukan , tdk ada parameter

     strcpy(Str_perintah, r_buffer);
     printf("perintah : %s   tidak ada parameternya \n", Str_perintah);
    }

   // bandingkan input yang dimasukan ke r_buffer dgn daftar perintah -
  // yg ada=PANJANG,LEBAR,TINGGI    
   // indexPerintah = -1 jika tdk ditemukan perintah.

      indexPerintah = -1;

      for (i = 0; i < 3; i++) {

       if (strcmp(Str_perintah, perintah[i])==0)  // perintah[0]=PANJANG, perintah[1]=LEBAR, perintah[2]=TINGGI

         {

         indexPerintah = i;  

           break;

        }

      }

      printf("index perintah: %d\n", indexPerintah);

      switch(indexPerintah) {  // 0, 1 atau 2  

        case 0:     

         sscanf(param, "%ld", &panjang);  //masukan array param ke variable panjang.
         printf("parameter panjang: %d\n", panjang);

         break;

        case 1:

         sscanf(param, "%d", &lebar);
         printf("parameter lebar: %d\n", lebar);

         break;

        case 2:

         sscanf(param, "%ld", &tinggi);
         printf("parameter tinggi: %d\n", tinggi);
         break;

default:
 printf("perintah tdk dikenal \n");
       }

return 0;

}

//===selesai======

simpan file program diatas dgn file  test1.c
buka command promt pada PC anda , lalu ketik :

c:>gcc -o hasil   test1.c
lalu ketik:
c:>hasil

input

lalu masukan perintah misal TINGGI=123 maka akan tampak sbb:

hasil pemisahan parameter

isi dari perintah TINGGI=123 di r_buffer akan spt dibawah ini:

perintah yang bisa di masukan adalah:

PANJANG=parameter ,

LEBAR=parameter,

TINGGI=parameter.

contoh : PANJANG=1200 ,TINGGI=123  dst..

 

jika sudah mengerti konsep diatas silahkan menuju  tulisan bagian ke-2:

https://pccontrol.wordpress.com/2011/07/05/mengambil-perintah-dan-parameter-setting-pd-avr-microcontroller-melalui-komunikasi-serial-rs232-bag-22/

 

 

 

Referensi:

http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/

Advertisements

About pccontrol

Berisi Tutorial Menggunakan PC untuk mengontrol Peralatan dengan cara mudah & praktis untuk pemula.

Posted on 04/07/2011, in Menengah-3. Bookmark the permalink. Leave a comment.

Komentar ,Saran atau Pertanyaan

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

%d bloggers like this: