Breaking News
Tampilkan postingan dengan label Pemrograman. Tampilkan semua postingan
Tampilkan postingan dengan label Pemrograman. Tampilkan semua postingan

Kamis, Agustus 15, 2013

Data Logger-Flowchart


Gambar dbawah merupakan flowchat dari software pada Data Logger pada penelitian!!
Read more ...

Rabu, Agustus 14, 2013

Latar Belakang Mengukur Suhu dengan Data Logger

Suhu udara dapat dinyatakan sebagai derajat panas atau dingin udara di atmosfer (Hasan, 1996). Suhu udara merupakan salah satu unsur yang dapat menentukan cuaca di suatu tempat (Susilo, 1996). Suhu udara di setiap tempat tidak selalu sama atau bervariasi. Variasi suhu udara ini dipengaruhi oleh beberapa faktor yaitu posisi lintang, lamanya penyinaran matahari, tekanan udara, ketinggian suatu wilayah, distribusi air serta tanah dan lain-lain. Suhu udara memiliki peranan yang sangat penting bagi kehidupan makhluk hidup khususnya di Pulau Lombok.
Pulau Lombok merupakan salah satu kepulauan yang terletak di Indonesia yaitu Provinsi Nusa Tenggara Barat (NTB). Pulau Lombok memiliki luas wilayah 4.647,39 km2. Letak geografis Pulau Lombok yaitu terletak antara 115˚46’ BT - 116˚08’ BT dan 8˚12’ LS - 9˚02’ LS. Rata-rata suhu di setiap wilayah Pulau Lombok berbeda. Data dari Stasiun Klimatologi Kediri mengukur rata-rata suhu udara bulan Januari 2013 berkisar 25,5°C sampai dengan 28,4°C. Suhu udara maksimum tertinggi 33,3°C terjadi pada tanggal 6 Januari 2013. Suhu udara minimum terendah 23,4°C terjadi tanggal 31 Januari 2013. Sedangkan di Stasiun Meteorologi Selaparang Mataram berkisar antara 25,1°C sampai dengan 28,4°C. Suhu udara maksimum tertinggi 32,2°C terjadi pada tanggal 11 Januari 2013. Suhu udara minimum terendah 23,2°C terjadi tanggal 14 Januari 2013 (Stasiun Klimatologi Kediri-NTB). Data suhu udara ini sangat penting bagi perkembangan hidup khususnya penduduk di Pulau Lombok baik dalam bidang sosial, ekonomi, budaya dan lainya, sehingga untuk memperoleh data diperlukan pengukuran terhadap suhu.
Badan Meteorologi Klimatologi dan Geofisika (BMKG) Stasiun Klimatologi Kediri – NTB mungukur suhu udara dengan menggunakan termometer maksimum dan minimum. Pengukuran dilakukan satu jam sekali dari pukul 08.00 – 18.00 WITA.  Data yang diperoleh hanya pada daerah tertentu yaitu pada stasiun BMKG saja, sedangkan penduduk yang ingin memperoleh data di daerah berbeda mengalami kesulitan dan memerlukan tenaga serta dana yang cukup besar. Kesulitan ini dapat diatasi dengan melakukan pengukuran suhu udara menggunakan sistem data logger. 
Data logger atau perekam data adalah sebuah alat elektronik yang mampu mencatat data apapun secara teratur dan menyimpannya dalam  memori internal maupun eksternal. Atau secara singkat data logger adalah alat untuk melakukan data logging. Salah satu keuntungan menggunakan data logger adalah kemampuannya secara otomatis mengumpulkan data setiap 24 jam. Setelah diaktifkan, data logger digunakan dan ditinggalkan untuk mengukur dan merekam informasi selama periode pemantauan. Rancangan data logger dalam penelitian ini sederhana yaitu memiliki ukuran kecil yang terdiri dari beberapa komponen-komponen yang cukup murah yaitu mikroprosesor ATMega 8L dan sensor suhu yaitu thermistor. Data logger yang dirancang memiliki fungsi serta akurasi cukup tinggi sehingga dapat digunakan untuk mengukur suhu udara di Pulau Lombok.
Read more ...

