Category Archives: Menengah-1

Pengetahuan Dasar Input Output dan Akses File pada Pemrograman Bahasa C

Tulisan ini bermula ketika saya ingin membuat program mengakses MMC / Micro SD  menggunakan microcontroller AVR,  ternyata penulisan ke MMC/micro SD  bisa berupa file system ataupun byte . Saya memilih menyimpan data ke MMC/microSD dalam bentuk file system karena sudah  disediakan  fungsi fungsi  tsb pada codevision versi 2.

Input dan output text  dari manapun text  berasal dan kemanapun text ditampilkan/disimpan,  text dianggap sebagai aliran character ( stream of character).   stream character bisa berasal dari keyboard  atau file  .Tempat penyimpanan file bisa di hardisk, disket atau MMC / SD card  dan cara pengaksesan file nya sama saja yaitu:

1. Buat pointer ke struct File ,

misal :  File *pointer_file

2. file dibuka  dgn fungsi fopen(namafile,mode) 

misal :   fopen(“namafile.txt”,”r”)

mode akses file antar lain:

“r” artinya file hanya untuk dibaca .

“w” artinya buat  file baru  untuk ditulis

“a” artinya isi file bisa ditambah

“r+”  artinya file bisa ditulis dan dibaca

“w+”  artinya file bisa dibaca dan ditulis. jika ada file yg sama akan di replace.

“a+” artinya file akan dibaca atau ditulis. jika file tdk ada file baru akan dibuat.

3.  file dibaca / ditulis /edit   dgn fungsi fungsi : fputc,fgetc,fputs,fgets,fscanf, fprintf, fseek, putc, getc, putw .

misal  :  fgetc(pointer_file)  , atau

fgets(string_bufer, ukuran buffer, pointer_file)

3. setelah selesai dibaca/ditulis  kemudian file di tutup.

misal fclosed(pointer_file)

mudah bukan,  nanti kita lihat contohnya dibawah

Input Output standard 

fungsi untuk membaca dan menulis :

scanf

sscanf

getchar

getch

gets

printf

putchar

puts

membaca input  dari keyboad

input menggunakan getchar();

#include <stdio.h>
/* copy input to output; 1st version */
main()
{
int c;

while (c != EOF) {          // jika blm  sampai end of file

c = getchar();                 // ambil character

putchar(c);                      // tampilkan character ke layar
}
}

input menggunakan scanf


#include <stdio.h>

int main()
{
int bilangan_int;

printf( “masukan data integer: ” );
scanf( “%d”, &bilangan_int );
printf( “yg anda masukan %d”, bilangan_int );
return 0;
}

input  mengunakan sscanf

deklarasi : int sscanf(const char *str, const char *format, ...)

#include <stdio.h>
#include <stdlib.h>

int main()
{
int bilangan1, bilangan2;
char string1[20], string2[20], tampung[100];

strcpy( tampung, “apa kabar 17 21” );
sscanf( tampung, “%s %s %d %d”, string1, string2, &bilangan1, &bilangan2 );

 // string1 berisi “apa”, string2 berisi “kabar , bilangan1 berisi 17,  bilangan2 berisi 21

printf(”  %s %s, %d = %d    \n”, string1, string2, bilangan1, bilangan2 );  // print ke layar monitor

return(0);
}

 

Membaca dan menulis file

membaca data string  dari file dgn fget

deklarasi: char *fgets(char *str, int n, FILE *stream)

contoh program:

/*
buatlah file filetest.txt misal isinya spt ini:
0 1 0
1 2 0
2 0 3

*/

#include <string.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>

main()
{
FILE *fp;
char baris[20], string1[5], string2[5], string3[5];
int i;

fp=fopen(“filetest.txt”,”r”);
if (fp==NULL) {
printf(“file tdk bisa dibuka\n”);
exit(1);
}
printf(“\n”);
printf(“==========================\n”);
printf(“isi file : \n”);
printf(“==========================\n”);

 // baca tiap baris sampai fp ga ada char/null

i= 0;
while (fgets(baris,sizeof baris,fp)!=NULL)  {

printf(“%s”,baris);   // mencetak string baris ke layar

i++;
}

printf(“\n”);
printf(“==========================\n”)
return(0);
}

