Showing posts with label elektronika. Show all posts
Showing posts with label elektronika. Show all posts

Friday, January 12, 2018

Line Follower dengan Atmega16

Robot Line Follower adalah sebuah robot yang dapat mengikuti garis pada suatu bidang datar. Robot Line Follower ada dua jenis yaitu robot line follower analog dan robot line follower digital, perbedaan yang terlihat jelas antara kedua jenis robot ini yaitu pada robot line follower (LF) analog tidak menggunakan program sedangkan robot LF digital dijalankan menggunakan program. 

mikrokontroler

Disini kita akan membahas tentang LF digital yang dijalankan menggunakan program. Dalam membuat line follower ada 3 bagian penting;

  1. Modul elektronik robot line follower terdiri dari rangkaian pengendali utama (main controller), rangkaian sensor, dan rangkaian driver.
  2. Modul Mekanikal bagian mekanikal dari robot line follower merupakan bagian penggerak dari robot line follower yang terdiri dari dinamo/motor, gear box dan roda.
  3. Modul Program/firmware merupakan salah satu bagian terpenting dari robot line follower yang menggunakan microkontroler. 
LF yang saya buat ini menggunakan input sensor photodioda, pengendali utama menggunakan atmega16 dan modul driver menggunakan IC L293D. 

berikut adalah shortcode yang saya gunakan:

#include <io.h>

void diam()
{
PORTB.0=0;
PORTB.1=0;
PORTB.2=0;
PORTB.3=0;
PORTD.0=0;
PORTD.1=0;
PORTD.2=0;
}
void maju()
{
PORTB.0=0;
PORTB.1=1;
PORTB.2=0;
PORTB.3=1;
PORTD.0=0;
PORTD.1=1;
PORTD.2=0;
}
void kiri()
{
PORTB.0=0;
PORTB.1=0;
PORTB.2=0;
PORTB.3=1;
PORTD.0=1;
PORTD.1=0;
PORTD.2=0;
}
void kiri_banting()
{
PORTB.0=1;
PORTB.1=0;
PORTB.2=0;
PORTB.3=1;
PORTD.0=1;
PORTD.1=0;
PORTD.2=0;
}
void kanan()
{
PORTB.0=0;
PORTB.1=1;
PORTB.2=0;
PORTB.3=0;
PORTD.0=0;
PORTD.1=0;
PORTD.2=1;
}
void kanan_banting()
{
PORTB.0=0;
PORTB.1=1;
PORTB.2=1;
PORTB.3=0;
PORTD.0=0;
PORTD.1=0;
PORTD.2=1;
}

