PRAKTIKUM MIKROKONTROLER

Bahan presentasi untuk matakuliah Praktikum Mikroprosesor dan Mikroprosesor 2016, Koordinator praktikum : Darwison, MT, referensi:


1. Darwison, 2010, ”Teknik Interface (antarmuka): Perancangan hardware dan simulasi software serta aplikasinya ”, ISBN: 978-602-9081-10-7, CV Ferila, Padang
2. Darwison, 2007 “ Teori, Rancangan ,Simulasi Dan Aplikasi Mikroprosesor Dan Mikrokontroller” ISBN: 978-602-9487-09-1”, CV Ferila, Padang.
3. Mikrokontroller,Andrianto, Heri. 2015. "Pemrograman Mikrokontroler AVR
ATMega128 Bahasa C (CodeVisionAVR)". Informatika Bandung: Bandung.

Rabu, 23 November 2016

Modul 2







2.1 Tujuan [Kembali]

a.Mempelajari aplikasi output pada mikrokontroller Arduino
b.Mempelajari aplikasi input pada mikrokontroller Arduino 
c.Mempelajari aplikasi I/O pada mikrokontroller Arduino 



2.2 Alat dan Bahan [Kembali]

  • Module Arduino 
  • LCD 
  • Motor servo 
  • Jumper 
  • Motor DC 
  • 7 Segment 
  • LM35

2.3 Dasar Teori [Kembali]

    Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan pada prkatikum ini adalah arduino mega yang menggunakan chip AVR ATmega 2560 yang memiliki fasilitas PWM, komunikasi serial, ADC, timer, interupt, SPI dan I2C. Sehingga Arduino bisa digabungkan bersama modul atau alat lain dengan protocol yang berbeda-beda. Bahasa pemograman yang digunakan adalah bahasa C. Tetapi bahasa ini sudah dipermudah menggunakan fungsi-fungsi yang sederhana sehingga lebih mudah dalam memprogramnya. Dalam memprogram arduino, kita bisa menggunakan serial komunikasi agar arduino dapat berhubungan dengan komputer ataupun aplikasi lain. 
Beberapa fitur dari Arduino Mega 2560 ini adalah :



  • Microcontroller                              :ATmega2560

  • Operating Voltage                          :5V

  • Input Voltage (recommended)      :7-12V

  • Input Voltage (limits)                      :6-20V

  • Digital I/O Pins                                :54 (of which 15 provide PWM output)

  • Analog Input Pins                          :16

  • DC Current per I/O Pin                   :20 mA

  • DC Current for 3.3V Pin                  :50 mA

  • Flash Memory                                  :256 KB of which 8 KB used by bootloader

  • SRAM                                               :8 KB

  • EEPROM                                           :4 KB

  • Clock Speed                                      :16 MHz

I.    BAGIAN-BAGIAN DARI ARDUINO MEGA 2560

Soket USB
 

     Soket USB adalah soket untuk kabel USB yang disambungkan ke komputer atau laptop.

Berfungsi untuk mengirimkan program ke Arduino dan juga sebagai port komunikasi serial.

Input / Output Digital
 

     Input/Output Digital atau digital pin adalah pin-pin untuk menghubungkan Arduino dengan

komponen  atau  rangkaian  digital.  Pada  Arduino  Mega  terdapat  53  I/O  Digital  dimana  16

diantaranya dapat dijadikan sebagai output PWM

  

Input Analog
 

    Input Analog atau analog pin adalah pin-pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. Misalnya dari potensiometer, sensor suhu, sensor cahaya, dsb.

Terdapat 16 input analog pada arduino mega 2560.



Pin POWER
 

     Pin-pin catu daya adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang dihubungkan dengan Arduino. Pada bagian catu daya ini terdapat juga pin Vin dan Reset.Vin digunakan untuk memberikan tegangan langsung kepada Arduino tanpa melalui tegangan USB atau adaptor.



Tombol RESET

     Reset adalah pin untuk memberikan sinyal reset melaui tombol atau rangkaian eksternal.



Jack Baterai/Adaptor
 
     Soket baterai  atau adaptor digunakan untuk menyuplai Arduino dengan tegangan  dari  baterai/adaptor 9V pada saat Arduino sedang tidak disambungkan ke komputer. Kalau Arduino sedang disambungkan ke komputer melalui USB, Arduino mendapatkan suplai tegangan dari USB, jadi tidak perlu memasang baterai/adaptor saat memprogram Arduino.


 
 

Senin, 21 November 2016

Modul 1






1.1 Tujuan [Kembali]
 

a. Mempelajari aplikasi output pada mikrokontroller ATMEGA 128 
b. Mempelajari aplikasi input pada mikrokontroller ATMEGA 128 
c. Mempelajari aplikasi I/O pada mikrokontroller ATMEGA 128