misalkan file contoh diatas saya simpan dgn nama readfile.c

hasil compile program diatas dgn compiler  GCC :

readfile

sumber

http://www.cprogrammingexpert.com/C/Tutorial/file/fgets.aspx

Advertisements

Pengetahuan Dasar Function Code Modbus FC15

Tulisan ini adalah sebagai tambahan/lanjutan dari   tulisan  :  Pengetahuan Dasar Protokol Modbus

Frame modbus 

modbusframe

byte Funcntion code pada frame modbus  terletak setelah byte alamat mempunyai  rang 1 – 127 .100 – FC 110.

Berikut ini  Register  map dan function Code yg harus digunakan untuk mengaksesnya.fcmap3

Penjelasan Fuction Code  15  (0FH)  Membaca Coil

FC 15  ini digunakan untuk  men set  beberapa  coil sekaligus  menjadi ON atau OFF.   Frame  query / request yang digunakan untuk itu  spt gambar berikut ini

queryfc15

alamat slave= 1 byte

function code = 1 byte

alamat awal coil = 2 byte

jumlah qoil yg akan di set = 2 byte

N   adalah jumlah byte yg berisi nilai yg akan diset ON atau OFF .

Contoh 1:    ada 16 coil  dgn nomor  20 – 35  yg akan diset  menjadi   8 coil berurutan di set OFF dan 8 coil diset  ON

diset       off   off     off    off   off  off  off  off   off       on   on   on   on   on   on  on   on

COIL :     27  26     25     24    23     22    21   20        35    34  33  32   31  30    29    28

di tulis dalam dalam  biner 00000000  (00H)    dan  11111111 (FFH)

maka N= 2 byte  yaitu 00H danFFH

contoh 2:

diset       on    on     off   off     on     on    off   on        off    off   off  off  off  off   off    on
COIL :       27  26     25     24    23     22    21   20        35    34  33  32   31  30    29    28

di tulis dalam dalam  biner    11001101   = CDH    dan    0000001  = 01H

jadi N=2  yaitu   CDH dan 01H

untuk lebih jelasnya lihat  tabel berikut ini

tabelsetcoil

alamat awal coil pertama adalah 20 (13H)

Frame request untuk contoh2 selengkapnya adalah  (misal alamat slave nya 07)  :  07-0F-0013-000A-2-CD-01-59-6B   untuk lebih jelasnya perhatikan gambar berikut ini:

CONTOHqueryfc15

Setelah  slave 07 memproses request  (on/ off coil) dan  mengisi register  coil yg di on-kan dgn 00FF dan yg di off-kan dgn 0000  jika tdk ada error maka slave akan merespon request tsb dgn format frame yg akan dijelaskan berikut ini.

Frame respon untuk Fc15

responsefc15

Untuk frame respon dari request contoh2  diatas adalah : 07-0F-0013-000A-246F

CONTOHresponsefc15

Referensi:
http://www.simplymodbus.ca/

http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf

Pengetahuan Dasar Function Code Modbus FC01

Tulisan ini adalah sebagai tambahan/lanjutan dari   tulisan  :  Pengetahuan Dasar Protokol Modbus

Frame modbus 

modbusframe

byte Funcntion code pada frame modbus  terletak setelah byte alamat mempunyai  rang 1 – 127 .

Function code berfungsi untuk memberitahu Slave tentang perintah yang harus dikerjakan dan sebagai indikasi respon normal atau jenis error yang terjadi (exception response).

Function Code terbagi menjadi 3 kategori

1. Function Code untuk umum

Function Code ini divalidasi oleh komunitas MOSBUS-IDA.org .  function code ini yang akan dibahas di artikel ini.

2. Function Code yg di definisikan sendiri (user defined)

Function code yg didefinisikan oleh kita sendiri mempunai range FC 65-FC72 dan FC 100 – FC 110.

3. Fuction Code cadangan.,  digunakan di internal perusahaan.

fckategory

Berikut ini  Register  map dan function Code yg harus digunakan untuk mengaksesnya.fcmap3

Penjelasan dan contoh masing masing Function Code

Fuction Code  01   Membaca Coil

