Cara menggunkan Eagle untuk membuat minimum sistem dan line follower

Posted by Unknown Minggu, 31 Agustus 2014 0 komentar
Cara menggunkan Eagle untuk membuat minimum sistem dan line follower
Pada minggu pertama kami terlebih dahulu melakukan perkenalan, kemudian diperkenalkan mengenai mata kuliah gambar teknik, apa yang di pelajari, dan sebagainya. Setelah itu kami di perkenalkan dengan software komputer yang akan kami gunakan dalam beberapa praktikum ke depan. Yaitu eagle 5.10.0 profesional. Dengan sofware tersebut kami dapat menggambar rangkaian listrik tanpa alat yang rumit seperti alat menggambar teknik non grafis, dengan eagle 5.10.0 profesional kami dapat menggambar rangkaian listrik dengan komputer tanpa penggaris, meja gambar, dan sebagainya.
1.     Apakah eagle 5.10.0 Profesional itu?


Eagle adalah sebuah software yang mempermudah manusia dalam  menggambar, mengedit, membuat, dan merancang sebuah rangkaian listrik sebelum diterapakan ke aslinya. Adapun software eagle yang kami gunakan untuk praktikum saat ini adalah eagle versi 5.10.0. berikut adalah cara membuka eagle :
1.      Klik start, apabila sudah menginstal eagle di PC ketik eagle, muncul hasil pencarian kemudian klik kanan dua kali untuk membuka.

2.      Setelah eagle terbuka, untuk membuat file baru maka klik file       New       Schematic. Seperti pada gambar di bawah ini.


3.      Maka munculah tampilan semacam kanvas tempat kita menggambar sebuah rangkaian listrik seperti gambar di bawah ini.

4.      Maka kita siap untuk menggunakan eagle 5.10.0 profesional.









2.     Tampilan schematic eagle versi 5.10.0 profesional.


Ket :
1.        Command buttons :    Berisi tentang perintah yang digunakan untuk proses drawing .          berikut skema dan fungsi pada masing-masing icon pada command buttons.
        
Keterangan Gambar :
1          Info                 : untuk memberikan informasi pada tiap komponen yang di klik
2.         Display                        : untuk menampilkan warna atribut skema rangkaian
3.         Move               : untuk memindah komponen/klik 2x rotate
4.         Mirror              : untuk membalik posisi komponen (sudut sebesar 180’)
5.         Group              : untuk mengelompokkan komponen
6.         Cut                   : untuk memotong atribut skema
7.         Delete              : untuk menghapus atribut komponen
8.         Pinswap           : untuk menukar pin yang sama
9.         Gateswap        : untuk menukar gerbang yang sama
10.       Name              : untuk memberi nama pada objek
11.       Smash             : untuk memisahkan nama / nilai
12.       Split                : untuk membengkokkan garis
13.       Wire                : untuk membuat garis/jalur penghubung antarkomponen
14.       Circle              : untuk menggambar lingkaran
15.       Rect                : untuk
16.       Bus                 : untuk membuat jalur BUS
17.       Junction          : untuk membuat titik penghubung antar jalur pada Layer Skema
18.       Attribut           : untuk
19.       Erc                  : untuk mengecek elektrisitas sesuai aturan yang berlaku
20.       Show object    : untukmenampilkan objek
21.       Mark                : untukmenandai lembar kerja dan menampilkan koordinat
22.       Copy               : untuk menyalin komponen
23.       Rotate             : untuk merubah posisi komponen (sudut sebesar 90’)
24.       Change           : untuk mengubah aturan dasar objek
25.       Paste               : untuk
26.       Add                : untuk menambah komponen
27.       Replace                       : untuk mengganti bagian dari gambar kerja dengan bagian lain
28.       Value              : untuk merubah / menetapkan nilai komponen
29.       Miter               : untuk membengkokkan sudut
30.       Invoke                        : untuk mengaktifkan gerbang dari suatu rangkaian
31.       Text                : untuk menambahkan teks
32.       Arc                 : untuk membuat
33.       Polygon          : untuk membuat polygon
34.       Net                  : untuk menggambar koneksi elektrik
35.       Label              : untuk memberi label pada masing-masing komponen
36.       Errors               : untuk menampilkan error oleh ERC atau DRC

2.        Actions Buttons :        Berisi tombol yang mewakilkan perintah untuk mengatur tampilan eagle.
Berikut merupakan tampilan actions buttons.

                 Keterangan :