Minggu, Juli 22, 2012

Program Menghitung SKS in C++

Setelah di compile





Download programnya disini !

Read more ...

Program Sistem Konfigurasi Elektron In C++

/* Ini program sederhana */
//Nama : I Nyoman Kuripan
//Mataram
//source http://www.chemicool.com/
#include
#include
using std::cout;
using std::endl;
#include
#include
#include
using std::rand;
using std::srand;
#include
#include // berisi prototipe untuk fungsi waktu time
using std::time;
using namespace std;
int main ()
{  
    float na, ulang, menu, q, ll;
    int a, b, c, d, e, f, g, x, n;
    printf ("------------------------------------------------------------------------- \n");
    printf("|\t\t###\t##\t# WARNING # \t##\t###\t\t|\n");
    printf ("========================================================================= \n");
    printf("|\t\t\tIni hanya program sederhana \t\t\t|\n");
    printf("|\t Disarankan Pengguna hanya menekan 'angka' BUKAN 'huruf'\t|\n");
    printf("|\t  Karena program bisa menggila atau tak terkendali OK  \t\t|\n");
    printf ("------------------------------------------------------------------------- \n");
    printf ("|ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo| \n");
    printf ("------------------------------------------------------------------------- \n\n");
    x = 0;
    for ( x = 0 ; x < n; x-- ){
        printf("\t\t\t\t< MENU AWAL > \n\n");
        printf("\t* Silahkan dipilih (1-2) ! \n\n");
        printf("\t1) Informasi dan karakteristik atom \n");
        printf("\t2) Game  \n");
        printf ("\t======================================== \n");
        printf ("\t$ Masukkan pilihan Anda disini: ");
        scanf ("%d", &a);
            do{
                switch (a){
      
                    case 1:
                        printf ("\n         # 1) Informasi atom #\n");
                        printf ("\t=========================================== \n");
                        cout << "\t$ Masukan nomor atom suatu elektron! \t:";
                        cin >> na;
                        printf ("\t=========================================== \n");  
                                  
                        if(na == 1) {
      
                                ifstream infile;
                                infile.open ("H.txt", ifstream::in);
                                while (infile.good())
                                cout << (char) infile.get();
                                infile.close();
                              
                                printf ("Info lebih lengkap tekan 1 ! :\n");
                                scanf ("%d", &e);
          
                                switch (e){
                                    case 1:
                                            ifstream infile;
                                            infile.open ("H1.txt", ifstream::in);
                                            while (infile.good())
                                            cout << (char) infile.get();
                                            infile.close();
                                    break;
                                }
              
                            }


....................................................................................
....................................................................................
        }
                                cout<< "\n";
                                if (na                                else if (na>i) puts ("Nomor Atom yang anda masukkan 'SALAH', nilainya lebih rendah dari jawaban! ");
                              
                              
                      
                              } while (na!=i);
                              puts ("Congratulations!");
                              cout << "Jawaban Anda tepat sekali \n\n";
                  
                  
                    break;
          
                    default:
                        printf ("Pilihan anda diluar jangkauan.\n");
                        printf ("Tekan sembarang kembali ke menu awal atau\n");
                }printf ("Tekan satu angka untuk mengulang \n");
                scanf ("%d", &ulang);
          
              
            }while (ulang == 0);
        }
              
    return 0;
}
 

 Setelah di Compile


Untuk selengkapnya download aja Program Sistem Konfigurasi Elektron In C++

Selamat Mencoba!!!!


Gambar yang lain disini !!
Read more ...

Jumat, April 27, 2012

Kontrol Kecepatan Motor DC Melalui Komunikasi Serial VB