FC 01  ini digunakan untuk membaca status coil apakah sedang ON atau OFF.  Frame untuk membaca coil selengkapnya spt gambar berikut ini

QUERYFC01

alamat slave= 1 byte

function code = 1 byte

alamat awal coil = 2 byte

jumlah qoil yg akan di baca = 2 byte

Contoh  pembacaan coil    20  sampai coil ke  40,. misalkan alamat slave yg dituju  adalah 07 ,Maka master akan mengirim  frame  spt pada gambar dibawah ini:

 contohfc1

Misal keadaan coil  20 sampai 40 yg ada di slave  alamat 07 adalah sbb:

COILDISLAVE

(tulisan ON dan OFF pd gambar diatas  sebagai keterangan saja)

Kemudian keadaan coil 20-40 kita kelompokan menjadi 3 byte sbb:

responfc01

Sehingga status coil  nomor 20-40 diwakilkan menjadi 3 byte hexa  yaitu 99, 1D dan 07.

RESPON SLAVE UNTUK QUERY FC01

Format frame untuk  respon slave  FC01 adalah sbb

frmeresponfc01

Jadi nilai byte byte respon slavenya akan seperti dibawah ini :

RESPONCONTOHFC01

Referensi:
http://www.simplymodbus.ca/

http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf

Penggunaan Microcontroller ( Mikrokontroller) di Industri

by pccontrol

Penggunaan Microcontroller  sebagai controller  di industri saat ini  sudah mulai  banyak dikenal terutama setelah banyak muncul vendor  vendor lokal yang memasok kebutuhan pelatihan, software maupun hardware  , diantaranya  yaitu Delta elektronik (surabaya),  prasimax/mikron123(depok) ,depokinstrument, kelas-mikrokontroller,Pa Agfi    dll .  Tetapi salah satu pendorong utama alasan penggunaan microcontroller di industri adalah alasan ekonomi,  karena pada aplikasi-aplikasi tertentu di dalam dunia industri  menggunakan microcontroller jauh  lebih ekonomis (murah) dibanding penggunaan PLC atau komputer PC.   Selain itu sudah ada juga yang berusaha  membuat   microcontroller  menjadi  spt PLC  secara harware  diantarnya Prof Dr Murat Uzam dari Turki  dan  AVRPLC  dari Microelektronik .

Uzam PLC , berbasis microcontroller PIC16F648A

Microcontroller VS PLC

Perbandingan disini ditujukan bukan untuk menggantikan peran PLC diindustri dengan microcontroller , tapi untuk saling melengkapi peran masing2. Berikut ini perbandingan PLC Vs Microcontroller menurut pendapat penulis.

Perbandingan  PLC    Microcontroller
Harga Hardware  variatif murah,sedang&mahal)  Relatif Murah
Harga Software  mahal  Relatif Murah  & ada yg gratis
Software  Ladder diagram,asembler  bahasa C,basic,assembler,basic,phyton,java
Hardware  terstandarisasi  tdk standar
Qualitas  Jaminan pabrik  Variatif
Komunikasi  Standart  Variatif

Beberapa pertimbangan penggunaan  microcontroller pd Industri:

  • Standart tegangan pada industri.
  • Bahasa Pemrograman.
  • Keadaan Lingkungan sekitar(temperatur ,humidity,debu dll).
  • Waktu Penggunaan  24 jam, 7hari.
  • Interferensi sinyal.
  • Noise.
  • Kemudahan dlm Perawatan.
  • Kemudahan Operasional buat teknisi/operator.
  • Display / indikator / status.
  • Qualitas Hardware (komponen,PCB,circuit dll)
  • Tampilan Casing Simple / Kompak  &  Kuat.
  • Input Bouncing.
  • Komunikasi dgn PC (data logger ataupun real Time)
  • Watchdog timer.
  • Data tdk hilang ketika power off.
  • Manual book / Work Instruction.
  • extending/upgrading hardware  & software.

Contoh Aplikasi Mikrokotroler  di Industri

  • Aplikasi Andon (display Out produksi, Produk NG, Progress dll)
  • Aplikasi Remote Input-Output
  • Aplikasi Control
  • Aplikasi Monitorung
  • Aplikasi Data Logger
  • Aplikasi Timbangan Digital
  • Automatisasi
  • dll