1.                  Open                            : untuk membuka file
2.                  Save                             : untuk menyimpan file yang telah dikerjakan
3.                  Print                             : untukmencetak gambar kerja
4.                  CAM Processor                        : untuk
5.                  Board dan Sheet                       : untuk menampilkan layout board dan rangkaian
6.                   Use                              : untuk membuka tempat penyimpanan file komponen
7.                   Script dan Run                        : untuk mengeksekusi file script dan menjalankan
                                       program bahasa yang dibuar oleh pengguna
8.                  Zoom to fit                   : untuk menyesuaikan gambar kerja dengan layar
9.                   Zoom in                      : untuk memperbesar tampilan gambar kerja
10.               Zoom out                    : untuk memperkecil tampilan gambar kerja
11.              Redraw                                     : untuk
12.               Select                          : untuk memperbesar gambar kerja pada bagian dipilih
13.               Undo                           : untuk kembali pada operasi sebelumnya
14.               Redo                           : untukmenuju pada operasi yang pernah dilakukan
15.              Cancel                          : untuk membatalkan perintah
16.               Go                               : untuk mengeksekusi perintah

17.              Help                             : untuk memnita bantuan penggunaan software

Baca Selengkapnya ....

Timer Mikrokontroler tentang tujuan penggunaan timer pada AT-Mega

Posted by Unknown Jumat, 15 Agustus 2014 0 komentar

Timer Mikrokontroler tentang tujuan penggunaan timer pada AT-Mega
A.    TUJUAN PENGGUNAAN TIMER & COUNTER
1.                        Melaksanaan tugas secara ber-ulang
2.                        Mengendalikan kecepatan motor DC (PWM)
3.                        Melakukan perhitungan (Counter)
4.                        Membuat penundaan waktu (delay)

B.     TEORI SINGKAT
Timer & Counter merupakan fitur yang telah tertanam di mikrokontroler AVR yang memiliki fungsi terhadap waktu. Fungsi pewaktu yang dimaksud disini adalah penentuan kapan program tersebut dijalankan, tidak hanya itu saja fungsi timer yang lainnya adalah PWM, ADC, dan Oscillator. Prinsip kerja timer dengan cara membagi frekuensi (prescaler) pada clock yang terdapat pada mikrokontroler sehingga timer dapat berjalan sesuai dengan frekuensi yang di kehendaki.
Timer merupakan fungsi waktu yang sumber clocknya berasal dari clock internal. Sedangkan counter merupakan fungsi perhitungan yang sumber clocknya berasal dari external mikrokontroler. Salah satu contoh penggunaan fungsi timer yaitu pada jam digital yang sumber clocknya bisa menggunakan crystal oscillator dan contoh penggunaan counter pada penghitung barang pada konveyor yang sumber clocknya berasal dari sensor yang mendeteksi barang tersebut.
Pada mikrokontroler ATMEGA 16 memiliki 3 buah timer yaitu timer 0 (8bit), timer1 (16bit), dan timer 2 (8bit). Untuk mengenai register lengkapnya bisa dibaca pada datasheet. Namun yang akan dibahas pada tulisan kali ini hanya timer 0(8bit) dan timer1 (16 bit) saja.
Register yang Digunakan untuk Timer & Counter

§  TCNT0 = Register Timer 1
§  TCNT 1 = Register Timer 0
§  Ttimer0 = Periode Timer 0
§  Ttimer 1 =Periode Timer 1
§  Tosc = Periode Clock
§  Fosc = Frekuensi Crystall Clock
§  N = Prescaler (1, 8, 64, 256, 1024)

Jika anda ingin membuat project yang berhubungan dengan mikrokontroler bisa ke halaman ini
atau dapat klik ini






Baca Selengkapnya ....

Penjelasan komponen robot line follower sederhana tentang Transistor FET JFET dan MOSFET

Posted by Unknown Rabu, 13 Agustus 2014 0 komentar
Penjelasan komponen robot line follower sederhana tentang Transistor FET JFET dan MOSFET

Transistor FET
JFET dan MOSFET

