Pertama Code Vision AVR.
CodeVisionAVR
adalah sebuah compiler C yang telah dilengkapi dengan fasilitas
Integrated Development Environment (IDE) dan didesain agar dapat
menghasilkan kode program secara otomatis untuk mikrokontroler Atmel AVR. Untuk download CodeVisionAVR bisa cari di google search banyak banget.
Kedua Proteus
Proteus adalah sebuah software untuk mendesain PCB yang juga dilengkapi
dengan simulasi pspice pada level skematik sebelum rangkaian skematik
diupgrade ke PCB shingga sebelum PCBnya di cetak kita akan tahu apakah
PCB yang akan kita cetak sudah benar atau tidak. Proteus
mengkombinasikan program ISIS untuk membuat skematik desain rangkaian
dengan program ARES untuk membuat layout PCB dari skematik yang kita
buat. Software ini bagus digunakan untuk desain rangkaian
mikrokontroller. Proteus juga bagus untuk belajar elektronika seperti
dasar2 elektronika sampai pada aplikasi mikrokontroller. Untuk download Proteus bisa cari di google search banyak banget.
Oke langsung saja cara membuat Simulasi Microcontroller Sensor Suhu Menggunakan ATMEGA 8/16/32 :
- Buka code vision AVR nya
- NEW file Project
- Saya menggunakan Atmega 8 bisa diganti dengan yang lain sesuai keinginan
- Setting ADC nya di CV AVR
- disini saya menggunakan 7 segment common anoda dan bisa diganti dengan common cathoda
#include <mega8.h>
#include <delay.h>
unsigned char angka[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
//klo menggunakan 7 segment common catoda = unsigned char angka[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int satuan,puluhan,data,data_temp,x;
#define ADC_VREF_TYPE 0x40
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
void ambil_data()
{
data_temp=data;
satuan=data_temp%10;
puluhan=(data_temp/10)%10;
}
void tampilkan_seven_segment()
{
PORTB.0=1;
PORTB.1=0;
PORTD=angka[satuan];
delay_ms(1);
PORTB.0=0;
PORTB.1=1;
PORTD=angka[puluhan];
delay_ms(1);
}
void main(void)
{
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0xFF;
PORTB=0xff;
DDRB=0xff;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR&=0xEF;
while (1)
{
data=read_adc(0)*0.488;
for(x=0;x<100;x++)
{
ambil_data();
tampilkan_seven_segment();
}
};
}
Berikut tampilan dan skema di Proteus :
Tampilan 7 segment sama dengan LM35
Kita akan buat alarm / suara supaya apabila suhu diatas 30 derajat alarm berbunyi, tapi disini saya mengganti alarm dengan LED:
void ambil_data()
{
data_temp=data;
satuan=data_temp%10;
puluhan=(data_temp/10)%10;
if (data > 30 )
{
PORTB.4=1;
}
else
{
PORTB.4=0;
}
if ( data <= 30 )
{
PORTB.5=1;
}
else
{
PORTB.5=0;
}
}
Berikut tampilan di proteus :
Tampilan 7 segment sama dengan LM35
Kita akan buat alarm / suara supaya apabila suhu diatas 30 derajat alarm berbunyi, tapi disini saya mengganti alarm dengan LED:
- apabila suhu diatas 30 derajat PORTB 4 akan aktif dan LED warna merah akan menyala
- dan apabila suhu sama dengan / kurang dari 30 derajat PORTB 5 akan aktif dan LED warna hijau akan menyala
void ambil_data()
{
data_temp=data;
satuan=data_temp%10;
puluhan=(data_temp/10)%10;
if (data > 30 )
{
PORTB.4=1;
}
else
{
PORTB.4=0;
}
if ( data <= 30 )
{
PORTB.5=1;
}
else
{
PORTB.5=0;
}
}
Berikut tampilan di proteus :
suhu diatas 30 derajat maka led merah menyala
suhu dibawah /sama dengan 30 derajat maka led biru menyala
Oke sampai disini Simulasi Microcontroller Sensor Suhu Menggunakan ATMEGA 8/16/32.
Terimakasih telah berkunjung di Pawang SMart :)
6 komentar
bang yang dipake di proteusnya apa aja
Setting ADC nya di CV AVR cuma dibuat enable aja ????
bang kok avr nya yg untuk led nya 1 error ya?
ada file data simulasi sama avr nya ga?
Bang ini setting adc nya cuma enable?
simulasinya bagus sekali kak
Elever Agency
bang ada layout pcbnya ga