Standar Input dan Output pada PLC di industri

Jika kita ingin membuat aplikasi microcontroller untuk aplikasi di Industri salah satu yg penting dipertimbangkan dalam mendesain rangkaian  adalah standar modul input dan output yg berlaku di industri.  Contoh berikut ini disajikan modul stadart input dan output.

Spesifikasi Input

Tegangan input PLC  diindustri 12v dan 24v

Rangkaian Input

modulinput

Komponen Utama modul input adalah Optocopler yg digunakan untuk isolasi/proteksi rangkaian internal selain sebagai konverter tegangan 24v ke 5V. contoh optocopler PC817 untuk input DC ,PC814 untuk input AC/DC.

 

Spesifikasi Output

Output PLC  berupa saklar dalam bentuk Relay atau Transistor

 beriikut ini contoh speifikasi output untuk  Relay  

switching capacity : 2 A 250 VAC dan    2 A 24 VDC 

Rangkaian Output

moduloutput

 

 berikut ini contoh speifikasi output untuk  Transistor

Switching Capacity : 4.5  s/d 30 VDC

moduoutputtransistor

referensi:

http://www.meliksah.edu.tr/muzam/UZAM_PLC_with_PIC16F648A.htm

http://www.microchip.com/forums/tm.aspx?high=&m=476788&mpage=1#476822

http://www.control.com/thread/1026158987

http://www.parallax.com/StoreSearchResults/tabid/768/txtSearch/plc/List/0/SortField/4/ProductID/290/Default.aspx

http://store.qkits.com/moreinfo.cfm/vm142_uk.pdf

Dasar Pemrograman Input dan Output Microcontroller AVR dengan C Codevision

Menggunakan Port  Input dan Output Microcontroller

 

Beberapa contoh  input dan output

contoh Input dan Output  microcontroller

Input Output Port

Karakteristik  PORT  Microcontroller

  • Port  A,B,C,D Bisa di gunakan  sebagai input atau output
  • Tiap Port bisa sekaligus  dibaca /ditulis sebagai 8 pin   atau  1 pin saja.
  • Input output  menggunakan tegangan TTL,  5V untuk logika1   dana 0v = logika 0.

Pemrograman Port sebagai  Input (membaca port)

1. Set Port sebagai input  diregister   DDRx  (ganti x dgn A,B,C atu D sesuai port yg akan di setting)

Misal PORTC  (bit  PORTC.0 ~ PORTC.7 )  sebagai input

DDRC = 0000 0000b   ; ( atau bisa di tulis 0x0h )

2. Hasil membaca port ada di register  PINx

Membaca data Port :

Char data_input;        //  variable untuk menyimpan  data input

data_input  = PINC     ;     // baca port C

Pemrograman Port sebagai  output 

1. Set Port sebagai output  diregister   DDRx  (x=A,B,C,D)

Misal PORTA (bit  PORTA.0 ~ PORTA.7 ) sebagai input

DDRA =  1111 1111b   ; ( atau bisa di tulis 0xFFh )

2. Tulis data yg akan di  keluarkan di register PORTx

Menulis  data  ke  Port :

PORTA = 1111 1010b

Contoh inisialisasi Port di program

#include <mega8535.h>
void main(void)
{
// inisialisasi Port A sebagai output :
PORTA=0x00;
DDRA=0xFF;
// Inisialisasi  Port C sebagai input  :
PORTC=0x00;
DDRC=0x00;
while (1)
      {
      // tempatkan  code  yg akan kita buat disini
      };
}
Contoh program  – PortC sbg Input  dan
                                          – PortA sbg output
#include <mega8535.h>
Char  inputdata;
Char outputdata;
void main(void)
{

// inisialisasi Port A sebagai output :

PORTA=0x00;
DDRA=0xFF;
// Inisialisasi  Port C sebagai input  :
PORTC=0x00;
DDRC=0x00;
while (1)
      {
      // tempatkan  code  yg akan kita buat disini
          inputdata = PINC
          outputdata = inputdata + 1;
         PORTA =  outputdata;
      };
}
Pemrograman Input Output dengan codevision
1. Buka code vision
2. Buat Project baru
3. Pilih gunakan codewizard

