Tuesday, November 22, 2016

Mikrokontroller Arduino 2560




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]
a.  Module Arduino
b.  Jumper
c.  7 Segment
d. switch
 

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 :



1. Microcontroller                                  ATmega2560
2. Operating Voltage                             5V
3. Input Voltage (recommended)          7-12V
 4. Input Voltage (limits)                         6-20V
5. Digital I/O Pins                                  54 (of which 15 provide PWM output)
6. Analog Input Pins                             16
7. DC Current per I/O Pin                     20 mA
8. DC Current for 3.3V Pin                   50 mA
9. Flash Memory                                  256 KB of which 8 KB used by bootloader
10. SRAM                                             8 KB
11. EEPROM                                        4 KB
12. Clock Speed                                   16 MHz

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.



PRINSIP KERJA :
Pada percobaan ini kami menggunakan arduino mega sebagai mikrokontroller, switch sebagai input dan 7 segment sebagai output. Switch terhubung ke pin 23, 25, 27, 29, 31, 33, 35, dan 37 sedangkan 7 segment terhubung ke pin 2, 3, 4, 5, 6, 7, 8, 9 dan PIN 10 sebagai output. Ketika switch 4 yang terhubung ke pin 29 aktif tinggi, maka pada 7 segment akan menampilkan huruf “d” dengan delay 200ms.




byte pin[] = {2, 3, 4, 5, 6, 7, 8, 9};                           // deklarasi pin yang digunakan untuk seven segment dengan type data byte
int sakelar[] = {23, 25, 27, 29, 31, 33, 35, 37};       // deklarasi pin yang digunakan untuk switch dengan type data integer
                                         
void setup()                                                              // fungsi yang dieksekusi pertama pada program          
{                                                                               //  batas pembuka fungsi void setup             
pinMode(10,OUTPUT);                                           // pin 10 pada arduino digunakan sebagai output
digitalWrite(10,LOW);                                             // pin 10 pada arduino dalam keadaan low
for(int i=0;i<9;i++)                                                   // fungsi untuk variabel idengan keadaan awal nol meningkat sampai kecil dari sembilan
    {                                                                            // batas pembuka fungsi for       
      pinMode(sakelar[i],INPUT);                              // pin i digunakan sebagai input
    }                                                                            // batas penutup fungsi for    
}                                                                                // batas penutup fungsi void setup         
void loop()                                                                // fungsi perulangan pada program      
{                                                                                // batas pembuka fungsi void loop           
if (digitalRead(29)==HIGH)                                    // fungsi jika kondisi pin 29 dalam keadaan high
  { 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,HIGH);                                          // pin 5 seven segment hidup
    digitalWrite(6,HIGH);                                          // pin 6 seven segment hidup
    digitalWrite(7,LOW);                                           // pin 7 seven segment mati
    digitalWrite(8,HIGH);                                          // pin 8 seven segment hidup
    digitalWrite(9,LOW);                                           // pin 9 seven segment mati
    delay(200);                                                           // delay selama 200ms
  }                                                                              // batas penutup fungsi if
else                                                                            // jika kondisi tidak terpenuhi
  { 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
  }                                                                              // batas penutup fungsi else
}                                                                                // batas penutup fungsi void loop
 


Ketika switch 4 ditekan, maka seven segment akan menapilkan huruf d on off dengan delay 200 ms.
 
File HTML           (Download)
File Proteus         (Download)
File Program        (Download)
Video Rangkaian (Download)

Tuesday, November 8, 2016

Software Praktikum

1.) Arduino                    (Download)
2.) Code Vision AVR     (Download)
3.) Proteus 7                  (Download)
4.) Processing                (Download)

Monday, November 7, 2016

Mikrokontroller ATMEGA 128




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 


 a. Module ATMEGA 128 
 b. LCD 16x2
 c. Keypad 3x4
 d. Jumper
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




1.4 Rangkaian [kembali]

  • Hardware
  •  Rangkaian simulasi

Prinsip kerja :
Rangkaian ini menggunakan ATMega128 sebagai otak dari rangkaian dan keypad sebagai inputan,  LCD sebagai outputannya dan kristal sebagai clock, dimana keypad terhubung ke PORT D dan LCD terhubung ke PORT A. Ketika keypad 8 ditekan, maka akan muncul pada LCD "kelompok 14" yang bergerak dari kiri ke kanan. Namun ketika keypad yang lainnya ditekan maka tidak akan muncul apapun pada LCD karena yg diaktifkan dikeypad hanya PIND.1 dan PIND.6 dimana letak dari keypad 8.


1.5 Flowchart [kembali]

1.6 Listing Program [kembali]

#include <mega128.h>   // library untuk ATMega128
#include <alcd.h>           // library untuk LCD
#include <delay.h>         // library untuk delay

char kolom;                    // deklarasi kolom dengan tipe data char
void main(void)             // fungsi utama
{
    PORTA=0x00;         // PORT A aktif rendah
    DDRA=0xFF;          // PORT A sebagai output
    PORTD=0xFF;        // PORT D aktif tinggi
    DDRD=0x0F;          // PORT D sebagai input dan output
    lcd_init(16);             // LCD yang dipakai 16*2
       
    while(1)                      // membuka struktur pengulangan while
    {
    PORTD=0b111101;    // mengaktifkan angka yang ditekan pada keypad di PORTD
    if(PIND.6==0)            // jika menekan tombol keypad yang terhubung ke PIND.6 aktif low
        {  
       for (kolom=0; kolom<=16; kolom++)        //untuk teks berjalan dari kolom ke nol sampai kolom ke 16
        {  
            lcd_clear();                                    // membersihkan / reset LCD
            lcd_gotoxy(kolom,0);                   // posisi tulisan pada LCD
            lcd_putsf("kelompok 14");           // menampilkan tulisan "kelompok 14" pada LCD
            delay_ms(10);                              // delay selama 10ms
        }
    }  
   
    }
    }                         // akhir program



File HTML          (Download)
File Proteus         (Download)
File Program        (Download)
Video Rangkaian (Download)