modbus protokol komunikasi seperti led flip flop

kenal sama modbus, dulu waktu mencari kerja, di koran syaratnya d butuhkan bisa modbus. namanya canggih modbus keren banget tuh namanya. asalnya belum tahu , setelah tanya om google akhirnya tahu bahwa modbus itu merupakan protokol komunikasi. tapi dulu perkenalan sama modbus hanya tahu gunanya saja, belum tahu makainya gimana, aturan makannya gimana.

baru kemarin akhir januari 2011  ada seorang teman punya alat namanya PMAC720 POWER METER. kebetulan protokolnya modbus. fisiknya rs485. saya disuruh membaca register register dari PMAC720.

alhamdulilah saya ga bego bego amat, basic serial sudah dapat, rs485 sudah dapat, tinggal belajar modbusnya. ternyata gampang banget kaya bikin program led flip flop pada mikrokontroler (sombong lah). modbus tidak hanya orang PLC yang pakai saya juga bisa pakai. wkwkwkwkwkwk

saya tidak akan membahas karena sudah banyak yang bahas. ini link yang membantu saya tentang modbus.

http://www.codeproject.com/KB/recipes/CRC_Calculation.aspx

http://www.rifqion.com/menulis/modbus-protokol-dan-serial-standard/

bener bener tinggal jiplak tidak perlu mikir. udah sok tah. daronlod barudak.

nasihat dari saya untuk para mahasiswa:

– kalian pelajari modbus. protokol di pabrik pabrik pada pakai modbus, biar project mengalir terus pelajari jangan line follower saja. pasti nanti berguna

ngoprek sensor dinding untuk yang benci modul jadi (tidak punya duit)

Sensor dinding (infra merah)

Sensor dinding(infra merah) digunakan untuk mendeteksi adanya dinding dan halangan. Sensor dinding  memakai infra merah, sensor ini terdiri dari 3 bagian:

1.Tranmiter infra merah

2.receiver infra merah

3.Signal conditoning receiver infra merah.

1. Transmiter infra merah

Transmiter infra merah menggunakan transmisi sinyal infra merah yang dimodulasi dengan sinyal carrier dengan frekuensi tertentu yaitu pada frekuensi 38KHz.  Sinyal yang dipancarkan oleh transmitter diterima oleh receiver infra merah dan kemudian didemodulasikan kembali menjadi data biner. gambar tranmister infra merah.

Untuk mengatur jarak pantul maka digunakan multitune 5k yang berguna untuk mengatur besarnya arus yang mengalir ke LED infra merah.  Arus yang mengalir ke LED menentukan intensitas cahaya infra merah. Modul osilator menghasilkan frekuensi pembawa yang dimodulasikan dengan data biner. Data ini diperlukan  untuk membuat sensor penerima dapat menanggapi sinyal termodulasi.

Receiver infra merah

Pada rangkaian ini, digunakan TSOP 15xx sebagai penerima infra merah. Jika ada sinyal infra merah maka outputnya berlogika 0 sebaliknya jika tidak ada sinyal infra merah maka outputnya  berlogika 1. Pada gambar 3.8. ditunjukkan receiver infra merah.

Sensor ini hanya akan aktif apabila menerima sinyal inframerah yang terputur putus (data). Sedangkan apabila sinyal pembawanya kontinyu  dan dalam frekuensi yang tepat pada 38 kHz sensor ini tidak akan merespon

Sensor ini hanya akan aktif apabila menerima sinyal inframerah yang terputur putus (data). Sedangkan apabila sinyal pembawanya kontinyu  dan dalam frekuensi yang tepat pada 38 kHz sensor ini tidak akan merespon

Pengkondisi sinyal penerima infra merah

Karena output dari sensor TSOP masih berupa pulsa selama ada input maka agar outputnya berupa keluaran logika 1(5 V) terus menerus atau Logika 0(0 V) terus menerus dibutuhkan sebuah rangkaian yang dapat mengubahnya. Ketika tidak ada sinyal infra merah, tegangan akan melewati gerbang not terakhir sehingga outputnya keluarannya berlogika 0.

Sinyal infra merah yang yang berupa pulsa output keluarannya berlogika 1. Saat keluaran sensor berlogika 0 maka akan dibalik oleh gerbang 74240.menjadi logika 1. keadaan logika 1 di keluaran gerbang 74240 akan mengisi kapasitor melewati dioda 1N4148. Proses pengisian kapasitor berlangsung sangat cepat. Setelah output gerbang kembali ke 0, tegangan di kapasitor tidak ikut turun ke 0 volt melainkan terjadi pengosongan melalui resistor basis transistor NPN karena adanya dioda. Selama tegangan di kapasitor masih di atas Vbe maka transistor akan tetap saturasi. Sehingga tegangan di kolektor tetap 0 selama kapasitor belum mengosongkan tegangannya sampai 0.7 volt. Besarnya timeconstant ditentukan oleh R dan C yang besarnya harus lebih dari perioda OFF dari sensor TSOP yaitu sebesar 700 Us

Dengan menggunakan kapasitor 10 nF, maka nilai resistor yang diperoleh, yaitu:464120

Jadi, nilai resistor yang harus digunakan adalah lebih besar dari 464120 ohm, sehingga dipilih resistor 470k ohm untuk kapasitor 10 nF.

hasil percobaan saya

 

 

sekian pelajaran hari ini di STIE DHANI (Sekolah tinggi ilmu embedded dhani)