Codewizard

Untuk memilih kaki kaki  PORTA sebagai input atau output ,  klik in atau out  spt tampak pada gambar diatas. Setelah itu klik file->Generate save and exit . setelah itu kita akan dibuatkan template program sbb:

#include <mega8535.h>

void main(void){// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
PORTA=0x00;
DDRA=0x0F;
// Port B initialization
PORTB=0x00;
DDRB=0x00;

// Port C initialization
PORTC=0x00;
DDRC=0x00;

// Port D initialization
PORTD=0x00;
DDRD=0x00;

while (1)
     {  
    // Place your code here

      };
}

Mengenal Microcontroller AVR

Microntroller AVR pertama kali dibuat oleh perusahaan Atmel 1996 , merupakan microcontroler pertama yang menggunkan flash memori ketika yang lain masih menggunkan EPROM.

AVR microcontroller

Keluarga Microcontroller AVR  antara lain:

tiny AVR 

  • program memory  500 byte ~ 8kbyte
  • jumlah kaki IC 6–32
  • fungsi terbatas

Contoh :  – Atiny13     1k byte memori program , 64 RAM , 64 EEPROM.

tiny13

megaAVR

  • program memory 4–256 kB
  • jumlah kaki IC 28–100
  • Extended instruction set
  • fungsi : ADC , Timer , WDT,  serial data, SPI , Int,

Contoh  – ATmega8535 (indentik dgn Atmega16)

XMEGA AVR

  • program memory 16–384 kB
  • kaki IC 64–100
  • Fitur  tambahan  : DMA, “Event System”, dan mendukung cryptography .
  • Extensive peripheral  : DAC (digital analog converter)

contoh : Xmega64

Contoh aplikasi Microcontroller AVR    Xmega64 :

robot-menggunakan xmega64

Pemrograman Dasar Microcontroller AVR Dengan Bahasa C untuk Pemula

Untuk pemula yang  ingin segera membuat aplikasi dengan cara yang mudah dan praktis, bisa memilih microcontroller AVR  dan CodeVision sebagai tool membuat program nya.

Codevision sangat memanjakan kita dalam membuat program microcontroller. Dengan bantuan  fasilitas Code Wizard AVR  kita bisa sekejap dalam membuat program C untuk microcontroller  AVR.

Installasi CodeVision

Untuk membuat program bahasa C untuk microcontroller AVR dengan CodeVision langkah yang harus dilakukan:

1. Download CodeVision versi trial disini : http://www.hpinfotech.ro/html/download.htm

2. Install sampai selesai , lalu buka project baru   klik menu File->New    maka akan muncul menu ;

Pilih Project

Pilih Projek , lalu klik OK

3.  Kemudian  akan ada menu  pilihan apakah menggunakan Code Wizard atau tdk, pilih menggunakan CodeWizard .

Pilih Yes

Klik Yes , karena kita akan membuat program dengan bantuan CodeWizardAVR. Setelah itu akan muncul menu CodeWizardAVR   sebagai berikut:

CodeWizard mempermudah pemrograman

Cara Menggunakan CodeWizardAVR

1. Tab Chip  , berisi pilihan  

Pilihan Type AVR dan besar Clock xtal

  • Jenis microcontroller AVR    misalnya kita  pilih Atmega8535
  • Besar frekwensi clock , isi sesuai xtal yang kita pakai dlm rangkain .

2. Tab Port

Pilihan Port sebagai input atau output

 Untuk Mensetting  Port sebagai input atau output ,  kita cukup mengklik in atau out spt yg ditunjukan panah merah gb diatas. menu bersifat toggle , artinya jika kata  in diklik akan menjadi out . jika kata  out diklik akan berubah menjadi in.

(untuk saat ini kita akan memprogram Port saja . Tab-tab lainnya akan kita bahas pada artikel lainya)

Setelah selesai kita  klik menu  program-> generate,save and exit

Generate Save and exit

Jika Anda mengklik menu generate,save and exit , akan keluar menu menyimpan file-file dalam project  ini , berilah nama test ,  akan ada 3 x  permintaan menyimpan file dgn extensi berbeda. 

