Senin, 12 September 2016

PROJECT SEDERHANA RUNNING LED+TUTORIAL AVR & PROTEUS

PROJECT RUNNING LED



Assalamu'alaikum,, selamat siang kawan semua :D kali ini saya akan memposting " Tutorial CVAVR & Proteus " dilengkapi juga skema sederhana Running Led... Oke langsung saja ke pokok pembahasan

1. Buka terlebih dahulu CVAVR yang sudah terinstal di PC kawan semua
2. Lalu untuk memulai membuat coding pergi ke File => New

3. Lalu pilih ' Project '

4. Klik ' Yes '

5. Nanti akan muncul tampilan seperti ini, untuk memilih IC yang akan digunakan nanti, pilih bagian ' Chip ' lalu ganti dengan IC yang akan digunakan. Untuk mengganti nilai Xtal yang akan digunakan nanti, rubah nilai yang ada pada bagian ' Clock '... Disini saya menggunakan ATmega16 dan nilai Xtal nya 12.000000 MHz.


6. Pergi ke bagian ' Port ' untuk mensetting Port mana yang akan digunakan sebagai Input dan Output...
Yang di beri lingkaran, itu berarti Toogle(Input tidak diberi Positif/Negatif), maka dari itu, bagian yang diberi lingkaran itu ubah menjadi ' P ' dengan cara klik huruf ' T ' nya. ' P ' berarti ' Pullup ', yang artinya input diberi Positif/Negatif... Jadi, PORTA dijadikan sebgai INPUT.


7. Sekarang tinggal menentukan PORT mana yang akan dijadikan sebagai Output. Disini saya menggunakan PORTB sebagai Output,,, Bagian yang diberi lingkaran tersebut manandakan kondisi awal Output. Disini saya menggunakan LED sebagai Output. Pada skema yang saya buat, LED diberi Negatif, maka kondisi awal LED akan mati, karena diberi logic 0 seperti bagian yang saya lingkari tersebut. namun jika LED diberi Positif, maka kondisi awal LED akan menyala jika diberi logic 0.

*NB = AKTIF HIGH = LED akan menyala jika diberi logic ' 1 '
            AKTIF LOW  = LED akan menyala jika diberi logic ' 0 '

8. Jika selesai menyetting, pergi ke File => Generate, Save and Exit

9. Pilih lokasi penyimpanan

10. Lalu save, nanti akan muncul 3x tampilan seperti gambar dibawah ini, pastikan nama savean pertama sama dengan savean kedua dan ketiga.

11. Setelah selesai di save, nanti akan muncul tampilan seperti ini,, dan inilah awal dari memulai pemrograman

Nah untuk coding nya seperti berikut =

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

Project           : 
Version          : 
Date               : 9/13/2016
Author           : PC 27
Company       : 
Comments     : 


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

#include  'mega16.h' // tanda ' diganti dengan < dan >
#include  'delay.h'
#include  'stdio.h'

// INISIALISASI OUTPUT(LED)
#define L1 PORTB.0 // artinya, L1(LED1) sebagai PORTB.0
#define L2 PORTB.1
#define L3 PORTB.2
#define L4 PORTB.3
#define L5 PORTB.4
#define L6 PORTB.5
#define L7 PORTB.6
#define L8 PORTB.7
#define LED PORTB  // artinya, LED sebagai PORTB(bit0 - bit7)

//INISIALISASI INPUT(PUSH BUTTON)
#define SW1 PINA.0 // artinya, SW1(SWITCH1) sebagai PINA.0
#define SW2 PINA.1
#define SW3 PINA.2
#define SW4 PINA.3



// 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=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P 
PORTA=0xFF;  // PORTA = INPUT(Pullup)
DDRA=0x00;

// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1 
PORTB=0x00;
DDRB=0xFF;  // PORTB=OUTPUT(Aktif High)

// 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=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 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: Timer 2 Stopped
// Mode: Normal top=FFh
// 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;

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

