Member baru? Bingung? Perlu bantuan? Silakan baca panduan singkat untuk ikut berdiskusi.

Welcome to Forum Sains Indonesia. Please login or sign up.

Juli 07, 2022, 03:31:20 AM

Login with username, password and session length

Topik Baru

Artikel Sains

Anggota
  • Total Anggota: 26,754
  • Latest: sainsftw
Stats
  • Total Tulisan: 139,633
  • Total Topik: 10,390
  • Online today: 41
  • Online ever: 441
  • (Desember 17, 2011, 09:48:51 AM)
Pengguna Online
Users: 0
Guests: 18
Total: 18

Aku Cinta ForSa

ForSa on FB ForSa on Twitter

Ajarain Mikrokontroler Tahap demi Tahap donk.

Dimulai oleh Mat Dillom, November 24, 2009, 01:22:26 AM

« sebelumnya - berikutnya »

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Mat Dillom

Terus terang saya senang robotika. Tetapi selama ini saya menghindari penggunakan mikro kontroler. Saya membuat robot programmable tanpa mikro kontroler. Akibatnya, robot saya harus menggunakan perangkat komputer. Bisa dibayangkan khan beratnya dan batere yang digunakan. Tentu tidak efisien.

Untuk keperluan itu, bahkan saya buat sendiri rangkaian multiplexter (dari 4 digit binner ke 16 menggunakan relay elektronik) dan demultiplexter (dari 16 ke 4 binner menggunakan dioda). Output dari pararel port komputer, saya menggunakan switching agar tegangan 5 volt output printer port menjadi 12 Volt.

Pokoknya cukup ribet dan lama saya membuat rangkaian itu.

Saya cuma hobby aja dan bukan lulusan sekolah yang berkaitan dengan teknik "kompumekatronika". Pengetahuan yang saya peroleh dari belajar sendiri.

Nah saya ingin sekali belajar mikrokontroler tahap demi tahap. Kalau ada yang bisa bantu, bagaimana sih cara menggunakan mikrokontroler. Misalnya:


1. Type mikrokontroler apa yang harus dibeli untuk pemula;
2. Bagian mana yang dikoneksikan ke komputer untuk pemrogramannya;
3. Program untuk pemrograman mikrokontroler didapat dari mana;
4. Setelah selesai memprogram, apa yang harus dilakukan;

Sekian dulu dan terima kasih bagi yang menanggapi.

eckoo

Coba njawab....
bro bisa make mikro apa aja....
1. sekarang yang populer dikalangan mahasiswa ada AVR dan keluarga MCS51
2. Ada kalo untuk yang ini, ada kaki tersendiri yang masuk ke paralelportnya kompi. Search aja, dah banyak kok kayaknya.
3. Bisa make berin,Aec icp, HB200 tuk keluarga mcs51, tuk avr juga dah banyak bascom, avr studio. tanya mbah google juga
4. setelah buat program tinggal di downloadkan ke mikro, bis tuh pasang mikro ke devicenya.

moga membantu ;)

Mat Dillom

Yang gampang aja donk, kasih satu contoh model mikrokontroler apa (yang dicolokkan ke pararel port yah). Kemudian programnya ambil dari mana? (kasih link). Nanti selanjutnya saya akan tanya lagi.

eckoo

Kutipcontoh model mikrokontroler apa (yang dicolokkan ke pararel port yah)
Lihat [pranala luar disembunyikan, sila masuk atau daftar.]

KutipKemudian programnya ambil dari mana? (kasih link)
Lihat [pranala luar disembunyikan, sila masuk atau daftar.]

sebenarnya kalo mu belajar, search [pranala luar disembunyikan, sila masuk atau daftar.] dah banyak kok um..
yahhh, memang harus sabar..... ;D ;D ;D

-dani-

klo buat pemula paling enak memang pake AT89S51/52, trus pake bhs asm nya dulu, jd bsa ngertiin logic programingnya lbh dalem..

softwarenya bisa pake edsim51, krena sudah ada simulator d dalamnya..

-smoga bsa membantu- :)

Mat Dillom

Prof. eckoo