Transistor Bipolar dinamakan demikian karena bekerja dengan 2 (bi) muatan yang berbeda yaitu elektron sebagai pembawa muatan negatif dan hole sebagai pembawa muatan positif. Ada satu jenis transistor lain yang dinamakan FET (Field Efect Transistor). Berbeda dengan prinsip kerja transistor bipolar, transistor FET bekerja bergantung dari satu pembawa muatan, apakah itu elektron atau hole. Karena hanya bergantung pada satu pembawa muatan saja, transistor ini disebut komponen unipolar. komponen robot line follower
Umumnya untuk aplikasi linear,  transistor bipolar lebih disukai, namun transistor FET sering digunakan juga karena memiliki impedansi input (input impedance) yang sangat besar. Terutama jika digunakan sebagai switch, FET lebih baik karena resistansi dan disipasi dayanya yang kecil.   
Ada dua jenis transistor FET yaitu JFET (junction FET) dan MOSFET (metal-oxide semiconductor FET).  Pada dasarnya kedua jenis transistor memiliki prinsip kerja yang sama, namun tetap ada perbedaan yang mendasar pada struktur dan karakteristiknya.
 
TRANSISTOR JFET
Gambar dibawah menunjukkan struktur transistor JFET kanal n dan kanal p. Kanal n dibuat dari bahan semikonduktor tipe n dan kanal p dibuat dari semikonduktor tipe p. Ujung atas dinamakan Drain dan ujung bawah dinamakan Source. Pada kedua sisi kiri dan kanan terdapat implant semikonduktor yang berbeda tipe. Terminal  kedua sisi implant ini terhubung satu dengan lainnya secara internal dan dinamakan Gate.

Struktur JFET (a) kanal-n (b) kanal-p
Istilah field efect (efek medan listrik) sendiri berasal dari prinsip kerja transistor ini yang berkenaan dengan lapisan deplesi (depletion layer). Lapisan ini terbentuk antara semikonduktor tipe n dan tipe p, karena bergabungnya elektron dan hole di sekitar daerah perbatasan. Sama seperti medan listrik, lapisan deplesi ini bisa membesar atau mengecil tergantung dari tegangan antara gate dengan source. Pada gambar di atas, lapisan deplesi ditunjukkan dengan warna kuning di sisi kiri dan kanan. komponen atmega

Baca Selengkapnya ....

Penjelasan komponen robot line follower sederhana tentang JFET kanal-n

Posted by Unknown 0 komentar
Penjelasan komponen robot line follower sederhana tentang JFET kanal-n

JFET kanal-n
Untuk menjelaskan prinsip kerja transistor JFET lebih jauh akan ditinjau  transistor JFET kanal-n. Drain dan Source transistor ini dibuat dengan semikonduktor tipe n dan  Gate dengan tipe p. Gambar berikut menunjukkan bagaimana transistor ini di beri tegangan bias. Tegangan bias antara gate dan source adalah tegangan reverse bias atau disebut bias negatif. Tegangan bias negatif berarti tegangan gate lebih negatif terhadap source. Perlu catatan, Kedua gate terhubung satu dengan lainnya (tidak tampak dalam gambar). 

Lapisan deplesi jika gate-source biberi bias negatif
Dari gambar di atas, elektron yang mengalir dari source menuju drain harus melewati lapisan deplesi. Di sini lapisan deplesi berfungsi semacan keran air. Banyaknya elektron yang mengalir dari source menuju drain tergantung dari ketebalan lapisan deplesi. Lapisan deplesi bisa menyempit,  melebar atau membuka tergantung dari tegangan gate terhadap source.  
Jika gate semakin negatif terhadap source, maka lapisan deplesi akan semakin menebal. Lapisan deplesi bisa saja menutup seluruh kanal transistor bahkan dapat menyentuh drain dan source.  Ketika keadaan ini terjadi, tidak ada arus yang dapat mengalir atau sangat kecil sekali. Jadi jika tegangan gate semakin negatif terhadap source maka semakin kecil arus yang bisa melewati kanal drain dan source. 