konfigurasi pin acak adut, pusing dengan aturan codevision

lomba KRCI merupakan ajang kreativitas untuk mahasiswa. KRCI  diadakan tiap tahun. nah kalo untuk anak muda ketika smp-sma itu bermain musik merupakan kegiatan yang boleh dikatakan sebagai kegiatan gaul.

nah KRCI juga untuk anak mahasiswa merupakan konser elektronik gaul. jadi kalo mahasiswa elektronik bikin robot dia gaul walaupun dia tidak jago matematik. nah pada KRCI 2011 ini KEI – ELEKTRONIK punya teman dari universitas siliwangi tasikmalaya DARIS namanya. dia sekarang di markas kei elektronik lagi bikin robotnya. sekarang baru pengerjaan buat PCB. nah di PCB nya itu konfigurasi untuk LCD nya tidak memenuhi standar codevision. jadi apakah daris harus mengulang hardwarenya atau tetap melanjutkannya.

nah sebagai seniman elektronik garis keras jangan mau ngikut aturan. udah sikat saja. buat manual sendiri nanti tinggal di link kan. akhirnya setelah tanya tanya google earth ternyata ada juga source codenya nemu di jalam perum mitra batik, batik semar III. dirumahnya bapak dhani nugraha S.T. ternyata ada juga source codenya. kita tinggal sewa cd source nya murah cuma 2000 perak.

nah berikut source code hasil sewa dari bapak dhani nugraha S.T

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

Project :
Version :
Date    : 14/02/2011
Author  : NeVaDa
Company :
Comments:
Chip type               : ATmega16
Program type            : Application
AVR Core Clock frequency: 11,059200 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/

#include <mega16.h>
#include <delay.h>

#define LCD_RS_HI PORTC|=(1<<7)       //LCD
#define LCD_RS_LO PORTC&=~(1<<7)

#define LCD_EN_HI PORTC|=(1<<6)
#define LCD_EN_LO PORTC&=~(1<<6)

#define LCD_D4_HI PORTC|=(1<<5)
#define LCD_D4_LO PORTC&=~(1<<5)
#define LCD_D5_HI PORTC|=(1<<4)
#define LCD_D5_LO PORTC&=~(1<<4)
#define LCD_D6_HI PORTC|=(1<<3)
#define LCD_D6_LO PORTC&=~(1<<3)
#define LCD_D7_HI PORTC|=(1<<2)
#define LCD_D7_LO PORTC&=~(1<<2)

//==============================================
#define line1 0x00
#define line2 0x40
#define _ALTERNATE_PUTCHAR_

#include <stdio.h>
void LCD_STROBE()
{
    LCD_EN_HI;
    LCD_EN_LO;
}

void lcd_write(unsigned char datalcd)
{
if(datalcd & 0x80) {LCD_D7_HI;} else {LCD_D7_LO;}
if(datalcd & 0x40) {LCD_D6_HI;} else {LCD_D6_LO;}
if(datalcd & 0x20) {LCD_D5_HI;} else {LCD_D5_LO;}
if(datalcd & 0x10) {LCD_D4_HI;} else {LCD_D4_LO;}
LCD_STROBE();
if(datalcd & 0x08) {LCD_D7_HI;} else {LCD_D7_LO;}
if(datalcd & 0x04) {LCD_D6_HI;} else {LCD_D6_LO;}
if(datalcd & 0x02) {LCD_D5_HI;} else {LCD_D5_LO;}
if(datalcd & 0x01) {LCD_D4_HI;} else {LCD_D4_LO;}
LCD_STROBE();
delay_ms(5);
}
void putchar(unsigned char c)
{
 LCD_RS_HI;
 lcd_write(c);
}
//===========================================
void init_lcd()
{
    LCD_RS_LO;
    delay_ms(15);
    LCD_D4_HI;
    LCD_D5_HI;
    LCD_STROBE();
    delay_ms(5);

    LCD_STROBE();
    delay_us(100);
    LCD_STROBE();
    delay_ms(5);
    LCD_D4_LO;
    LCD_STROBE();
    delay_us(40);
    lcd_write(0x28);
    lcd_write(0x0C);
    lcd_write(0x06);
    lcd_write(0x01);
    delay_ms(10);
}

void lcd_goto(unsigned char poslcd)
{
    LCD_RS_LO;
    lcd_write(0x80 + poslcd);
}

//===================================================
void main(void)
{                
        DDRC=255;  
        init_lcd();               
while (1)
      {     
      lcd_goto(line1);
      printf(“hello”);
      lcd_goto(line2);
      printf(“ini dhani”);
      for(;;)
      {;}
     
      };
}

nah dengan source ini kaki pin lcd nya juga bisa acak adut, dan bisa tanpa pin RW. pokoknya hidup elektronik sesat maju terus berasama bapak dhani nugraha S.T

kei128(sismin atmega 128 made in DHANI)

Modul KEI128 namanya modul ini saya buat untuk keperluan para hobby mikrokontroler dan elektronika. berikut modulnya

spesisikasi:

-sismin atmega128

-soket dc vin 9-16v

– include regulator 5v

– usb2serial pl2303

-xtal 11.0592Mhz

– io header porta,porb,portc,portd,porte dan portf

– led power

– i2c port, uart0 port dan uart 1 port

ayo segera pesan DHANI NUGRAHA(085228292473). harga hanya rp.300.000

www.kei-elektronik.com