Kontrol Motor dengan Komunikasi Serial
Sama seperti artikel sebelumnya hanya saja disini sebagai inputnya yaitu melalui komunikasi serial PC. Sebagai tampilannya menggunakan Visual Basic 6. Simulasi disini sudah dicoba secara hardware dan hasilnya berhasil. Untuk menghubungkan mikrokontrole pada proteus dengan PC yaitu pada proteus menggunakan komponen COMPIM
sehingga mikrokontroler pada proteus dapat berkomunikasi Serial Port pada PC. Com pada mikro misalnya kita setting COM4 sedangkan pada PC kita setting COM3. Agar COM 3 dan COM dapat berkomunikasi yaitu menggunakan program “virtual serial Port”. Pada tampilan vb yaitu menggunakan scrollbar, nilai dari scrollbar ini dikirim melalui serial yaitu menggunakan mscomm.
Pada mikrokontroler yaitu menggunakan AVR ATMega16. Menggunakan fasilitas interupt serial receive. Jadi saat ada data masuk melalui serial maka otomatis AVR akan menjalankan program yang ada pada subrutin USART Receiver interrupt. Berikut setting programnya pada codevision AVR :
serial1serial2
serial3 serial4
Programnya :
#include
#include
#include
unsigned char cek,input; char lcd_buffer[33];
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm
#include
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<#define PARITY_ERROR (1<#define DATA_OVERRUN (1<#define DATA_REGISTER_EMPTY (1<#define RX_COMPLETE (1<
// USART Receiver buffer
#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];
#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif
// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
PORTD.2=0; PORTD.3=1; OCR0=data; //Data serial untuk mengatur  //kecepatan motor
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,”Data Receive:%d”,data);
lcd_puts(lcd_buffer);
lcd_gotoxy(0,1);
if(OCR0==0){lcd_putsf(“Motor Mati  “);}
else if(OCR0>0 && OCR0<150){lcd_putsf(“Motor pelan”);}
else{lcd_putsf(“Motor Cepat”);}
};
}
#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm(“cli”)
–rx_counter;
#asm(“sei”)
return data;
}
#pragma used-
#endif
// Standard Input/Output functions
#include
// Declare your global variables here
void main(void)
{ unsigned char data_rx[25],input,sip;
unsigned char i,j,k,l; //Declare your local variables here
PORTA=0×00;
DDRA=0×00;
PORTB=0×00;
DDRB=0×08;
PORTC=0×00;
DDRC=0×00;
PORTD=0×00;
DDRD=0xff;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 43.200 kHz
// Mode: Fast PWM top=FFh
// OC0 output: Non-Inverted PWM
TCCR0=0x6D;
TCNT0=0×00;
OCR0=0×00;
TCCR1A=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;
MCUCR=0×00;
MCUCSR=0×00;
TIMSK=0×00;
UCSRA=0×00;
UCSRB=0×98;
UCSRC=0×86;
UBRRH=0×00;
UBRRL=0×47;
ACSR=0×80;
SFIOR=0×00;
// LCD module initialization
lcd_init(16);
// Global enable interrupts
#asm(“sei”)
while (1)
{
};
}
Sedangkan pada tampilan vb nya :
vb musbikhin
Private Sub Form_Load()
Text1 = 0
MSComm1.PortOpen = True
End Sub
Private Sub out_Change()
Dim nilai As Integer
nilai = out.Value
If nilai > 0 And nilai < 125 Then
Text1.BackColor = vbGreen
ElseIf nilai = 125 Then
Text1.BackColor = vbYellow
ElseIf nilai > 175 And nilai < 255 Then
Text1.BackColor = vbRed
End If
Text1 = nilai
MSComm1.Output = “” + Chr$(nilai)
End Sub




Read more ...

Sistem Kendali Jarak Jauh Motor Stepper Melalui RS-232 Berbasis Mikrokontroler MCS-51