while (1)
      {
      // Place your code here
        if (SW1==0) // jika SW1 benilai 0 ( pada skema SW diberi GROUND, maka jika ditekan akan                                      bernilai 0)
        {   // buka kurawal dan tutup kurawal ini berarti " APA YANG DILAKUKAN JIKA SW1                           BERNILAI 0 "
         L1=1; // L1 akan menyala
        }    
        
        if (SW2==0)
        {
         L1=0; // L1 akan mati
         L2=1; // L2 akan menyala (PADA SKEMA LED DIBERI GROUND, MAKA LED AKAN                                MENYALA JIKA DIBERI LOGIC '1', KONDISI INI DIKENAL DENGAN ISTILAH                        'AKTIF HIGH'
                   // JIKA LED DIBERI TEGANGAN POSITIF, MAKA LED AKAN MENYALA JIKA                           DIBERI LOGIC '0', KONDISI INI DIKENAL DENGAN ISTILAH 'AKTIF LOW'
        }  
        
        if (SW3==0)
        {  
         L1=0;              
         delay_ms(100);
         L2=0;          
         delay_ms(100);  
         L1=1;                        // L1 MENYALA
         delay_ms(100);        // DENGAN JEDA 0.1 DETIK
         L2=1;
         delay_ms(100);
         L3=1;
         delay_ms(100);
         L4=1;         
         delay_ms(100);
         L5=1;         
         delay_ms(100);
         L6=1;         
         delay_ms(100);
         L7=1;         
         delay_ms(100);
         L8=1;         
         delay_ms(100); 
         
         L8=0;                        // L8 MATI
         delay_ms(100);        // DENGAN JEDA 0.1 DETIK
         L7=0;
         delay_ms(100);
         L6=0;
         delay_ms(100);
         L5=0;         
         delay_ms(100);
         L4=0;         
         delay_ms(100);
         L3=0;         
         delay_ms(100);
         L2=0;         
         delay_ms(100);
         L1=0;         
         delay_ms(100);
         }
        
      };
}


12. Jika coding telah selesai, selanjut nya kita tinggal mengcompile(membuat file HEX, yang nanti nya akan di downloadkan pada IC Mikrokontroler nya)

13. Jika tidak terdapat error, maka coding selesai

Sekarang kita masuk ke pembuatan skematik di software Proteus

1. Pertama kita buka terlebih dahulu software Proteus yang sudah terinstal di PC kawan semua
2. Lalu klik icon yang bertuliskan ' ISIS '

2. Lalu masuk ke icon simbol komponen op amp, lalu pilih ' P '

3. Ketikkan kata kunci untuk memanggil komponen




3. Jika semua sudah terpanggil, klik ' OK '
4. Selanjutnya tinggal merangkai komponen-komponen tadi menjadi sebuah rangkaian Running Led










NB = Pada skema terdapat tulisan L1-L8 pada resistor dan LED, itu artinya mereka saling terhubung antara L1 pada resistor dan L1 pada LED, begitu juga pada yang lainnya... Untuk membuat jalur seperti itu, kita tinggal mengklik 2x konektor yang bulat itu lalu menulikan label.

Hasil simulasi nya seperti berikut =



Nah,, sekian tutorial yang dapat saya buat kali ini, semoga dapat membantu kawan-kawan semua yang ingin belajar mikrokontroler AVR :)
*Jika artikel ini membantu, tolong tinggalkan jejak dan tolong untuk di share. Terimakasih :)

Minggu, 11 September 2016

MODUL MIKROKONTROLLER AVR




  Assalamu'alaikum Wr Wb, selamat siang semuanya, kembali lagi dengan saya Reza Andika Pribadi... Kali ini saya tidak akan memposting project, namun kali ini saya akan memberikan modul mikrokontroller beserta contoh-contoh program sederhana yang mungkin bisa membantu anda-anda yang ingin belajar mikrokontroller AVR.. Kalo gitu langsung saja sedot modul pembelajarannya...

Bagi yang belum punya CodeVision AVR nya bisa di download disini : CVAVR
Dan bagi yang belum punya Proteus nya bisa di download disini : PROTEUS

Sekian dulu, semoga dapat bermanfaat :)

Jumat, 09 September 2016

PROJECT KENDALI MOTOR STEPPER



        