1.2 Alat dan Bahan [Kembali] 

a. Module AT MEGA 128 
b. LED 
c. Seven Segment 
d. Jumper 
e. LCD
f. Motor Stepper


1.3 Dasar Teori [Kembali]


Mikrokontroller ATMEGA 128 merupakan mikrokontroller keluarga AVR yang mempunyai kapasitas flash memori 128KB. AVR (Alf and Vegard’s Risc Processor) merupakan seri mikrokontroler CMOS 8-bit buatan ATEMEL inc, berdasarkan arsitektur RISC (Reduced Instruction Set Computer). Secara umum, AVR dapat terbagi menjadi 4 kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga AT-Mega, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, bisa dikatakan hampir sama. Semua jenis AVR dilengkapi dengan flash memori sebagai memori program. Kapasitas dari flash memori ini berbeda antara chip yang satu dengan chip yang lain. Tergantung dari jenis IC yang digunakan. Untuk flash memori yang paling kecil adalah 1 kbytes (ATtiny11, ATtiny12, dan ATtiny15) dan paling besar adalah 128 kbytes (AT-Mega128). Berikut ini adalah spesifikasi Mikrokontroler AVR ATMega-128 dan konfigurasi pin ATMEGA 128. 

1. Saluran I/O sebanyak 56 buah, yaitu Port A, Port B, Port C, Port D, Port E, Port F dan Port G.
2. ADC 10 bit sebanyak 8 saluran.
3. 2 buah Timer/Counter 8 bit dan 2 buah Timer/Counter 16 bit.
4. Dua buah PWM 8 bit.
5. Watchdog Timer dengan osilator internal.
6. Internal SRAM sebesar 4 kbyte.
7. Memori flash sebesar 128 kBytes.
8. Interupsi Eksternal.
9. Port antarmuka SPI.
10. EEPROM sebesar 4 kbyte.
11. Real time counter.
12. 2 buah Port USART untuk komunikasi serial.
13. Enam kanal PWM.
14. Tegangan operasi sekitar 4,5 V sampai dengan 5,5V


https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU-HGwQpNB1GzVYuV7Ycj3M2wbpeyAilo2-s64VAwgFGirHRPmHvGlb61OxJNJQmyLO5EcCVjdxI47fVxkz2G4DnZjjdYWzVnuQLif83cuOK6jCFR8PerH9aJG_3l3ynstccYhfhFbVXI/s1600/atmega.jpg
Konfigurasi pinATMEGA-128



Minggu, 20 November 2016

Modul 2 seven segment (Kondisi)

6.Kondisi [Kembali]

  • Menampilkan karakter "E" berkedip dengan delay 100ms ketika angka genap pada  keypad ditekan

Sabtu, 19 November 2016

Modul 2 seven segment (Listing Program)

4.Listing Program [Kembali]


 #include <Keypad.h>    //memasukan pustaka keypad
                          
char tombol[4][3] =     //menyatakan tombol di keypad adalah kolom 3 dan baris 4
{            //pembuka tata letak keypad
  {'1', '2', '3'},      //deklarasi posisi tombol keypad
  {'4', '5', '6'},      //deklarasi posisi tombol keypad
  {'7', '8', '9'},    //deklarasi posisi tombol keypad
  {'*', '0', '#'}       //deklarasi posisi tombol keypad
};            //penutup tata letak keypad

byte pin[] = {2, 3, 4, 5, 6, 7, 8, 9};    //deklarasi pin arduino pada   seven segment dengan tipe data byte
byte pinBaris[] = {17, 18, 19, 20};    //deklarasi pin arduino yang dihubungkan ke baris pada keypad
byte pinKolom[] = {14, 15, 16};        //deklarasi pin arduino yang dihubungkan ke kolom pada keypad

Keypad keypad = Keypad(makeKeymap(tombol), //digunakan untuk menciptakan objek keypad
                pinBaris, pinKolom, 4, 3); //objek keypad yaitu empat kali tiga


void setup()  //fungsi utama
{
  pinMode(10,OUTPUT);     //pin 10 arduino digunakan sebagai output
  digitalWrite(10,LOW);   //pin 10 pada arduino digunakan pada keaadan low
 
}

