Langsung ke konten utama

Project 3 : Input Output Kontrol Led dengan Switch

Lanjut ke project ketiga, bagaimana cara membuat mengontrol Led dengan Switch. Pertama-tama buatlah rangkaian seperti gambar berikut ini:
Bahan-bahan masak yang diperkulakan:
1. 1 set minum sistem
2. 3 buah resistor 330 Ohm
3. 3 Buah Led
4. 3 Buah Switch
Kalau sudah selesai mengsimulasikan rangkaian diatas, maka lanjut ke pembuatan programnya
1. Buka programnya dengan cara double klik Code Version AVR.
2. Kemudian buatlah file baru dengan cara mengarahkan cursor pada menu File-New atau lebih cepatnya langsung klik simbol New.
3. Kemudian akan muncul dialog,  pilih project, klik OK.
4. Kemudian muncul lagi dialog berikutnya, klik Yes.
5. Setelah itu akan muncul dialog CodeWizardAVR, pilih AT90, ATtiny, Atmega, FPSLIC, lalu klik OK.
6. Maka akan muncul file CodeWizardAVR – untitled.cwp, kemudian arahkan kursor ke bagian chip, lalu pilih sesuai dengan jenis mikrokontroler yang digunakan, dalam percobaan ini kita menggunakan Atmega16 dengan clock crystal sebesar 12 MHz.
7. Setelah itu lanjut ke menu Port kemudian pilih Port B, lalu pada bit 0-3 klik untuk merubah In menjadi Out, agar supaya pada bagian Port B 0-3 menjadi berlogika Output.
8. Jika sudah selesai langsung klik Generate, Save and Exit.
9. Setelah itu isikan nama file pada kotak dialog sebanyak 3x dan file yang dituliskan harus menggunakan nama yang sama, kemudian klik Save.
10. Maka akan tampil file project yang telah dibuat, kemudian lengkapi programnya.
Berikut ini adalah contoh tambahan program untuk kontrol led dengan switch.
#include <mega16.h>
#include <delay.h> // tambahkan library waktu tunda (delay.h) untuk mengatur waktu

// Declare your global variables here

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

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=Out
// State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0x07;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In                                                   while () {
    };

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// USART disabled
UCSRB=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

//Kodisi awal semua LED mati
PORTB.0=0;
PORTB.1=0;
PORTB.2=0;

//Kondisi awal switch
PORTD.0=1;
PORTD.1=1;
PORTD.2=1;
while (1)
      {
      if((PIND.0==0)&(PIND.1==1)&(PIND.2==1))
      {
        PORTB.0=1;
        PORTB.1=0;
        PORTB.2=0;
      }
      else if((PIND.0==1)&(PIND.1==0)&(PIND.2==1))
      {        
        PORTB.0=0;
        PORTB.1=1;
        PORTB.2=0;
      }
      else if((PIND.0==1)&(PIND.1==1)&(PIND.2==0))
      {           
        PORTB.0=0;
        PORTB.1=0;
        PORTB.2=1;
      }  
      else if((PIND.0==0)&(PIND.1==0)&(PIND.2==1))
      {
        PORTB.0=1;
        PORTB.1=1;
        PORTB.2=0;   
      }     
      else if((PIND.0==0)&(PIND.1==1)&(PIND.2==0))
      {
        PORTB.0=1;
        PORTB.1=0;
        PORTB.2=1;   
      }  
      else if((PIND.0==1)&(PIND.1==0)&(PIND.2==0))
      {
        PORTB.0=0;
        PORTB.1=1;
        PORTB.2=1;   
      }
      else if((PIND.0==0)&(PIND.1==0)&(PIND.2==0))
      {
        PORTB.0=1;
        PORTB.1=1;
        PORTB.2=1;   
      }   
      else
      {
        PORTB.0=0;
        PORTB.1=0;
        PORTB.2=0;
      }
      }
}
11. Setelah semua kode telah dituliskan dengan benar, lanjutkan dengan menekan tobol F9 untuk mengcompile, maka akan muncul kotak informasi ada tidaknya error. Jika sudah tidak ada error, lanjutkan dengan klik OK.
12. Program siap di upload ke chip mikrokontroler untuk menjalankan sistem yang telah dibuat.
13. Masuk kembali ke simulasi proteus kemudian double klik pada mikrokontroler, lalu akan muncul Edit Component, kemudian klik simbol folder untuk mencari program yang telah dibuat bentuk file hex.
14. Setelah selesai memasukan program ke mikrokontroler, kemudian lanjut mengujinya dengan menekan tombol star yang ada di pojok kiri bawah. Jika program yang dibuat telah benar maka akan mendapatkan hasil sama.


Terima kasih semoga bermanfaat.

Komentar

Postingan populer dari blog ini

Pengalaman Kerja Praktek di Ciheras 2017, Lentera Bumi Nusantara (LBN)

Sebuah pengalaman yang takkan terlupakan sampai kapan pun, Ciheras adalah tempat untuk bermimpi, karena tempat inilah kita akan mengenal lebih jelas, siapa diri kita?, sehingga kita bisa tahu persis apa tugas dan tanggung jawab kita di Negeri ini. Kita datang dari Daerah dan kampus yang berbeda-beda, kita diajarkan tentang perbedaan, saling menerima atau lebih tepatnya kita selalu berkolaborasi dalam hal-hal yang baik. Ini merupakan cerita singkat pengalaman saya. Di Lentera Bumi Nusantara  ada strukturnya, dimana kita bisa memilih devisi mana yang ingin kita pelajari. Karena jurusan saya Elektro maka saya lebih memilih Lentera Angin Nusantra yang lebih memfokuskan ke Pembangkit Listrik Tenaga Bayu(Angin) atau lebih jelasnya Devisi yang bergerak di bidang penguasaan, penerapan dan pengembangan teknologi pemanfaatan energi baru terbarukan untuk aplikasi di Daerah tertinggal, akan tetapi bukan berarti saya tidak bisa belajar dibagian devisi lain, karena disini kita dikasih ke

Project 1: Input Output (I/O) dengan Led

Pembelajaran awal bagi pemulah dalam mengenal mikrokontroler, disarnakan mempelajari terlebih dahulu bagaimana proses input output pada mikrokontroler. Input output yang admin coba simulasikan di sini masih menggunakan 1 buah led. bahan-bahan masak yang digunakan: 1. 1 buah minimum sistem 2. 1 buah led 3. 1 buah resistor 330 Ohm Buatlah simulasi di proteus seperti gambar dibahwa ini: 1. Buka programnya dengan cara double klik Code Version AVR. 2. Kemudian buatlah file baru dengan cara mengarahkan cursor pada menu File-New atau lebih cepatnya langsung klik simbol New. 3. Kemudian akan muncul dialog,  pilih project, klik OK. 4. Kemudian muncul lagi dialog berikutnya, klik Yes. 5. Setelah itu akan muncul dialog CodeWizardAVR, pilih AT90, ATtiny, Atmega, FPSLIC, lalu klik OK. 6. Maka akan muncul file CodeWizardAVR – untitled.cwp, kemudian arahkan kursor ke bagian chip, lalu pilih sesuai dengan jenis mikrokontroler yang digunakan, dalam percobaan ini kita