LED
LED (Light Emitting Dioda)
adalah dioda yang dapat memancarkan cahaya pada saat mendapat arus bias maju
(forward bias). LED (Light Emitting Dioda) dapat memancarkan cahaya
karena menggunakan dopping galium, arsenic dan phosporus. Jenis doping yang
berbeda diata dapat menhasilkan cahaya dengan warna yang berbeda. LED (Light
Emitting Dioda) merupakann salah satu jenis dioda, sehingga hanya akan
mengalirkan arus listrik satu arah saja. LED akan memancarkan cahaya apabil
diberikan tegangan listrik dengan konfigurasi forward bias. Berbeda dengan
dioda pada umumnya, kemampuan mengalirkan arus pada LED (Light Emitting Dioda)
cukup rendah yaitu maksimal 20 mA. Apabila LED (Light Emitting Dioda) dialiri
arus lebih besar dari 20 mA maka LED akan rusak, sehingga pada rangkaian LED
dipasang sebuah resistor sebgai pembatas arus. Simbol dan bentuk fisik dari LED
(Light Emitting Dioda) dapat dilihat pada gambar berikut.
LED memiliki kaki 2 buah
seperti dengan dioda yaitu kaki anoda dan kaki katoda. Pada gambar diatas kaki
anoda memiliki ciri fisik lebih panjang dari kaki katoda pada saat masih baru,
kemudian kaki katoda pada LED (Light Emitting Dioda) ditandai dengan bagian body LED yang di papas
rata. Kaki anoda dan kaki katoda pada LED (Light Emitting Dioda) disimbolkan
seperti pada gambar diatas. Pemasangan LED (Light Emitting Dioda) agar dapat
menyala adalah dengan memberikan tegangan bias maju yaitu dengan memberikan
tegangan positif ke kaki anoda dan tegangan negatif ke kaki katoda.
Button Switch
Push button switch (saklar tombol tekan) adalah perangkat / saklar sederhana yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik. Sebagai device penghubung atau pemutus, push button switch hanya memiliki 2 kondisi, yaitu On dan Off (1 dan 0).
Prinsip Keja
Pada aplikasi ini menggunkan ATMega 32, push button dan led. Dimna pushbutton sebagai input yang di hubungkan di port B dan LED sebagai output yang di hubungkan dengan port A. Pada aplikasi ini kita membuat animasi dengan 8 buah LED yang di kontrol dengan PUSH BUTTON dimana kondisi yang kita program seperti tabel berikut ini.
pada tabel terlihat setiap tombol memiki keadan animasi yang berbeda. Dan animasi yang berbeda tersebut kita pogram nantinya.
/*****************************************************
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 : 7/30/2017
Author : Freeware, for evaluation and non-commercial use only
Company :
Comments:
Chip type : ATmega32
Program type : Application
AVR Core Clock frequency: 16.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 512
*****************************************************/
#include <mega32.h> //library ATmega 32
#include <delay.h> // library delay
// Declare your global variables here
void main(void) //fungsi utama
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTA=0x00; // untuk melakukan inisialisasi PORT A
DDRA=0xFF; // untuk melakukan inisialisasi DDR A
// Port B 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
PORTB=0x00; // untuk melakukan inisialisasi PORT B
DDRB=0x00; // untuk melakukan inisialisasi DDR B
// Port C 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
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;
while (1) //fungsi pengulangan
{
// Place your code here
// PORTA=PINB;
if(PINB.0==0)PORTA=0b11100111; // jika pin 0 pada port B bernilai 0 atau low maka port a menghidupkan LED yang telah di tentukan.
else if(PINB.1==0)PORTA=0b01010101; // jika pin 1 pada port B bernilai 0 atau low maka port a menghidupkan LED yang telah di tentukan.
else if(PINB.2==0)PORTA=0b00100100;
else if(PINB.3==0)
{
PORTA=0b01100110;
delay_ms(100);
PORTA=0b11111111;
delay_ms(100); // waktu delay
}
else if(PINB.4==0)
{
PORTA=0b01111111;
delay_ms(100);
PORTA=0b10011111;
delay_ms(100);
PORTA=0b11001111;
delay_ms(100);
PORTA=0b11100111;
delay_ms(100);
PORTA=0b11110011;
delay_ms(100);
PORTA=0b11111001;
delay_ms(100);
PORTA=0b11111100;
delay_ms(100);
}
else if(PINB.5==0)
{
PORTA=0b11111100;
delay_ms(100);
PORTA=0b11111001;
delay_ms(100);
PORTA=0b11110011;
delay_ms(100);
PORTA=0b11100111;
delay_ms(100);
PORTA=0b11001111;
delay_ms(100);
PORTA=0b10011111;
delay_ms(100);
PORTA=0b00111111;
delay_ms(100);
}
else if(PINB.6==0)
{
PORTA=0b01111110;
delay_ms(100);
PORTA=0b10111101;
delay_ms(100);
PORTA=0b11011011;
delay_ms(100);
PORTA=0b11100111;
delay_ms(100);
PORTA=0b11011011;
delay_ms(100);
PORTA=0b10111101;
delay_ms(100);
PORTA=0b01111110;
delay_ms(100);
}
else if(PINB.7==0)
{
PORTA=0b10000001;
delay_ms(100);
PORTA=0b11000011;
delay_ms(100);
PORTA=0b11100111;
delay_ms(100);
PORTA=0b11111111;
delay_ms(100);
}
}
}
Bisa di download disini dan semoga bermanfaat. :)
Tidak ada komentar:
Posting Komentar