Lapisan deplesi pada saat tegangan gate-source = 0 volt
Jika misalnya tegangan gate dari nilai negatif perlahan-lahan dinaikkan sampai sama dengan tegangan Source. Ternyata lapisan deplesi mengecil hingga sampai suatu saat terdapat celah sempit.  Arus elektron mulai mengalir melalui celah sempit ini dan terjadilah konduksi Drain dan Source. Arus yang terjadi pada keadaan ini adalah arus maksimum yang dapat mengalir berapapun tegangan drain terhadap source. Hal ini karena celah lapisan deplesi sudah maksimum tidak bisa lebih lebar lagi. Tegangan gate tidak bisa dinaikkan menjadi positif, karena kalau nilainya positif maka gate-source tidak lain hanya sebagai dioda.    Dalam line follower  
Karena tegangan bias yang negatif, maka arus gate yang disebut IG akan sangat kecil sekali. Dapat dimengerti resistansi input (input impedance) gate akan sangat besar. Impedansi input transistor FET umumnya bisa mencapai satuan MOhm. Sebuah transistor JFET diketahui arus gate 2 nA pada saat tegangan reverse gate 4 V, maka dari hukum Ohm dapat dihitung resistansi input transistor ini adalah :
Rin = 4V/2nA = 2000 Mohm

Komponen ini juga digunakan dalam rangkain sistem AT-Mega

Baca Selengkapnya ....

Komponen Robot line follower yaitu Transistor FET JFET dan MOSFET

Posted by Unknown Selasa, 12 Agustus 2014 0 komentar

Komponen Robot line follower yaitu Transistor FET JFET dan MOSFET


Transistor FET
JFET dan MOSFET
Transistor Bipolar dinamakan demikian karena bekerja dengan 2 (bi) muatan yang berbeda yaitu elektron sebagai pembawa muatan negatif dan hole sebagai pembawa muatan positif. Ada satu jenis transistor lain yang dinamakan FET (Field Efect Transistor). Berbeda dengan prinsip kerja transistor bipolar, transistor FET bekerja bergantung dari satu pembawa muatan, apakah itu elektron atau hole. Karena hanya bergantung pada satu pembawa muatan saja, transistor ini disebut komponen unipolar. 
Umumnya untuk aplikasi linear,  transistor bipolar lebih disukai, namun transistor FET sering digunakan juga karena memiliki impedansi input (input impedance) yang sangat besar. Terutama jika digunakan sebagai switch, FET lebih baik karena resistansi dan disipasi dayanya yang kecil.     line follower
Ada dua jenis transistor FET yaitu JFET (junction FET) dan MOSFET (metal-oxide semiconductor FET).  Pada dasarnya kedua jenis transistor memiliki prinsip kerja yang sama, namun tetap ada perbedaan yang mendasar pada struktur dan karakteristiknya.
 
TRANSISTOR JFET
Gambar dibawah menunjukkan struktur transistor JFET kanal n dan kanal p. Kanal n dibuat dari bahan semikonduktor tipe n dan kanal p dibuat dari semikonduktor tipe p. Ujung atas dinamakan Drain dan ujung bawah dinamakan Source. Pada kedua sisi kiri dan kanan terdapat implant semikonduktor yang berbeda tipe. Terminal  kedua sisi implant ini terhubung satu dengan lainnya secara internal dan dinamakan Gate.


Struktur JFET (a) kanal-n (b) kanal-p
Istilah field efect (efek medan listrik) sendiri berasal dari prinsip kerja transistor ini yang berkenaan dengan lapisan deplesi (depletion layer). Lapisan ini terbentuk antara semikonduktor tipe n dan tipe p, karena bergabungnya elektron dan hole di sekitar daerah perbatasan. Sama seperti medan listrik, lapisan deplesi ini bisa membesar atau mengecil tergantung dari tegangan antara gate dengan source. Pada gambar di atas, lapisan deplesi ditunjukkan dengan warna kuning di sisi kiri dan kanan. AT-Mega 8

Dan in juga biasa digunakan dalam AT-Mega

Baca Selengkapnya ....

Listing Program Wavecom dengan Menggunakan Minimum Sistem AT-Mega 8

Posted by Unknown Kamis, 31 Juli 2014 0 komentar
Listing Program Wavecom dengan Menggunakan Minimum Sistem AT-Mega 8

LISTING PROGRAM
    /*****************************************************
    This program was produced by the
    CodeWizardAVR V2.05.3 Standard
    Automatic Program Generator
    © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com

    Project :
    Version :
    Date    : 7/5/2014
    Author  : Sh.mukti
    Company : Jangan gunakan software bajakan!
    Comments:


    Chip type               : ATmega8
    Program type            : Application
    AVR Core Clock frequency: 11.059200 MHz
    Memory model            : Small
    External RAM size       : 0
    Data Stack size         : 256
    *****************************************************/

    #include <mega8.h>                       // untuk header library AT-Mega 8
    #include <delay.h>                          // untuk header library delay

    // Alphanumeric LCD functions
    #include <alcd.h>                            // untuk header library penampilan LCD