Setelah selesai akan muncul Template Program dalam bahasa C sbb;

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Evaluation
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 6/16/2011
Author  : Freeware, for evaluation and non-commercial use only
Company :
Comments:
Chip type               : ATmega8535
Program type            : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 128
*****************************************************/

#include <mega8535.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
// State7=0 State6=0 State5=0 State4=0 State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0xF0;
while (1)
{
// Place your code here

}
}

Mudah bukan …?

untuk selanjutnya  anda tinggal menambahkan program yang dibutuhkan misal kita akan tambahkan kode program membaca switch yg terhubung ke PortA.0 dan menyalakan Led yg terhubung ke PortA.7.

Maka  template program  kita tambahkan sbb :

#include <mega8535.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization

PORTA=0x00;
DDRA=0xF0;
while (1)
{
// Place your code here

if (portA.0 ==1)          // jika switch di  portA.)  ditekan

{

PortA.7 = 1;             // portA.7 diberi 1 (5v)  untuk menyalakan led (misalnya )

}

}
}

Pengetahuan Dasar Rangkaian dan Pemrograman Rs485 dengan IC Max485

Pada kesempatan ini saya akan menjelaskan pengetahuan dasar  rangkaian dan pemrograman RS485.   Ketika kita ingin menghubungkan PC atau microcontroller dengan sebuah microcontroller  kita bisa menggunakan RS232 , tapi jika kita ingin menghubungkan PC dengan bayak microcontroller maka Rs232 tidak bisa digunakan. Untuk menghubungkan PC dengan lebih dari 1 microcontroller  kita perlu menggunakan RS485.

Kelebihan RS485  dibandingkan RS232

  • Bisa menghubungkan 1  master dengan 32 slave.
  • Kecepatan data bisa sampai 1 mbps
  • Maksimal panjang kabel data 1200 meter.

Rangkaian  dan  pemrograman RS485 relatif sederhana   sehingga banyak digunakan untuk pengontrolan  dan monitoring untuk di rumah atau industri.

Berikut ini  penjelasan ringkas tentang RS485

Kecepatan transfer data rs485

Grafik kecepatan transfer data Vs panjang kabel data.

Topologi Jaringan Rs485

Topologi jaringan Rs485

Sinyal Grounding

Sinyal Grounding tipikal

alternatif grounding :

alternatif ground

Penjelasan Hardware / Rangkaian

Jaringan Rs485 dibentuk oleh IC driver RS485  contoh max485 dan IC 75176B , tiap master dan slave masing masing memiliki 1 ic driver RS85 dan saling terhubung melalui kaki 6 dan kaki 7.

Komunikasi antara master dan slave dilakukan secara half duplex  (2 cable) dan bisa  Full duflex (4 cable).  Pada artkel ini dibahas rangkaian RS485 half duplex.

HALF DUFLEX

Half duflex artinya pada  satu saat hanya ada 1 node yang mengirim data secara bergantian. Mengirim dan menerima data dgn pengaturan pada pin RE dan DE .

Rangkaian Rs485 dgn ic  max485

Penjelasan kaki ic max485 :

  • kaki 1 digunakan untuk menerima data , kaki ini dihubungkan dengan pin Rx dari comm port  /rs232 dari Pc atau Rx dari microcontroller.
  • kaki 2  (RE) digunakan untuk kontrol penerimaan data .  jika  di beri 0 maka siap menerima data jika 1 maka tdk bisa mnerima data.
  • kaki 3 (DE) digunakan untuk kontrol pengiriman data jika pc atau microcontroller ingin mengirim data maka kaki ini harus diberi logika 1.
  • kaki 4 digunakan untuk jalur pengiriman data , kaki ini dihubungkan ke Tx dari pin comm port rs232 atau Tx microcontroller.
  • kaki 5 di hubungkan ke ground.
  • kaki 6 dihubungkan dengan kaki  6 dari ic max485 node lainnya melalui kable data, biasanya dinamakan jalur A
  • kaki 7 dihubungkan dengan kaki 7 dari ic max485 nodelainya melalui kabel data. bisanya dinamakan jalur B.
  • kaki 2 pada master biasanya dihubungkan ke 0 / ground . Artinya master selalu siap menerima data.
  • kaki 2 dan 3 bisa digabungkan untuk control kirim terima data.