void loop()  //fungsi perulangan pada program
{
   char kode = keypad.getKey(); //fungsi membaca tombol apa pada keypad yang ditekan
  if (kode == NO_KEY) //keadaan jika tombol tidak ditekan
    return;          // perintah return dieksekusi

  else if(kode == '0' || kode == '2' || kode == '4' || kode == '6' || kode == '8')  //kondisi dimana tombol angka genap di tekan
  { for (int a=0; a<=5; a++){  //fungsi perulangan jika memenuhi syarat maka akan terus berulang
    digitalWrite(2,HIGH);      //pin 2 seven segment hidup
    digitalWrite(3,LOW);       //pin 3 seven segment mati
    digitalWrite(4,LOW);       //pin 4 seven segment mati
    digitalWrite(5,HIGH);      //pin 5 seven segment hidup
    digitalWrite(6,HIGH);      //pin 6 seven segment hidup
    digitalWrite(7,HIGH);      //pin 7 seven segment hidup
    digitalWrite(8,HIGH);      //pin 8 seven segment hidup
    digitalWrite(9,LOW);       //pin 9 seven segment mati
    delay (100);            //delay selama 100ms
    digitalWrite(2,LOW);       //pin 2 seven segment mati
    digitalWrite(3,LOW);       //pin 3 seven segment mati
    digitalWrite(4,LOW);       //pin 4 seven segment mati
    digitalWrite(5,LOW);       //pin 5 seven segment mati
    digitalWrite(6,LOW);       //pin 6 seven segment mati
    digitalWrite(7,LOW);       //pin 7 seven segment mati
    digitalWrite(8,LOW);       //pin 8 seven segment mati
    digitalWrite(9,LOW);       //pin 9 seven segment mati
    delay (100);            //delay selama 100ms
    ;
  }
}




else if(kode == '1')      //kondisi dimana angka satu ditekan
   {digitalWrite(2,LOW);  //pin 2 seven segment mati
    digitalWrite(3,HIGH); //pin 3 seven segment hidup
    digitalWrite(4,HIGH); //pin 4 seven segment hidup
    digitalWrite(5,LOW);  //pin 5 seven segment mati
    digitalWrite(6,LOW);  //pin 6 seven segment mati
    digitalWrite(7,LOW);  //pin 7 seven segment mati
    digitalWrite(8,LOW);  //pin 8 seven segment mati
    digitalWrite(9,LOW);  //pin 9 seven segment mati
  }
  else if(kode == '3')    //kondisi dimana angka tiga ditekan
  { digitalWrite(2,HIGH); //pin 2 seven segment hidup
    digitalWrite(3,HIGH); //pin 3 seven segment hidup
    digitalWrite(4,HIGH); //pin 4 seven segment hidup
    digitalWrite(5,HIGH); //pin 5 seven segment hidup
    digitalWrite(6,LOW);  //pin 6 seven segment mati
    digitalWrite(7,LOW);  //pin 7 seven segment mati
    digitalWrite(8,HIGH); //pin 8 seven segment hidup
    digitalWrite(9,LOW);  //pin 9 seven segment mati
  }
   else if(kode == '5')   //kondisi dimana angka lima ditekan
  { digitalWrite(2,HIGH); //pin 2 seven segment hidup
    digitalWrite(3,LOW);  //pin 3 seven segment mati
    digitalWrite(4,HIGH); //pin 4 seven segment hidup
    digitalWrite(5,HIGH); //pin 5 seven segment hidup
    digitalWrite(6,LOW);  //pin 6 seven segment mati
    digitalWrite(7,HIGH); //pin 7 seven segment hidup
    digitalWrite(8,HIGH); //pin 8 seven segment hidup
    digitalWrite(9,LOW);  //pin 9 seven segment mati
  }
  else if(kode == '7')    //kondisi dimana angka tujuh ditekan
  { digitalWrite(2,HIGH); //pin 2 seven segment hidup
    digitalWrite(3,HIGH); //pin 3 seven segment hidup
    digitalWrite(4,HIGH); //pin 4 seven segment hidup
    digitalWrite(5,LOW);  //pin 5 seven segment mati
    digitalWrite(6,LOW);  //pin 6 seven segment mati
    digitalWrite(7,LOW);  //pin 7 seven segment mati
    digitalWrite(8,LOW);  //pin 8 seven segment mati
    digitalWrite(9,LOW);  //pin 9 seven segment mati
  }
   else if(kode == '9')   //kondisi dimana angka sembilan ditekan
  { digitalWrite(2,HIGH); //pin 2 segment segment hidup
    digitalWrite(3,HIGH); //pin 3 segment segment hidup
    digitalWrite(4,HIGH); //pin 4 segment segment hidup
    digitalWrite(5,HIGH); //pin 5 segment segment hidup
    digitalWrite(6,LOW);  //pin 6 segment segment mati
    digitalWrite(7,HIGH); //pin 7 segment segment hidup
    digitalWrite(8,HIGH); //pin 8 segment segment hidup
    digitalWrite(9,LOW);  //pin 9 segment segment mati

}
}