// inisialisasi USART (sudah otomatis dibuat di code visioan)
    #ifndef RXB8                                 
    #define RXB8 1                               // mendefinisikan RX menjadi 1
    #endif                                                                // mengakhir.e defenisi

    #ifndef TXB8
    #define TXB8 0                               // mendefinisikan TX menjadi 0
    #endif                                                                // mengakhir.e defenisi

    #ifndef UPE
    #define UPE 2                                  // mendefinisikan Register UPE menjadi 2
    #endif                                                                // mengakhir.e defenisi

    #ifndef DOR
    #define DOR 3                                 // mendefinisikan Register DOR menjadi 3
    #endif

    #ifndef FE
    #define FE 4                                    
    #endif

    #ifndef UDRE
    #define UDRE 5
    #endif

    #ifndef RXC
    #define RXC 7
    #endif

    #define FRAMING_ERROR (1<<FE)
    #define PARITY_ERROR (1<<UPE)
    #define DATA_OVERRUN (1<<DOR)
    #define DATA_REGISTER_EMPTY (1<<UDRE)
    #define RX_COMPLETE (1<<RXC)

    // 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_BUFFER_SIZE == 256
       // special case for receiver buffer size=256
       if (++rx_counter == 0) rx_buffer_overflow=1;
    #else
       if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
       if (++rx_counter == RX_BUFFER_SIZE)
          {
          rx_counter=0;
          rx_buffer_overflow=1;
          }
    #endif
       }
    }

    #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_BUFFER_SIZE != 256
    if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
    #endif
    #asm("cli")
    --rx_counter;
    #asm("sei")
    return data;
    }
    #pragma used-
    #endif

    // USART Transmitter buffer
    #define TX_BUFFER_SIZE 8
    char tx_buffer[TX_BUFFER_SIZE];

    #if TX_BUFFER_SIZE <= 256
    unsigned char tx_wr_index,tx_rd_index,tx_counter;
    #else
    unsigned int tx_wr_index,tx_rd_index,tx_counter;
    #endif

    // USART Transmitter interrupt service routine
    interrupt [USART_TXC] void usart_tx_isr(void)
    {
    if (tx_counter)
       {
       --tx_counter;
       UDR=tx_buffer[tx_rd_index++];
    #if TX_BUFFER_SIZE != 256
       if (tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
    #endif
       }
    }

    #ifndef _DEBUG_TERMINAL_IO_
    // Write a character to the USART Transmitter buffer
    #define _ALTERNATE_PUTCHAR_
    #pragma used+
    void putchar(char c)
    {
    while (tx_counter == TX_BUFFER_SIZE);
    #asm("cli")
    if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
       {
       tx_buffer[tx_wr_index++]=c;
    #if TX_BUFFER_SIZE != 256
       if (tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
    #endif
       ++tx_counter;
       }
    else
       UDR=c;
    #asm("sei")
    }
    #pragma used-
    #endif

    // Standard Input/Output functions
    #include <stdio.h>

    // Declare your global variables here
     char data;
            // Declare your global variables here
                void sms_init()                                     // inisialisasi wavecom
                {
                        printf("ATE0");                            // kirim menuju wavecom bentuk ATE0
                        putchar(0x0D);                            // kirim menuju wavecom berupa    ENTER
                        while(getchar()!='K'){};               // tunggu mikrokontroler menerima karakter K
                        while(getchar()!=0x0A){};         // tunggu mikrokontroler menerima karakter pindah baris
                        delay_ms(500);                           // tunggu selama 500ms
                        lcd_clear();                                    // menghapus tampilan LCD
                        lcd_gotoxy(0,0);                          // menempakan posisi kursor pada x dan y 0,0
                        lcd_putsf("inisialisasi selesai"); // menampilkan karakter
                        delay_ms(1000);                         // // tunggu selama 1000ms
                }

             
                void send_sms_txt(char flash *fmtstr1, char flash *fmtstr2)
                {
                        printf("AT+CMGF=1");              // kirim menuju wavecom bentuk AT+CMGF=1
                        putchar(0x0D);//ENTER
                        while(getchar()!=0x0A){};         // tunggu mikrokontroler menerima karakter pindah baris
                        while(getchar()!=0x0A){};
                        delay_ms(500);                           // tunggu selama 500ms

                        printf("AT+CMGS=\"");             // kirim menuju wavecom bentuk AT+CMGF=1
                        printf(fmtstr1);                             // kirim karakter yang ada dalam fungsi ftsmrt
                        printf("\"");
                        putchar(0x0D);//ENTER
                        while(getchar()!=0x0A){};
                        delay_ms(500);         

                        printf(fmtstr2);             // kirim karakter yang ada dalam fungsi ftsmrt
                        putchar(0x1A);            // kirim karakter
                        while(getchar()!=0x0A){};
                        while(getchar()!=0x0A){};
                        while(getchar()!=0x0A){};
                        while(getchar()!=0x0A){};
                        delay_ms(500);  

                        printf("AT+CMGD=1");
                        putchar(0x0D);//ENTER
                        while(getchar()!=0x0A){};
                        while(getchar()!=0x0A){};
                        delay_ms(500);        

                        printf("AT+CMGD=2");
                        putchar(0x0D);//ENTER
                        while(getchar()!=0x0A){};
                        while(getchar()!=0x0A){};
                        delay_ms(500);        

                        printf("AT+CMGD=3");
                        putchar(0x0D);//ENTER
                        while(getchar()!=0x0A){};
                        while(getchar()!=0x0A){};
                        delay_ms(500);
                }     
               
                char receive_sms()
                {
               
                        printf("AT+CMGR=1");
                        putchar(0x0D);
                        while(getchar()!=0x0A){};
                        while(getchar()!=0x0A){};
                        data=getchar();
                        while(getchar()!='K'){};
                        while(getchar()!=0x0A){};

                        delay_ms(500);

                        printf("AT+CMGD=1");
                        putchar(0x0D);//ENTER
                        while(getchar()!='K'){};
                        while(getchar()!=0x0A){};
                        delay_ms(500);         

                        return(data);
                }    

                void cek_sms()
                {
                        while(getchar()!=','){}; // tunggu selama ambil karakter ,
                        while(getchar()!=0x0A){};
                }

                // Declare your global variables here



            unsigned char dataku,x,buf[100]; 

    void main(void)
    {
    PORTB=0x00;                 // untuk mereset PORT B (mematikan lampu dan buzzer)
    DDRB=0xFF;                   // ini sialisasi register untuk menjadi output

    PORTC=0x00;                 // di reset karena sudah ada insialisasi LCD
    DDRC=0x00;                   // register di reset karena sudah ada insialisasi LCD

  
    PORTD=0x00;                
    DDRD=0x00;                  

   
    TCCR0=0x00;
    TCNT0=0x00;

    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    MCUCR=0x00;

    TIMSK=0x00;

    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: On
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 115200
    UCSRA=0x00;
    UCSRB=0xD8;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x05;

    ACSR=0x80;
    SFIOR=0x00;

    ADCSRA=0x00;

    SPCR=0x00;

    TWCR=0x00;

    // Alphanumeric LCD initialization
    // Connections are specified in the
    // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
    // RS - PORTD Bit 2
    // RD - PORTC Bit 5
    // EN - PORTC Bit 4
    // D4 - PORTC Bit 3
    // D5 - PORTC Bit 2
    // D6 - PORTC Bit 1
    // D7 - PORTC Bit 0
    // Characters/line: 16
    lcd_init(16);

    // Global enable interrupts
    #asm("sei")
                 lcd_clear();
                delay_ms(1000);
                lcd_gotoxy(0,0);
                lcd_putsf(">>inisialisai<<");
                x=0;                        // untuk variable pembantu kondisi
                sms_init();                    // menjalankan fungsi yang ada dalam sms_init
           
            while (1)                     tunggu jika benar
                  {
                  // Place your code here
                        if(x == 4)                                       // jika x=4 maka akan jalankan bawahnya
                        {
                            send_sms_txt("081287524759","semua lampu menyala");          melakuakan fungsi send_sms
                            lcd_clear();
                            lcd_gotoxy(0,0); 
                            lcd_putsf("semua lampu on");             // menampikn krakter pada lcd
                            delay_ms(2000);
                            x=5 ;   // variable x menjadi 5
                        }
                        if(x == 0)       // jika x=0 maka akan jalankan bawahnya
                        {
                            send_sms_txt("081287524759","semua lampu mati");
                            lcd_clear();
                            lcd_gotoxy(0,0); 
                            lcd_putsf("semua lampu off");
                            delay_ms(2000);
                            x=1;   // variable x menjadi bernilai 1
                        }  
                      
                       
                        lcd_clear();
                        lcd_gotoxy(0,0);         
                        lcd_putsf("siap menerima kode");  

                        cek_sms();    // menjalankan fungsi cek_ms

                        lcd_clear();
                        lcd_gotoxy(0,0);
                        lcd_putsf("ada sms, siap cek kode");  
                             
                        dataku = receive_sms()-48;       //normalisasi bilangan, ascii to desimal 

                        switch(dataku)             // logika pemilihan seseui dengan yang berisi dalam dataku
                        {
                                case 1: lcd_clear();                              // jika kondisi dataku bernilai 1 maka jalan kan fungsi ini
                                        lcd_gotoxy(0,0);
                                        lcd_putsf("turn on lamp 1");
                                        PORTB.1=1;                 // menyalakan buzer
                                        x=x+1;                                           // x yang baru = x lama ditambah 1
                                        lcd_gotoxy(1,1);                          //
                                        sprintf(buf,"x= %d",x);               // menampikan data yang bias berubah
                                        lcd_puts(buf);
                                        delay_ms(2000);                         // delay 2 detik
                                        PORTB.5=1;                                 // menyalakan lampu 1
                                        PORTB.1=0;                 // mematikan buzer
                                       
                                        break;                                            //  keluar fungsi case
                                case 2: lcd_clear();
                                        lcd_gotoxy(0,0);
                                        lcd_putsf("lampu 2 on");
                                        PORTB.1=1;
                                         x=x+1;
                                        lcd_gotoxy(1,1);
                                        sprintf(buf,"x= %d",x);
                                        lcd_puts(buf);
                                        delay_ms(2000); 
                                        PORTB.4=1;                                 // menyalakan lampu 2
                                        PORTB.1=0;
                                       
                                        break;
                                case 3: lcd_clear();
                                        lcd_gotoxy(0,0);
                                        lcd_putsf("lampu 3 on");                    
                                        PORTB.1=1;
                                        x=x+1;  
                                        lcd_gotoxy(1,1);
                                        sprintf(buf,"x= %d",x);
                                        lcd_puts(buf);
                                        delay_ms(2000); 
                                        PORTB.3=1;                                 // menyalakan lampu 3
                                        PORTB.1=0;
                                        break;
                                case 4: lcd_clear();
                                        lcd_gotoxy(0,0);
                                        lcd_putsf("lampu1 off");                   
                                        PORTB.1=1;
                                        x=x-2;  
                                        lcd_gotoxy(1,1);
                                        sprintf(buf,"x= %d",x);
                                        lcd_puts(buf);
                                        delay_ms(2000); 
                                        PORTB.5=0; // mematikan lampu 1
                                        PORTB.1=0;
                                        break;
                                case 5: lcd_clear();
                                        lcd_gotoxy(0,0);
                                        lcd_putsf("lampu2 off");                   
                                        PORTB.1=1;
                                        x=x-1;                            // variable x baru adalah x lama dikurangi 1
                                        lcd_gotoxy(1,1);
                                        sprintf(buf,"x= %d",x);
                                        lcd_puts(buf);
                                        delay_ms(2000); 
                                        PORTB.4=0;                 // mematikan lampu 2
                                        PORTB.1=0;
                                        break;
                                case 6: lcd_clear();
                                        lcd_gotoxy(0,0);
                                        lcd_putsf("lampu3 off");                   
                                        PORTB.1=1;
                                        x=x-2;  
                                        lcd_gotoxy(1,1);
                                        sprintf(buf,"x= %d",x);
                                        lcd_puts(buf);
                                        delay_ms(2000); 
                                        PORTB.3=0;                 // mematikan lampu 3
                                        PORTB.1=0;
                                        break;
                        }
                      
                      }
    }



ini bisa dibuatkan untuk keperluan yanglain silah kan kunjungi http://jualrobotlinefollower.blogspot.com/2014/06/jasa-pembuatan-minimum-sistem-sesuai.html

Baca Selengkapnya ....
Buat Email | Copyright of Jual Robot Line Follower | Tracer | USB Downloader | Line Follower.