Pemrograman RS485

Secara pemrograman Rs485 persis sama dengan rs232 , hanya perlu ditambah perintah untuk membuat kaki 3 (DE)  dari ic max485 diset menjadi 1 ketika akan mengirim data .

Jika kita ingin mengirim data dari  komputer  lewat program visual basic 6 bisa dengan baris perintah :

MSComm1.RTSEnable = False

dan sebaliknya ketika penerimaan  data kaki 2 (RE) dari  ic max485 diset ke 0 dengan baris perintah :

MSComm1.RTSEnable = True.

sebelumnya jangan lupa hubungkan pin RTS pada serial port PC kita dengan Pin 3 (DE ) dari  ic max485  seperti tampak pada contoh jaringan Rs485 gambar dibawah ini:

rangkain Rs485 network

rangkain Rs485 network

Penjelasan Rangkaian diatas:

  • Master pada rangkaian diatas adalah sebuah PC  dan sebagai slavenya adalah 2 buah microcontroller.
  • IC Max232 digunakan merubah tegangan dari 12v port serial PC  ke TTL (5 volt) . karena tegangan yang keluar dari Comm port PC kita 12v , sedangkan max485 menggunakan tegangan TTL (5v). Ada cara yang lebih praktis : anda bisa membeli modul Rs232 to rs485 converter  harganya relatif murah.
  • Kaki RE ic max485  dihubungkan  ground artinya PC sebagai master selalu siap (defaultnya) menerima data
  • Pada ujung kabel  data jangan lupa diberi tahanan 120 ohm  supaya sinyal tidak mantul.
  • Pada slave misalnya sebuah Microcontroller dgn Icmax485 ,  gabungkan kaki  RE dan DE  dari max485   lalu  hubungkan ke  pin tertentu misal portD.7  maka ketika Micon akan mengirim data , portD.7 harus dibuat 1 terlebih dahulu   sebelum micon mengirim data .

PortD.7 = 1;     // DE dan RE dibuat 1

putchar(‘a’);     // kirim data ‘a’

PortD.7=0;    //DE dan Re = 0 ( kembalikan ke default siap terima data).

Akan tetapi jika kita menggunakan rangkaian rs232 to rs 485 yg  otomatis maksudnya seting DE dan Re secara otomatis , kita tdk perlu lagi menset kaki RTS spt kode program diatas (MSComm1.RTSEnable = False/TRUE) . ini contoh rangkaian rs232 to rs485 converter secara automatis .

FULL DUFLEX

Full Duflex artinya komunikasi berjalan dua arah , jadi tdk perlu pengaturan spt pada half duflex dgn pin DE dan RE  dari Ic485 dan RTS oleh PORT PC.

rangkaian Rs485 Full Duflex

Contoh contoh aplikasi rs485 bisa anda  lihat pada artikel lainya disini.

Pengetahuan Dasar Bahasa Pemrograman C

Sejarah
Bahasa pemrograman C dibuat oleh Dennis Ritchie sekitar tahun 1969 sampai 1973 pada operating system UNIX.

Kelebihan bahasa C:
– Bisa memanipulasi data dalam bentuk byte cocok untuk pemrograman embeded / microcontroller.
– Lebih Mudah dipahami daripada bahasa assembly
– Compiler C membutuhkan memory yg relatif kecil.
– Banyak digunakan untuk berbagai macam Prosessor / microcontroller (tergantung compilernya)

Memulai Pemrograman C

Pada tulisan ini saya akan membahas Pemrograman C dengan compiler gcc untuk operating system windows
dengan prosessor intel x86 (pentium) spt PC yang anda pakai sekarang.
Artinya program yang akan anda buat akan bisa dijalankan di PC, jika anda download ke prosesor selain x86 maka tdk akan bisa di jalankan.

Persiapan Membuat Program C:
Compiler yang saya gunakan gcc (dibundel di MinGW )
1. install Compiler C downlowd disini : 
http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/mingw-get-inst-20110530/mingw-get-inst-20110530.exe/download