Assalamu'alaikum Wr Wb,, kali ini saya akan memposting project saya mengenai " Kendali Motor Stepper " yang InshaAllah akan saya aplikasikan pada " Robot Humanoid " saya,, Baik, berikut skema project Kendali Motor Stepper nya





Cara Kerjanya adalah :
1. Tombol " ATAS " disana berfungsi untuk memberi logic ++ yang artinya bit berpindah ke bit selanjutnya/terjadi pergeseran 1 bit(MAJU), maka dari itu STEPPER 2 berputar kearah kanan.

2. Tombol " BAWAH " disana berfungsi untuk memberi logic -- yang artinya bit berpindah ke bit sebelumnya/terjadi pergeseran 1 bit(MUNDUR), maka dari itu STEPPER 2 berputar kearah kiri.

3. Tombol " KANAN " disana berfungsi untuk memberi logic ++ yang artinya bit berpindah ke bit selanjutnya/terjadi pergeseran 1 bit(MAJU), maka dari itu STEPPER 1 berputar kearah kanan.

4. Tombol " KIRI " disana berfungsi untuk memberi logic -- yang artinya bit berpindah ke bit sebelumnya/terjadi pergeseran 1 bit(MUNDUR), maka dari itu STEPPER 1 berputar kearah kiri.

Simulasi Proteus dan coding AVR bisa di download disini : Download Project Stepper
Untuk yang belum mempunyai Proteus 8.0 SP0 dapat di download disini : Proteus 8.0 SP0

Terimakasih telah berkunjung, semoga dapat membantu :)
Untuk yang ingin request project/skema/coding avr, kirim email ke andikareza210298@gmail.com

PROJECT WLC ATMEGA16 CVAVR

  

PROJECT WLC ATMEGA16 CVAVR



     Assalamu'alaikum Wr Wb,, selamat siang semuanya,,, senang rasa nya hari ini saya dapat kembali merangkai rangkaian simulasi mikrokontroler pada aplikasi Proteus di laptop saya setelah hampir satu tahun lamanya saya tidak merangkai simulasi di Proteus dikarenakan terdapat error CRC disaat pengisnstalan patch :D
     Oleh karena itu, hari ini saya akan berbagi suatu rangkaian simulasi mikrokontroler yang saya beri nama " WLC (Water Level Control) ATmega16 " kumplit beserta coding AVR nya :D

Oke, cukup curhatannya, mari langsung praktek saja :v





Oke, cara kerjanya adalah :

1. Push Button disana sebagai pengganti sensor,,, apabila Push Button KOSONG ditekan atau jika           sensor KOSONG bernilai 0 (tidak mendapat arus/tidak terkena air) maka relay akan menggerakkan     motor listrik/pompa air sehingga air akan mengalir, dan kondisi ini di tandai dengan LED MERAH     MENYALA.

2. Akan tetapi, jika Push Button PENUH ditekan yang artinya air telah mengenai sensor PENUH,           maka relay akan kembali ke posisi NO yang berarti tidak ada aliran listrik yang mengalir ke moto       listrik/pompa air sehingga air tidak akan mengalir lagi. Kondisi ini ditandai dengan LED HIJAU         MENYALA.

NB : *Untuk sensor, cukup pakai kabel saja jika ingin di aplikasikan ke hardware langsung

Nah, untuk dapat menjalankan simulasi dari saya, harus terinstal dulu Proteus 8.0 SP0... bagi yang belum mempunyai Proteus 8.0 SP0 dapat mendownload nya disini PROTEUS 8.0 SP0

Dan bagi yang ingin mengulik simulasi dan program WLC ATmega16 saya, silahkan download disini RAP_ELEKTRONIK :)

Barang jadi nya menyusul yaa, saya sedang ada project lain :v

Terimakasih telah berkunjung, semoga artikel ini dapat membantu bagi yang ingin belajar mikrokontroler AVR :)
Untuk request simulasi/project/coding avr, bisa kontak via email andikareza210298@gmail.com
Atau ingin memesan barang/project sesuai yang diinginkan, bisa hubungi 0823 1745 2889 via sms/calling/wa, atau klik gambar dibawah ini :D Terimakasih :)