P1010056
Sebuah system kendali jarak jauh melalui RS-232 untuk motor stepper dengan spesifikasi hardware:
  • Sistem minimum AT89S51 dengan clock 11.0592 MHz dilengkapi dengan downloader ISP dan komunikasi serial RS-232 ke PC.

  • Motor stepper tipe unipolar 4 fase (kutub) 1.8 derajat/step dengan driver transistor/uln 2803 dan tegangan supplai 12 V.
  • Sistem terhubung via RS-232 ke PC dengan pengaturan via hyperterminal pada baudrate 19200bps.
Cara kerja system :
Bila salah satu tombol [0] s.d [9] pada keyboard PC ditekan maka motor akan berputar searah jarum jam. Semakin besar nilai tombol maka motor stepper tersebut berputar lebih cepat dan bila ditekan tombol ‘0’ maka motor berhenti.
Kecepatan putar stepper = nilai tombol * RPM (putaran/menit).
Solusi :
1. Perhitungan Baudrate
Listing program untuk inisialisasi baudrate :
Mensetting register TMOD dengan nilai 20H, menggunakan timer 8 bit mode 2, auto reload jadi saat overflow nilai TH-1 sama dengan nilai saat disetting. Pada saat auto reload ini, TH yang diisikan dengan nilai awalan cacahan akan menyalin isinya pada TL. Yang selanjutnya TL akan selalu mencacah mulai dari nilai seperti isi TH. Sementara itu isi TH sendiri tidak berubah. Listing program : MOV TMOD,#20h ;Timer-1, Mode-2, auto-reload
Register SCON adalah register 8-bit yang digunakan untuk memprogram bit start dan bit stop pada pembingkaian data, dan hal lainnya. Register SCON diisi dengan nilai 52h, yang berarti serial mode-1, 8-bit data yang dibingkai dengan start dan stop bit. Listing program : MOV SCON,#52h.
Dengan tidak mengubah frekuensi kristal osilator, kita dapat mendua-kalikan baud rate dengan membuat SMOD menjadi = 1 . Saat bit SMOD pada register PCON ini = 1, peralatan serial beralih menggunakan frekuensi yang 1/16 dari siklus mesin ( sebelumnya
1/32 ). Sehingga perhitungannya menjadi MC (Siklus Mesin) = 11.0592 MHz / 12 = 921600 Hz. Baud dasar = 921.6 kHz / 16 = 57,600 Hz (SMOD =1) sehingga untuk menghasilkan frekuensi yang diinginkan yaitu 19200 maka 57600/3= 19200. Nilai 3 diisikan pada register TH1= -3.
Listing program :
MOV A,PCON ;A = PCON
SETB ACC.7 ;Buat D7 = 1 (Double rate)
MOV PCON,A ;
MOV TH1,#-3 ;dengan SMOD=1 === 57600/3 = 19200
2. Perhitungan Kecepatan motor
Pada motor stepper dengan spesifikasi 1,8 derajat/step. Sehingga untuk mencapai satu putaran penuh membutuhkan : 1 putaran = 360 derajat maka banyak step dalam 1 putaran 360/1.8 = 200 step. Crystal yang dipakai yaitu 11059200 Hz. Timer yang akan digunakan yaitu Timer 0 mode 1 sehingga TH0 dan TL0 dapat diisi masing-masing 8 bit.
Kecepatan putar stepper = nilai Tombol * 10 RPM (putaran/menit). Maka untuk mendapatkan nilai yang diisi pada register TH0 adalah dengan perhitungan :
11059200/12 = 921600 Hz sehingga 1 langkah/klik timer 1/921600= 1,085 us. Untuk 10 RPM maka jumlah step 200 step * 10 = 2000 step . Maka tiap step membutuhkan waktu :
60/2000 = 0.03. Untuk mendapatkan nilai TL0 dan TH0 dengan 10 RPM : 0.03 s/1,085 us = 0.03/0.000001085 = 27649 langkah. TL0 dan TH0 bisa diisi dengan 65536-27649=37888. Nilai hexadecimal dari 37887 adalah 93ffh sehingga TL0 =0FFh dan TH0= 93h.


Read more ...
Designed By