Kuliah Tugas 1 : Aplikasi Interrupt Timer Overflow untuk LED Blink






1. Tujuan [kembali] 

Untuk memenuhi tugas kuliah pertama dengan membuat : Aplikasi Interrupt Timer Overflow untuk LED Blink

2. Alat dan Bahan [kembali] 

  • Module Arduino
  • LED
  • Seven Segmen
  • Motor
  • LCD

3. Landasan Teori [kembali] 

LED
Image result for led
LED adalah suaatu semikonduktor yang memancarkan cahaya,  LED mempunyai kecenderungan polarisasi. LED mempunyai kutub positif dan negatif (p-n) dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan LED terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus listrik mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED diberikan arus terbalik, hanya akan ada sedikit arus yang melewati  LED. Ini menyebabkan LED tidak akan mengeluarkan emisi cahaya.

Liquid Crystal Display (LCD)

Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untuk
menampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter).


Gambar Penampang komponen penyusun LCD
Keterangan:
1. Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.
2. Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).
3. Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).
4. Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).
5. Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.
6. Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat.

Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.



Kaki-kaki yang terdapat pada LCD

Arduino
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

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.Arduino
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

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.

4. Rangkaian [Kembali]


Percobaan kali ini akan dibuat program untuk membuat led berkedip per 500 milliseconds. Pada dasarnya LED akan toggle (berubah kondisinya) setiap terjadi interupsi  timer  overflow.  Nilai  register  timer  di-set  sedemikian  rupa  sehingga menghasilkan waktu overflow per 500 milliseconds.

5. Listing Program [Kembali]

boolean led = false;
unsigned int count = 0;
void setup()
{
  Serial.begin(9600);
  pinMode(13,OUTPUT);
  cli();
  TCCR1A = 0;
  TCCR1B = 0;
  TCNT1 = 34286 ;
  TCCR1B |= ( 1 << CS12 );
  TIMSK1 |= ( 1 << TOIE1 );
  sei();
}

ISR (TIMER1_OVF_vect)
{
  TCNT1 = 34286;
  led = !led;
  digitalWrite(13,led);
  count++;
}

void loop()
{
  Serial.print("overvlow count :");
  Serial.println(count,DEC);
  delay(100);

}


7.Video [Kembali]





8. Link [Kembali]

File Simulasi : [DOWNLOAD]

Video : [DOWNLOAD]

Program : [DOWNLOAD]

MENGATUR KECEPATAN MOTOR STEPPER




  1. Pastikan semua supply dalam keadaan off
  2.  Hubungkan jumper seperti gambar dibawah
  3.  Buatlah listing program yang telah ada pada modul.
  4.  Hidupkan supply pada modul
  5.  Upload program pada rangkaian
  6.  Tekan tombol Reset
  7.  Amati percobaan, jika tidak sesuai perbaiki rangkaian atau program
  8.  Jika sesuai, maka selesai dan demokan pada instruktur atau asisten yang  mengawas
  9.  Matikan supply pada modul

1. Hardware [kembali]



2. Rangkaian Simulasi [kembali]

Rangkaian terdiri dari LCD, driver motor L293D, keypad, dan 2 switch dengan menggunakan mikrokontroller Atmega 128. Dimana LCD terhubung pada PORT A, switch terhubung pada PORT B dengan switch 1 pada pin 0 ddan switch 2 pada pin 6. Dan juga driver motor terhubung pada PORT D dan keypad terhubung pada PORT E. untuk menjalankan simulasi klik tombol PLAY. untuk memulai operasi maka ditekan tombol RESET terlebih daulu. setelah itu, apabila tombol 1 pada keypad ditekan, maka motor stepper akan berputar. dan apabila switch 1 diaktifkan, maka motor stepper akan berputar juga.


3.Flowchart[kembali]
4. Listing Program [kembali]


#include <mega128.h>                       // Library atmega 128
#include <delay.h>                             // Libaray delay
#include <alcd.h>                               // Library LCD
int pin[]={1,2,4,8};                             // Deklarasi pin digunakan
int i;                                                     // Deklarasi nilai I;

void putar()                                         // Fungsi putar
{
    for( i=4;i>0;i--)                                // Perulangan
         {     
         lcd_gotoxy(1,1);                        // Posisi tulisan pada LCD
         lcd_putsf("Putar");                     // Mencetak tulisan pada LCD
         delay_ms(50);                            // Delay selama 50 ms
         lcd_clear();                                 // Membersihkan /reset LCD
         PORTD= pin[i];                         // Menjalankan motor sesuai biner
         }
}
void keypad()
{
PORTE=0b1111011;                          // PORTE sebagai keypad
delay_ms(1);                                       // Delay selama 1 ms
if (PINE.4 == 0)                                 // Jika PINE.4 ditekan dengan aktif low
  {           
    lcd_gotoxy(1,0);                             // Posisi kata yang tampil pada LCD
    lcd_putsf("Anda Tekan 1");            // Menulis kata pada LCD
    putar();                                            // Memanggil fungsi putar
  }
}

void main(void)                                  // Fungsi utama dalam program
{         
    PORTD=0x00;                                // PORTD dengan kondisi awal aktif low
    DDRD=0xff;                                  // PORTD ditetapkan sebagai ouput
    PORTF=0x00;                                // PORTF dengan kondisi awal aktif low
    DDRF=0x00;                                  // PORTF ditetapkan sebagai input
    PORTE=0xff;                                 // PORTE dengan kondisi awal aktif high
    DDRE=0x0f;                                  // PORTE ditetapkan sebagai input dan output
    lcd_init(16);                                    // Inisialisasi tipe LCD yang digunakan
   
    while(1)                                           // Looping dalam program
    {  
       keypad();                                      // Fungsi keypad     
       if (PINB.0 == 1)                          // Jika PINF.0 aktif high saat ditekan
        {                 
         putar();                                       // Memanggil fungsi putar
        }        
    }

}


5. Video [kembali]



6. Link Download [kembali]