Nah kaki-kaki yang belum terhubung itu, dihubungkan kemana. Tolong jelasin. Yang terhubung dengan motorik yang mana jika mau dibuat untuk robot?. Juga yang ke sensor.

eckoo

Kaki yang mana um???
yang ke paralel port atau yang mana?
kalo yang ke paralelport itu hanya sebatas untuk proses pendownloadan dari kompi ke IC mikro um. Jika Program sudah tertanam ke IC, yaa ICnya diambil, trus ditanamankan pada device dari skematik rangkaian um.
kalo yang terhubung ke motorik pun, tidak langsung um. Untuk menggerakkan motor juga dibutuhkan sebuah driver motor, bisa menggunakan relay atau transistor. Mikro hanya sebagi pengontrol sja. Klo saya biasanya memake port 1 atau port 2 dari mikro sebagi pengontrol dari driver itu sendiri.gituuu :)

Mat Dillom

Kutip dari: eckoo pada Desember 07, 2009, 08:22:56 AM
Kaki yang mana um???
yang ke paralel port atau yang mana?
kalo yang ke paralelport itu hanya sebatas untuk proses pendownloadan dari kompi ke IC mikro um. Jika Program sudah tertanam ke IC, yaa ICnya diambil, trus ditanamankan pada device dari skematik rangkaian um.
kalo yang terhubung ke motorik pun, tidak langsung um. Untuk menggerakkan motor juga dibutuhkan sebuah driver motor, bisa menggunakan relay atau transistor. Mikro hanya sebagi pengontrol sja. Klo saya biasanya memake port 1 atau port 2 dari mikro sebagi pengontrol dari driver itu sendiri.gituuu :)

Yang selain ke pararel port. Udah dikit lagi bisa nih :d.

frans3q

#8
downloader untuk k PC nya bisa pake paralel bisa pake serial juga. serial nya bisa pake RS232 bisa pake USB...

kalau untuk bahasa & tool pemrograman nya ada banyak pilihan.
ada Bascom pake Basic
AVR Studio pake assembler
Code Vision AVR & WinAVR pake C
mikroPascal pake Pascal

klo buat keluarga MCS51 saya belom pernah cobain. ni jg sama2 nubie baru belajar AVR.
Terimakasih banyak buat tmn2 yg uda nambah IQ saya... :D

-dani-

Kutip dari: Mat Dillom pada Desember 08, 2009, 12:15:10 AM
Yang selain ke pararel port. Udah dikit lagi bisa nih :d.

klo boleh sedikit membantu.. :d
yg saya tangkap dr gambar uC yg bro ecko kirim, mirip ATmega8535
p0.0-p0.7 adalah port yg bsa mengolah sinyal analog dan digital krena d dlamnya terdapat build in ADC.
untuk port yg lain bsa d gunakan sbagai I/O analog, timer, interupt, dll.. tergantung program apa yg kita masukan k sna..
kebanyakan uC hanya d gunakan sebagai pengontrol, tp klo mau d hubungkan lgsung k sensor ato misal motorik penggerak, hrus d pastikan apakah motorik itu bsa d jalankan dgn arus yg sangat kecil tiap portnya? krena sbgai contoh ATmega8535 hanya dapat mengalirkan arus 100mA-200mA/ Port..
krena itu, sperti saran bro ecko lebih baik menggunakan driver external agar tidak terlalu memaksa IC micro tuk menarik arus..

untuk software
bascom, bahasa yg digunakan mudah d mengerti..
AVR studio bsa d gabung dgn WinAVR agar bsa memprogram dgn bhs C and it's free software with simulator..
codevision mudah d gunakan krena ada codewizard untuk initialisasi..

-smoga bsa membantu-

Mat Dillom

Wah thanx infonya, masih kerunut pelan-pelan nih. Semoga berhasil.

eki_crazy89

nih program pengguna Keypad sederhana.. semoga membantu..

/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.7d Evaluation
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
[pranala luar disembunyikan, sila masuk atau daftar.]
e-mail:office@hpinfotech.com

Project : Eki Punya
Version :
Date    : 6/10/2010
Author  : Freeware, for evaluation and non-commercial use only
Company : Teknik Elektro (Teknik Komputer)
Comments:


Chip type           : ATmega8535L
Program type        : Application
Clock frequency     : 11.059200 MHz
Memory model        : Small
External SRAM size  : 0
Data Stack size     : 128
*****************************************************/

#include <mega8535.h>
#include <stdio.h>
#include <delay.h>

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>

// Declare your global variables here
unsigned char key,temp;
bit keystatus;
void Check_Keys()
{
keystatus=0;
PORTB=0b11101111;
delay_ms(20);
DDRB=0xF0;
//key=PINB;
temp=PINB;
temp=temp&0x0F;
switch (temp)
{
        case 0b00001110: key=0x01; keystatus=1; break;
        case 0b00001101: key=0x04; keystatus=1; break;
        case 0b00001011: key=0x07; keystatus=1; break;
        case 0b00000111: key=0x0A; keystatus=1; break;
};
PORTB=0b11011111;
delay_ms(20);
DDRB=0xF0;
//key=PINB;
temp=PINB;
temp=temp&0x0F;
switch (temp)
{
        case 0b00001110: key=0x02; keystatus=1; break;
        case 0b00001101: key=0x05; keystatus=1; break;
        case 0b00001011: key=0x08; keystatus=1; break;
        case 0b00000111: key=0x00; keystatus=1; break;
};
PORTB=0b10111111;
delay_ms(20);
DDRB=0xF0;
//key=PINB;
temp=PINB;
temp=temp&0x0F;
switch (temp)
{
        case 0b00001110: key=0x03; keystatus=1; break;
        case 0b00001101: key=0x06; keystatus=1; break;
        case 0b00001011: key=0x09; keystatus=1; break;
        case 0b00000111: key=0x0B; keystatus=1; break;
};
PORTB=0b01111111;
delay_ms(20);
DDRB=0xF0;
//key=PINB;
temp=PINB;
temp=temp&0x0F;
switch (temp)
{
        case 0b00001110: key=0x0C; keystatus=1; break;
        case 0b00001101: key=0x0D; keystatus=1; break;
        case 0b00001011: key=0x0E; keystatus=1; break;
        case 0b00000111: key=0x0F; keystatus=1; break;
};
}
void get_keys()
{
        while(keystatus==0)
        {
        Check_Keys();
        }
}
void wait_key_release()
{
        while(keystatus==1)
        {
        Check_Keys();
        }
}

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=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// 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;

// LCD module initialization
lcd_init(16);

while (1)
      {
      // Place your code here
      lcd_clear();
      lcd_gotoxy(0,0);
      lcd_putsf("MENU:");
      lcd_gotoxy(0,1);
      lcd_putsf("1.Run 2.Stop");
      get_keys();
      wait_key_release();
      if (key==0x01)
      {         
       
        get_keys();
        wait_key_release();
        if (key==0x0B)
        {
        lcd_clear();       
        do     
                {
                lcd_gotoxy(0,0);
                lcd_putsf("MACHINE IS");
                lcd_gotoxy(0,1);
                lcd_putsf("RUNNING");
                get_keys();
                wait_key_release();
                }
                while(key!=0x0D);
        }
      }
      if (key==0x02)
        {
        get_keys();
        wait_key_release();
        if (key==0x0B)
        {
        lcd_clear();
        do   
                {
                lcd_gotoxy(0,0);
                lcd_putsf("MACHINE");
                lcd_gotoxy(0,1);
                lcd_putsf("SHUTDOWN");
                get_keys();
                wait_key_release();
                }
                while(key!=0x0D);
        }
       }
      };
}

Mat Dillom


Eko Budianto

Bagusnya buat newbie pake modulnya Innovative Electronics (DT-51 Low Cost MinSys atau DT-AVR Low Cost MinSys) plus MCS-ISP atau AVR-ISP buat downloadernya. Di paketnya disertain juga Application Note. Juga opening buku atau ebook yg bahas uControler.
Kalo belum apa-apa dah ngerangkai circuit-nya kayaknya repot deh. Sebab belum nyaho apa-apa udah diribetin ama misfunction circuit.