void main(void)
{
DDRA=(1<<DDA7) | (1<<DDA6) | (1<<DDA5) | (1<<DDA4) | (1<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
DDRB=(1<<DDB7) | (1<<DDB6) | (1<<DDB5) | (1<<DDB4) | (1<<DDB3) | (1<<DDB2) | (1<<DDB1) | (1<<DDB0);
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
DDRD=(1<<DDD7) | (1<<DDD6) | (1<<DDD5) | (1<<DDD4) | (1<<DDD3) | (1<<DDD2) | (1<<DDD1) | (1<<DDD0);
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

while (1)
      {
       switch(PINA)
       {
       case 0b00000000 : kiri_banting();break;
       case 0b00000010 : maju();break;
       case 0b00000110 : kiri();break;
       case 0b00000100 : kiri_banting();break;
       case 0b00000011 : kanan();break;
       case 0b00000001 : kanan_banting();break;
       default : break;
       }
      }
}

SEKIAN DAN SELAMAT MENCOBA

Membuat Kalkulator Sederhana dengan Atmega16

   Pada ulasan berikut ini saya akan membahas tentang cara membuat kalkulator sederhana menggunakan atmega16. Pada umumnya fungsi kalkulator sendiri adalah sebagai alat bantu kita dalam proses perhitungan agar lebih mudah dan cepat, disini saya akan membuat kalkulator sederhana dengan output LCD yang berfungsi sebagai penampil yang digunakan untuk status kerja dan dengan input keypad matrik yang berfungsi sebagai masukan yang nantinya akan kita gunakan.

Berikut adalah tampilan skematik dari proteus;

mikrokontroler

Berikut adalah  listing program dari aplikasi kalkulator menggunakan atmega16;

#include <mega16.h>
#include <delay.h>;
#include <lcd.h>;
#include <stdlib.h>;
#include <math.h>;
#define scanKeypad 1
#define stopScan 0
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>;
int bacaKeyPad(void);
float kalkulator(void);
int operand1 = 0 , operand2 = 0 ;
float hasil = 0 ;
char kode=0 , bufferLCD[50] ;
void main(void)
{
PORTA=0x00;
DDRA=0x0F;
PORTC=0x00;
DDRC=0x00;
lcd_init(20);
while (1)
{
kalkulator();
};
}
//==================
int bacaKeyPad(void){
char StatusBaca = scanKeypad ;
while(StatusBaca==scanKeypad){
PORTA.0 = 1 ;
PORTA.1 = 0 ;
PORTA.2 = 0 ;
PORTA.3 = 0 ;
if(PINA.4 == 1){return 7 ; StatusBaca = stopScan;}
if(PINA.5 == 1){return 8 ; StatusBaca = stopScan;}
if(PINA.6 == 1){return 9 ; StatusBaca = stopScan;}
if(PINA.7 == 1){return 10; StatusBaca = stopScan;}
//==========================================
PORTA.0 = 0 ;
PORTA.1 = 1 ;
PORTA.2 = 0 ;
PORTA.3 = 0 ;
if(PINA.4 == 1){return 4 ; StatusBaca = stopScan;}
if(PINA.5 == 1){return 5 ; StatusBaca = stopScan;}
if(PINA.6 == 1){return 6 ; StatusBaca = stopScan;}
if(PINA.7 == 1){return 11; StatusBaca = stopScan;}
//==========================================
PORTA.0 = 0 ;
PORTA.1 = 0 ;
PORTA.2 = 1 ;
PORTA.3 = 0 ;
if(PINA.4 == 1){return 1 ; StatusBaca = stopScan;}
if(PINA.5 == 1){return 2 ; StatusBaca = stopScan;}
if(PINA.6 == 1){return 3 ; StatusBaca = stopScan;}
if(PINA.7 == 1){return 12; StatusBaca = stopScan;}
//==========================================
PORTA.0 = 0 ;
PORTA.1 = 0 ;
PORTA.2 = 0 ;
PORTA.3 = 1 ;
if(PINA.4 == 1){return 15; StatusBaca = stopScan;}
if(PINA.5 == 1){return 0 ; StatusBaca = stopScan;}
if(PINA.6 == 1){return 14; StatusBaca = stopScan;}
if(PINA.7 == 1){return 13; StatusBaca = stopScan;}
StatusBaca = scanKeypad ;
}
}
//==========================
float kalkulator(void)
{
int StatusBaca = scanKeypad ;
kode = bacaKeyPad();
if( kode < 10 ) // kalau angka 0-9 ditekan
{
operand1 = (operand1*10)+ kode ;
itoa(kode , bufferLCD); // rubah kode ke ASCII
lcd_puts(bufferLCD); //tampilkan kode operand1 yg ditekan
delay_ms(50);
}
//==========================
if( kode >; 9 &amp;amp;amp;&amp;amp;amp; kode < 16 ) // jika ditekan 10,11,12,13,14,15 (X, -, +, atau /)
{
if(kode == 10)lcd_putchar('/') ;
if(kode == 11)lcd_putchar('X') ;
if(kode == 12)lcd_putchar('-') ;
if(kode == 13)lcd_putchar('+') ;
operator = kode; // simpan operator yg dipilih
{
kode = bacaKeyPad();
if( kode < 10 )
{
operand2 = (operand2*10)+kode ;
itoa(kode , bufferLCD); // rubah kode ke ASCII
lcd_puts(bufferLCD); //tampilkan kode operand2 yg ditekan
delay_ms(50);
}
else if(kode == 14) //jika ditekan &amp;quot;=&amp;quot; laksanakan operasi
{
lcd_putchar('=');
if(operator == 10){ // jika ditekan '/'
hasil = operand1 / operand2 ;
}
if(operator == 11){ // jika ditekan 'X'
hasil = operand1 * operand2 ;
}
if(operator == 12){ // jika ditekan '-'
hasil = operand1 - operand2 ;
}
if(operator == 13){ // jika ditekan '+'
hasil = operand1 + operand2 ;
}
ftoa(hasil , 1 , bufferLCD); // rubah hasil ke string ( string adalah array berisi ascii diakhiri NULL )
lcd_puts(bufferLCD); // print hasil ke LCD
delay_ms(100);
kode = 0 ;
StatusBaca = stopScan ;
}
}
}
//==============================
return 0;
}


Cukup sekian dan selamat mencoba .

Seven Segmen Menggunakan Mikrokontroler

     Oke kali ini saya akan membahas tentang membuat rangkaian seven segmen menggunakan mikrokontroler .

     Seven segment adalah suatu segmen-segmen yang digunakan untuk menampilkan angka / bilangan decimal. Seven segment ini terdiri dari 7 batang LED yang disusun membentuk angka 8 dengan menggunakan huruf a-f yang disebut DOT MATRIKS. Setiap segment ini terdiri dari 1 atau 2 LED (Light Emitting Dioda). Ulasan kali ini membahas rangkaian sederhana seven segment menggunakan atmega 16, berikut ini skematik pada proteus ;

mikrokontroler

Berikut adalah coding dari program sederhana untuk menjalankan seven segment menggunakan atmega 16.
mikrokontroler

Hasil dari coding program tersebut adalah menjalankan seven segment sebagai rangkaian counter up yang berfungsi sebagai penghitung digital dari mulai nilai terendah yaitu 0.

Sunday, December 24, 2017

Membuat Runing LED atau LED Berjalan Dengan Mikro

    Kali ini saya akan membahas tentang Runing LED atau biasa disebut LED berjalan menggunakan Mikrokontroler. Pada awal pembuatan runing led atau led berjalan yang kita butuhkan adalah sebuah SISMIN (Sistem Minimum) sebagai pengendali dari sebuah rangkaian yang akan kita buat nanti, jika kalian bingung dengan pembuatan sismin bisa dilihat disini.

proteus led berjalan

    Pada rangkaian di atas yang digunakan sebagai pengendali adalah sismin yang menggunakan atmega 16, port yang digunakan sebagai keluaran atau output adalah port C0 sampai C7. Setelah membuat skematik dan simulasi berikutnya adalah membuat list program yang berfungsi untuk menjalankan skema yang kita buat di atas tadi berikut adalah list program yang saya buat.

led berjalan

     Setelah kita buat list program dan mengcompailnya di software yang biasa kita pakai seperti cvavr
atau bascom, dan selanjutnya bisa kita masukan ke dalam chip atmega yang ada di rangkaian sismin yang kita buat di skema rangkaian led berjalan yang kita buat diatas tadi, setelah itu kita bisa mencoba rangkaian yang kita buat tadi
     Sebenarnya rangkain led berjalan yang saya buat diatas bisa kalian buat sesuai kreatifitas kalian masing-masing.

Saturday, December 23, 2017

Sistem MInimum (SISMIN) Pada Mikrokontroler

     Sistem Minimun atau biasa disebut SISMIN adalah rangkaian elektronik minium yang diperlukan untuk beroprasinya IC pada mikrokontroler. Dalam mikrokontrolersistem minimum biasanya dihubungkan dengan rangkaian lain sesuai apa yang inginkan dalam membuat rangkaian mikrokontroler, maka tak jarang sistem minimum dibuat sefleksibel mungkin.

SISMIN MIKROKONTROLER

Berikut adalah bagian terpenting dalam proses pembuatan sistem minimum :
1. Power supply
2. osilator
3. ISP (In-System Programmable)
4. Rangkaian reset

1. powersupply
     Power supply atau biasa disebut catu daya sangat dibutuhkan disemua komponen elektronika. Biasanya mikrokontroler bekerja dalam tegangan 5 volt. Umumnya pembuatan catudaya pada mikrokontroler menggunakan IC regulator 7805 yang berfungsi menyetabilkan tegangan

2. osilator
     Untuk beroprasi mikrokontroler biasanya menggunakan osilator. umumnya mikrokontroler sudah memiliki osilator internal sebesar 8Mhz untuk mendapatkan kinerja yang lebih cepat maka dibutuhkanlah osilator eksternal (kristal) yang nilainya lebih dari nilai osilator internal. karna mikrokontroler hanya bisa bekerja sampai 16Mhz, maka memilih kristal untuk AVR tidak boleh melebihi 16mhz

3. ISP (In-System Programmable)
     Mikrokontroler dicptakan untuk diprogram, pemograman mikrokontroler secara seri ataupun pararel disebut dengan ISP jadi tidak memerlukan banyak jalur data. Dimana ada kelebihan disitu ada kekurangan, nah kekurangan ISP adalah jika salah setting fuse  bit yang memiliki fungsi fital misal pin reset di disable maka tidak bisa digunakan lagi. Untuk mengembalikan settingan fuse bit tadi harus menggunakan pemograman tipe parallel (hight voltage programming)

4. Rangkaian Reset
     Sebenarnya rangkaian Reset memiliki fungsi yang sama pada umumnya yaitu untuk merestart program awal. Dalam mikrokontroler fungsi reset sendiri adalah opsional boleh digunakan atau tidak tergantung keinginan pengguna.

Friday, November 24, 2017

Membuat Downloader Dalam Mikrokontroler

Assallmuallaikum.wr.wb

    Dalam dunia mikrokontroler downloader dapat digunakan untuk mengisi program kedalam chip mikrokontroler, dan alat ini bisa dikatakan sangat penting di dunia mikrokontroler karna fungsinya yang saya sebutkan di atas. Untuk kalian yang ingin mengetahui cara membuat downloader yuk langsung saja kita simak !

Komponen downloader:
1. Atmega 8
2. Led
3. Kristal
4. PCB
5. Reistor
6. Dioda zener
7. Kapasitor
8. Conector USB
9. Tulang ikan atau header

Pertama yang harus kalian lakukan adalah membuat skema rangkaian downloader itu sendiri, kalian bisa membuatnya di software seperti diptrace, proteus, dll

dowloader

Berikutnya adalah measukan komponen ke PCB dengan benar sesuai dengan skema/jalur yang kalian buat tadi, setelah itu kalian bisa mensoldernya dengan hati-hati.

Berikut adalah hasil dowloader yang saya buat.

hasil downloader

hasil downloader


Cara Membuat Adaptor

Assallamualaikum
Bicara soal adaptor mungkin alat ini sudah tidak asing lagi bagi kita karna adaptor ini sangat bermanfaat bagi kehidupan kita sehari-hari, misalnya untuk mencarger hanphone, laptop dll.

   Adaptor sendiri diartikan suatu alat yang di dalamnya ada rangkaian elektronika yang dapat mengubah tegangan AC menjadi DC. Nah disini saya akan mengulas cara membuat adaptor sederhana.

Komponen
1. Papan PCB
2. Kapasitor elko
3. IC regulator
4. Trafo/ transformator
5. Lcd sebagai penanda
6. Saklar
7. Dioda 
8. Resistor
9. Kabel jumper

     Pertama yang di lakukan adalah membuat sekema adaptor dahulu kalian bisa membuat skema di software seperti diptrace, proteus dll yang mana untuk membuat rangakaian kalur di PCB.

Berikutnya adalah memasang komponen kedalam pcb yang sudah diberi skema rangkaian adapter untuk langkah ini mohon diteliti dalam memasangnya jika salah maka bisa saja adptor tidak berfungsi, dan ketika sudah memasukan komponen dengan benar maka kalian bisa langsung mensoldernya agar sikaki atau pin komponen tersebut menempel atau berhubungan dengan jalur/skema rangkaian yang dibuat tadi.

Berukut ini adalah adaptor yang saya buat.

cara membuat adaptor

cara membuat adaptor