2. setelah compiler C diinstall , perlu tambahan setting sbb

  • setelah  compiler C  diinstall , cek lokasi gcc.exe, cek di C:\minGW\bin
  • Buka control panel.
  • klik “System”.
  • klik “Advanced” Tab.
  • klik “Environment Variables”
  • Cari variable “PATH” jika ada click “Edit”. (jika tdk ada klik new)
  • klik diakhir baris setelah semicolon (;) lalu tambahkan Path lokasi gcc.exe yaitu C:\MinGW\bin\.

Setting variable environment gcc.exe

Sebelum membuat program kita periksa dulu apakah compilernya  sudah terinstall.

buka command Promt .

ketik gcc    lalu tekan enter

maka akan ada pesan gcc: no input files   spt tampak pada gambar berikut:

command promt

Jika sudah sampai proses tsb diatas  artinya compiler C anda siap digunakan.

Langkah no 2 hanya option saja. Untuk mempermudah saat mengkompile. Jika kita tidak seting PATH  Enviroment variable nya saat mengkompilenya kita harus menuju path dimana gcc.exe berada spt tampak pada gamabar berikut:

gcc tanpa setting Path enveroment variable

Membuat program C sederhana

copy program sbb ke notepad
#include <stdio.h>

int main(void)
{
printf(“hello, world\n”);
return 0;
}

lalu save as dgn file name : latihan.c
simpan ke ke folder C:\latihan
jangan lupa encodingnya All file bukan txt seprti yg ditunjukan panah merah pada gambar:

Menyimpan program C

buka command prompt
lalu menuju lokasi file test.c      (dengan perintah cd )
ketik:
c:\latihan>gcc test.c -o hasil
lalu  tekan enter
untuk menjalankan ketik di comand  Promt   c:\latihan> hasil

Mengkompile dan menjalankan hasil

 
Kesimpulan:

tahapan C compiler

 

Standar Type data C

Type   Typical Size in
Bits Minimal Range

 

Referensi:

http://en.wikipedia.org/wiki/C_(programming_language)

http://einstein.drexel.edu/courses/Comp_Phys/General/C_basics/

http://saung.igoscenter.org/Pemrograman_C

http://computer.howstuffworks.com/c.htm

http://en.wikipedia.org/wiki/History_of_programming_languages

http://en.wikipedia.org/wiki/Dennis_Ritchie

Cara Install Xampp for Windows

Xampp adalah software bundel yang berisi database mysql , webserver apache dan phpMyAdmin  tool untuk mengelola database mysql.

Xampp sangat bermanfaat bagi pemula yang ingin mempelajari database (dlm hal ini mysql )  karena dilengkapi phpMyadmin  dan juga web programming PHP, javascrip dll yg berjalan di web server Apache.

Instalasi Xampp  di windows.

1. Download  setup file disini : http://www.apachefriends.org/en/xampp-windows.html#641

2. setelah selesai klik file hasil download untuk memulai install.

ikuti perintah perintahnya klik next sampai selesai.

Beberapa hal yg mesti diperhatikan

  • cari file my.ini   lalu tambahkan baris :

skip-name-resolve

dibawah baris [mysqld]

lalu save file.

  • cari file httpd-xampp.conf

ganti baris Deny for all menjadi Allow for all

lalu save file.

  • restart Apache dan Mysql

setelah itu anda sudah bisa menggunakan aplikasi aplikasi tsb dgn cara :

  • Buka internet explorer, mozilla atau go0gle crome
  • ketik alamat http://localhost/  , maka akan muncul menu pilihan bahasa.
  • pilih bahasa english.
  • lalu klik menu phpmyadmin.

Menu Utama Xampp

maka anda siap menggunakan database Mysql melalui phpMyadmin spt tampak pada  gambar dibawah ini:

menu phpmyadmin

klik  Tab Database , disana akan ada 4 database yg sudah tersedia ,diantaranya database test.Untuk  database yang lainnya yaitu

- information_schema	 
- mysql	 
- performance_schema
ketiga database diatas jangan dirubah-rubah (dilihat-lihat boleh saja).
Untuk Latiham anda bisa Membuat database baru atau mengunakan database test.
Selanjutnya anda bisa meneruskan membaca Mengenal Database