Kamis, 28 November 2013


TIMER DAN COUNTER


TUJUAN :

1.  Mampu membuat program yang mengunakan fitur timer sebagai pewaktu.
2.  Mampu membuat program yang menggunakan fitur timer sebagai penghitung.
3.  Mampu mempergunakan fitur timer pada mikrokontroler untuk membuat jam digital sederhana.


PERALATAN :

1.  Komputer

2.  Arduino Uno

3.  Kabel USB tipe B

4.  Project board

5.  Kabel jumper

6.  LED

7.  Resistor 330 Ohm

8.  Switch pushbutton

9.  LCD

10. Potensiometer



PERCOBAAN :

6.1 Penggunaan Timer Overflow Untuk LED Blinking

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

Prosedur :
  • Buatlah rangkaian seperti pada Gambar 6.1.

  • Tuliskan sintaks program berikut ini, kemudian lakukan kompilasi dan upload program ke sistem minimum Arduino.

  • Buka Serial Monitor pada Arduino IDE, pastikan baudrate pada Serial Monitor adalah 9600. Kemudian amati teks yang ditampilkan pada Serial Monitor. Amati juga kondisi nyala dan mati LED pada pin 12.
Tugas dan Pertanyaan :
  • Jika dilakukan perhitungan konfigurasi register pada sintaks program Percobaan 6.1, timer 1 akan overflow setiap berapa milliseconds ?
  • Jelaskan perbedaan penggunaan delay dan timer overflow !
  • Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 6.1 !

DIBAWAH INI MERUPAKAN VIDEO DARI HASIL PRAKTIKUM YANG TELAH DILAKUKAN 






6.2 Jam Digital Menggunakan Timer

          Pada percobaan kali ini akan dibuat program sederhana yang berfungsi sebagai jam digital  dengan memanfaatkan fitur timer  mikrokontroler. Timer akan dikonfigurasi sehingga terjadi overflow setiap 1 detik. Tiap timer terjadi overflow, variabel detik, menit dan jam akan di-update nilainya. Nilai variabel tersebut akan ditampilkan pada LCD.
Prosedur :
  • Buatlah rangkaian seperti Gambar 6.2.

  • Tuliskan sintaks program berikut ini, lakukan kompilasi dan upload program.



Tugas dan Pertanyaan :
  • Ubahlah sintaks program pada Percobaan 6.2 sehingga jam menampilkan waktu saat ini !
  • Jika  dilakukan  perhitungan  dengan  konfigurasi  register  pada  sintaks  program Percobaan 6.2, timer 1 akan overflow setiap berapa milliseconds ?
  • Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 6.2 !

DIBAWAH INI MERUPAKAN VIDEO DARI HASIL PRAKTIKUM YANG TELAH DILAKUKAN 

 


6.3 Counter Mode Falling Edge
          Pada percobaan kali ini akan dibuat program yang berfungsi untuk menghitung jumlah penekanan switch pada input counter. Konfigurasi counter menggunakan mode falling edge.

Prosedur :
  • Buatlah rangkaian seperti pada Gambar 6.3.

  • Tuliskan sintaks program berikut ini, kemudian lakukan kompilasi dan upload program ke sistem minimum Arduino.

  • Buka Serial Monitor pada Arduino IDE, kemudian tekan switch pushbutton dan amati nilai TCNT1 yang ditampilkan pada Serial Monitor.
Tugas dan Pertanyaan :
  • Kapankah nilai counter (TCNT1) akan berubah ? Saat switch ditekan atau dilepas ? Jelaskan !
  • Berapakah nilai maksimal counter jika input counter menggunakan pin T1 (Timer 1) ? Jelaskan kenapa !
  • Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 6.3 !

DIBAWAH INI MERUPAKAN VIDEO DARI HASIL PRAKTIKUM YANG TELAH DILAKUKAN 


 


6.4 Counter Mode Rising Edge

          Pada  percobaan  kali  ini  akan  dibuat  program  yang  fungsinya  sama  dengan Percobaan 6.3. Namun pada percobaan kali ini konfigurasi counter menggunakan mode rising edge.
Prosedur :
  • Gantilah sintaks program pada Percobaan 6.5 dengan sintaks program berikut ini, kemudian lakukan kompilasi dan upload program ke sistem minimum Arduino.
  • Buka Serial Monitor pada Arduino IDE, kemudian tekan switch pushbutton dan amati nilai TCNT1 yang ditampilkan pada Serial Monitor.
Tugas dan Pertanyaan :
  • Kapankah nilai counter akan berubah ? Saat switch ditekan atau dilepas ? Jelaskan !
  • Jelaskan perbedaan penggunaan counter mode falling edge dan mode rising edge !
  • Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 6.4 !

DIBAWAH INI MERUPAKAN VIDEO DARI HASIL PRAKTIKUM YANG TELAH DILAKUKAN 




 
TUJUAN : 
  • Memahami cara mengi rimkan dan menerima data melalui periperal UART Arduino. 
  • Mampu membuat progr am untuk mengirimkan data berbasis teks dan berbasis byte. 
  • Mampu membuat prog ram untuk menerima data secara pooling d an secara interupsi serial.

PERALATAN :

1.  Komputer                         : 1 set

2.  Arduino Uno                    : 1 pcs

3.  Project board                    : 1 pcs

4.  Kabel jumper                    : 1 set

5.  LCD                                  : 1 pcs

6.  Potensiometer 10K           : 1 pcs


PERCOBAAN :

5.1 Mengirim Data Teks

          Pada percobaan ka li ini akan dibuat program untuk mengiri mkan data teks ke komputer melalui ko munikasi serial. Pada percobaan ini conto h teks  yang akan dikirimkan adalah "Hello World". Pengiriman data akan menggunak an baudrate 9600.
Prosedur :
  • Tuliskan sintaks program di bawah ini, kemudian lakukan kompilasi dan uploadprogram ke sistem minimum Arduino .

                                                           void setup() {
                                                           Serial.begin(9600);
                                                           }

                                                           void loop() {
                                                           Serial.print("HelloWorld");
                                                           delay(2000);
                                                           }


  • Buka Serial Monitor pada Arduino IDE. 

  • Pastikan konfigurasi baudrate adalah 9600 seperti Gambar 5.2.

  • Pastikan data teks "Hello Word" yang dikirimkan Arduino diterima oleh Serial Monitor.

Tugas dan Pertanyaan :

  • Gantiah parameter input pada fungsi Serial.print sesuai denga n Tabel 5.1. Amati data yang diterima  pada HTerm, kemudian isilah Tabel 5.1 di bawah ini !

  • Gantilah fungsi Serial.print menjadi Serial.println, kemudian tuliskan amati data yang diterima oleh komputer. Jelaskan perbedaan penggunaan fungsi Serial.print dan Serial.println !
    jika menggunakan serial.print maka hasil keluaran akan tetap sama dengan input yang diberikan , namun jika menggunakan serial.println maka program akan membaca perkata lalu akan melangkah satu baris kebawah lalu disambung pada baris baru kata yang lainya
  • Tambahkan karakter \r\n pada akhir baris teks pada Tabel 5.1 . Amati data yang ditampilkan pada k omputer. Jelaskan fungsi karakter \r\n pada k omunikasi serial ! fungsi dari karakter \r\n adalah untuk member enter pada input yang kita masukkan atau menampilkan input pada baris baru.
  •  Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 5.1 !
void setup() {    //  untuk inisialisai program
Serial.begin(9600);  //  konfigurasi baudrate serial 9600 dengan kecepatan mengirim data 9600 persekon
}

void loop() { // untuk mengeksekusi program yang akan dijalankan berulang-ulang
Serial.print("Hello World"); //menampilkan hello word di serial monitor
delay(2000);// memberi  selang waktu selama 2 detik .






5.2 Mengirim Data Byte .

          Pada percobaan ka li ini akan dibuat program untuk mengiri mkan data byte ke komputer melalui kom unikasi serial. Pengiriman data akan men ggunakan baudrate
115200.

  • Tuliskan sintaks program di bawah ini, kemudian lakukan ko mpilasi dan upload program ke sistem minimum Arduino,
                                                                   void setup() {
                                                                   Serial.begin(115200);
                                                                   }
                                                                   void loop() {
                                                                   Serial.write(0x41);
                                                                   Serial.write(0x42);
                                                                   Serial.write(0x43);
                                                                   Serial.write(0x44);
                                                                   Serial.write(0x45);
                                                                   delay(2000);
                                                                   }

  • Buka aplikasi HTerm pada komputer, pastikan konfigurasi pada HTerm seperti gambar di bawah ini.

  • Klik tombol Connect, kemudian perhatikan data yang ditam pilkan pada bagian Receive Data. Pastikan data tersebut sama dengan data yan g dikirimkan oleh Arduino.

Tugas dan Pertanyaan :

  • Gantilah parameter input untuk fungsi Serial.write dengan da ta pada Tabel 5.2. Amati data yang diterima pada HTerm, kemudian isilah Tabel 5. 2 !

  • Gantilah konfiguras i dari HTerm menjadi seperti di bawah ini, perhatikan data yang diterima. Kenapa d ata yang diterima berubah menjadi huruf ? Jelaskan !

  • Jelaskan perbedaan penggunaan fungsi Serial.print dan fungsi S erial.write !Serial.print berfungsi untuk mencetak kata yang dituliskan disintaks program ke serial monitor. Serial.write berfungsi untuk mengirim data byte yang adapadasintaks programarduinokekomputermelaluikomunikasi serial.
  • Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 5.2 !
void setup() {
Serial.begin(115200); //set baudrate 115200, kecepatan mengirim data serial dalam
1 detik
void loop() { // menjalankan program secara berulang-ulang
Serial.write(0x41); //mengirim data hexa 41
Serial.write(0x42); //mengirim data hexa 42
Serial.write(0x43); //mengirim data hexa 43
Serial.write(0x44); //mengirim data hexa 44
Serial.write(0x45); //mengirim data hexa 45
delay(2000); // delay selama 2 detik trus akan melanjutkan program lagi
}


5.3 Menerima Data dari UART dengan Sistem Pooling

          Pada percobaan kali ini akan dibuat program untuk   meneri ma data teks dari komputer melalui ko munikasi serial. Proses penerimaan   data a kan menggunakan sistem pooling (menunggu). Data yang diterima oleh Arduino akan ditampilkan pada LCD. Penerimaan data akan menggunakan baudrate 9600.

Prosedur :
  • Buatlah rangkaian seperti Gambar di bawah ini
  • Tuliskan sintaks program berikut ini, kemudian lakukan kompilasi dan upload program,
#include<LiquidCrystal.h>
LiquidCrystal lcd=(2,3,4,5,6,7);
String textFromSerial = "";
void setup() {
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Data From Serial")
Serial.begin(9600);
}

void loop() {
while(Serial.available()>0) {
char data =
Serial.read(); if(data ==
'\n') {
lcd.setCursor(0,1);
lcd.print(textFromSerial);
 textFromSerial="";
}
else{
if(data!='\r')
{
textFromSerial += data;
}
}
}
}

Tugas dan Pertanyaan :
  • Buka Serial Monitor pada Arduino pastikan konfigurasi Serial Monitor sama seperti pada Gambar di bawah ini .
  • Ketikkan sembarang kata untuk dikirimkan (kurang dari 16 k arakter), kemudian tekan Send. Isilah Tabel 5.3 !
  • Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 5.3 !
    #include<LiquidCrystal.h> //  memangil library lcd
    LiquidCrystal lcd=(2,3,4,5,6,7); // set pin 2-7 sebagai input untuk lcd
    String textFromSerial = "";//mengenalkan variable textFromSerial sebagai tipe data string
    void setup()
    {
    lcd.begin(16,2); // mengeset ukuran lcd sebesar 16x2 atau 16 colom dan 2 baris lcd.clear(); //mengbersikan layar lcd
    lcd.setCursor(0,0);  //memulai menampilkan data yang akan di kirim di colom ke 1 dan baris ke 1
    lcd.print("Data From Serial") //menampilkan kalimat”data from serial” Serial.begin(9600); //set baudrate 9600
    }

    void loop() menjalankan program secara berulang-ulang
    {
    while(Serial.available()>0) //ketika serial lebih dari 0 maka program di bawah ini akan di jalankan
    {
    char data = Serial.read(); //mengenalkan tipe data char dan data yang dikirim akan di masukan di variable data
    if(data == '\n') {  //jika data memiliki enter maka akan mengeksekusi program di bawah ini
    lcd.setCursor(0,1); //memulai menampilkan data di baris 2 dan kolom ke 1
    lcd.print(textFromSerial); //menampilkan text fromserial
    text FromSerial=""; //data yang terdapat dari variable text fromserial akan
    dimulai dari 0.
    }
    else{  //jika tidak akan melakukan program di bawah ini//
    if(data!='\r') {  //jika data tidak terdapat enter maka data dari text fromserial
    akan di jumlakan dengan data yang terdapat di variable data
    textFromSerial += data;
    }
    }
    }
    }

5.4 Menerima Data dari UART dengan Interupsi

          Pada percobaan ka li ini akan dibuat program untuk meneri ma data  teks sama seperti   Percobaan  5. 3. Pada percobaan kali ini proses penerimaan data kan menggunakan interupsi serial. Data yang diterima oleh Arduino aka n ditampilkan pada LCD. Penerimaan data akan menggunakan baudrate 115200.

Prosedur :

  • Tuliskan sintaks program di bawah ini, lakukan kompilasi dan u pload program.
 #include <LiquidCrystal.h>
#define FOSC 16000000
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); String dataSerial;

void initSerial(int baudrate) {
int ubrr = FOSC/16/baudrate-1;
// Mengisi register UBRR0H dan UBRR0L untuk menentukan baudrate
UBRR0H |= ubrr>>8;
UBRR0L |= ubrr;
// Mengaktifkan saluran transmitter dan receiver
UCSR0B |= (1<<RXEN0)|(1<<TXEN0);
// Menggunakan format data 8 bit
UCSR0C |= (0<<UCSZ02)|(1<<UCSZ01)|(1<<UCSZ00);
// Menggunakan 1 stop bit
UCSR0C |= (0<<USBS0);
// No Parity
UCSR0C |= (0<<UPM01)|(0<<UPM00);
// Mengaktifkan RX interrupt
UCSR0B |= (1<<RXCIE0);
}

// Rutin yang akan dijalankan jika terjadi interupsi
ISR(USART_RX_vect){
char data = UDR0; if(data=='\n') { lcd.clear();
lcd.setCursor(0,0); lcd.print("Incoming Data"); lcd.setCursor(0,1); lcd.print(dataSerial); dataSerial = "";
}
else{
if(data!='\r') {
dataSerial += data;
}
}
}

void setup() { initSerial(9600); lcd.begin(16,2); lcd.clear(); sei();
}

void loop() {

}

  •  Buka Serial Monit or pada Arduino IDE, sesuaikan konfigurasi Serial Monitor sesuai dengan Gambar 5.7.
  • Ketikkan sembarang teks untuk dikirimkan, tekan Send. Lengka pilah Tabel 5.4 !
  • Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 5.4 !

    #include <LiquidCrystal.h> //memangil library lcd
    #define FOSC 16000000
    LiquidCrystal lcd(2, 3, 4, 5, 6,7); //set pin 2-7 sebagi input ke lcd
    String dataSerial;// membuat dataserial sebagai tipe data string


    void initSerial(int baudrate)
    { int ubrr = FOSC/16/baudrate-1;
    // Mengisi register UBRR0H dan UBRR0L untuk menentukan baudrate
    UBRR0H |= ubrr>>8;
    UBRR0L |= ubrr;
    // Mengaktifkan saluran transmitter dan receiver
    UCSR0B |= (1<<RXEN0)|(1<<TXEN0); // Menggunakan format data 8 bit
    UCSR0C |= (0<<UCSZ02)|(1<<UCSZ01)|(1<<UCSZ00);
    // Menggunakan 1 stop bit UCSR0C |= (0<<USBS0);
    // No Parity
    UCSR0C |= (0<<UPM01)|(0<<UPM00); // Mengaktifkan RX interrupt
    UCSR0B |= (1<<RXCIE0);
    }

    // Rutin yang akan dijalankan jika terjadi interupsi ISR(USART_RX_vect){
    char data = UDR0;
    if(data=='\n') { //jika data ada enter maka akan menjalankan program di bawah
    ini
    lcd.clear();//membersihkan lcd
    lcd.setCursor(0,0); //set data yang akan di tampilkan di baris 1 dan colom 1 lcd.print("Incoming Data"); //menampilkan tulisan incoming data lcd.setCursor(0,1); //set data yang akan di tampilkan di baris 2 dan kolom 1 lcd.print(dataSerial); //menampilkan data yang terdapat di data serial dataSerial = "";//nilai data pada dataserial dimulai dari 0
    }
    else{
    if(data!='\r') {
    dataSerial += data;
    }
    }
    }

    void setup() { initSerial(9600); lcd.begin(16,2); lcd.clear(); sei();
    }
    void loop() {
    }
  •  Jelaskan perbedaan penggunaan interupsi dan sistem pooling !

    interupsi adalah meninggalkan program utama untuk menjalakan interupsi setelah di jalankan, maka arduino akan kembali ke program utama. Sistem pooling adalah arduino menunggu pengiriman data melalui serial




Kamis, 17 Oktober 2013

Tujuan :
  1. Mampu membuat program untuk penggunaan fitur interupsi eksternal .
  2. Memahami perbedaan mode interupsi eksternal (falling , rising , any change) .

Peralatan :
  1. Komputer                  : 1 set
  2. Arduino UNO           : 1 pcs
  3. Project Board            : 1 pcs
  4. Kabel Jumper            : 1 pcs
  5. Switch pushbutton      : 2 pcs
  6. LCD                          : 1 pcs
  7. Potensiometer 10k     : 1 pcs

Percobaan :

4.1 Interupsi eksternal dengan mode falling

          Pada percobaan kali ini akan dibuat program untuk memahami penggunaan interupsi eksternal dengan mode falling . Dua buah swicth akan dihubungkan pada pin interupsi eksternal 0 (INT0) dan interupsi esternal 1 (INT1) . Penekanan switch akan menginterupsi program utama (yang berada pada fungsi loop) dan memaksa untuk menjalankan rutin interupsi yang telah dideskripsikan pada program .

Prosedur :

  • rangkailah rangkaian pada gambar 4.1


  • tuliskan sintaks program berikut ini , kemudian lakukan kompilasi dan upload program ke sistem minimum arduino .


Tugas dan pertanyaan :

  1. Biarkan program berjalan sehingga pada LCD nilai count loop increment sampai di atas 5.Kemudian tekan salah satu switch yang terhubung pada INT0 atau INT1 selama 5 detik kemudian lepaskan. Amati teks yang ditampilkan pada LCD.Apakah yang akan terjadi jika switch ditekan ? Apakah yang akan terjadi jika switch di lepas ?
  2. Jelaskan pada saat kapan terjadinya proses interupsi !




4.2 Interupsi eksternal dengan mode Rising

          Dua buah switch akan dihubungkan pada pin INT0 atau INT1 sama seperti percobaan 4.1 . Penekanan switch akan menginterupsi program utama (yang berada pada fungsi loop) dan memaksa untuk menjalankan rutin interupsi yang telah dideskripsikan pada program. Pada percobaan metode interupsi yang digunakan adalah rising .

Prosedur :
  • gantilah sintaks program pada percobaan 4.2 denga sintaks program beriktu ini , kemudian lakukan kompilasi dan upload program ke sistem minimum arduino .



Tugas dan pertanyaan :
  1. Biarkan program berjalan sehingga pada LCD nilai count loop increment sampai diatas 5.Kemudian tekan salah satu switch yan terhubung pada INT0 atau INT1 selam 5 detik kemudian lepaskan. Amati teks yang ditampilkan pada LCD.Apakah yang akan terjadi jika switch ditekan ? Apakah yang akan terjadi jika switch di lepas ?
  2. Jelaskan pada saat kapan terjadinya proses interupsi ?
  3. Kapankah interupsi mode falling terjadi ? kapankah interupsi mode rising terjadi ? jelaskan !





4.3 Interupsi eksternal dengan mode any change

          Pada percobaan mode interupsi yang digunakan adalah any change . Dua buah switch akan dihubungkan pada pin INT0 dan INT1. Penekanan swicth akan membuat program utama pada fungsi loop terhenti dan mengeksekusi rutin interupsi .

Prosedur :
  • gantilah sintaks program pad percobaan 4.2 dengan sintaks program di bawah ini , kemudian lakukan kompilasi dan upload program ke sistem minimum arduino .



Tugas dan pertanyaan :
  1. Biarkan program berjalan sehingga pada LCD nilai count loop increment sampai diatas 5 . Kemudian tekan salah satu switch yang terhubung  pada INT0 atau INT1 selama 5 detik dan kemudian lepaskan. Amati teks yang ditampilkan pada LCD. Apakah yang akan terjadi jika switch ditekan ? Apakah yang akan terjadi jika switch dilepas ?
  2. Jelaskan pada saat kapan terjdainya proses interupsi ?
  3. Kapankah interupsi mode any change terjadi ? jelaskan !


Rabu, 16 Oktober 2013

Tujuan :

  • Mampu membuat program untuk mengakses periperal masukan digital menggunakan fungsi arduino .
  • Mampu membuat program untuk mengakses periperal masukan digital menggunakan konfigurasi register mikrokontroller .
  • Mampu membuat program untuk mengakses periperal keluaran digital menggunakan fungsi arduino .
  • Mampu membuat program untuk mengakses keluaran digital menggunakan konfigurasi register mikrokontroller .
Peralatan :
  • Komputer                        : 1 set
  • Arduino UNO                 : 1 pcs
  • Kabel data USB type B   : 1 pcs
  • Project Board                  : 1 pcs
  • Kabel Jumper                  : 1 set
  • Buzzer 5V                       : 1 pcs
  • Transistor 2N2222          : 1 pcs
  • Resistor 2k2                    : 1 pcs
  • LED                                : 6 pcs
  • Resistor 330 ohm             : 6 pcs
Percobaan :

2.1 Pemrograman digital output menggunakan library arduino 
  • rangkailah rangkaian seperti pada gambar di bawah ini .

  • tuliskan sintaks program di bawah ini pada program arduino IDE . kemudian lakukan kompilasi dan upload program ke sistem minimum arduino

          void setup() {
          pinMode(8, OUTPUT);
          pinMode(9, OUTPUT);
          pinMode(10 ,OUTPUT);
          pinMode(11 ,1);
          pinMode(12 ,1);
          pinMode(13 ,1);

          }

          void loop() {
          digitalWrite(8 ,HIGH);
          digitalWrite(9 ,HIGH);
          digitalWrite(10 ,1);
          digitalWrite(11 ,LOW);
          digitalWrite(12 ,LOW);
          digitalWrite(13 ,0);

          }

  • amati kondisi keenam LED yang terhubung ke arduino
Tugas dan pertanyaan :
  • isilah tabel di bawah ini sesuai dengan hasil pengamatan pda kondisi LED !
Tabel 2.1 kondisi LED pada percobaan 2.1

  • jelaskan fungsi tiap baris dari sintaks program pada percobaan 2.1 !
2.2 Pemrograman digital output menggunakan konfigurasi               register

          Pada praktikum kali ini akan dibuat program yang memiliki fungsi sama dengan percobaan 2.1 . Namun pada percobaan kali ini program yang dibuat akan menggunakan konfigurasi register untuk mengakses pin digital .

Prosedur :

  • gantilah sintaks pada program 2.1 dengan sintaks program berikut ini . kemudian lakukan kompilasi dan upload ke sistem minimum arduino .
          void setup() {
          DDRB=0x3F;

          }

          void loop() {
          PORTB=0x07;

}

  • amati kondisi nyala / mati dari keenam LED yang terhubung ke arduino .
Tugas dan pertanyaan :

  • isilah tabel 2.2 sesuai dengan hasil pengamatan pada kondisi LED !
tabel 2.2 kondisi nyala / mati LED pada percobaan 2.2

  • jelaskan fungsi tiap baris dari sintaks program pada percobaan 2.2 !
  • jelaskan perbedaan penggunaan fungsi arduino dan konfigurasi register pada pengaksesan digital output !
  • menurut anda , program menggunakan konfigurasi register lebih tepat untuk aplikasi yang seperti apa ? jelaskan !


2.3 penggunaan fungsi delay

          Pada percobaan kali ini akan dipraktekkan penggunaan fungsi delay pada program.Program yang akan dibuat bertujuan untuk membuat buzzer menyala dan mati secara bergantian dengan selang waktu tertentu.Konfigurasi nyala dan mati buzzer dengan sela waktu tertentu ini akan membuat suara seperti alarm ataupun sirine .

Prosedur :

  • rangkailah rangkaian seperti gambar di bawah ini .

  • tulislah sintaks program di bawah ini kemudian lakukan kompilasi dan upload pogram .
          void setup() {
          pinMode(12 ,OUTPUT);

          }

          void loop() {
          digitalWrite(12 ,HIGH);
          delay(1000);
          digitalWrite(12 ,LOW);
          delay(1000);

          }
  • Amati suara buzzer .
Tugas dan pertanyaan :

  • jelaskan fungsi tiap baris dari sintaks program pada percobaan 2.3 !
  • gantilah parameter masukan untuk fungsi delay dengan 300 , 1000 , 1500 , 2000 kemudian amati perubahan suara buzzer . Jelaskan fungsi parameter masukan dari fungsi delay !

2.4 Pemrograman digital input menggunakan fungsi arduino

          Pada percobaan kali ini akan dipraktekkan pemrograman untuk mengakses masukan dalam bentuk digital.Program bertujuan untuk menyalakan buzzer ketika tombol ditekan.Untuk melakukan pengaksesan terhadap masukan digital akan digunakan fungsi arduino.

Prosedur :

  • rangkailah rangkaian seperti pada gambar di bawah ini


  • tuliskan sintaks program di bawah ini , kemudian lakukan kompilasi dan upload program .
          void setup() {
          pinMode(A0 ,INPUT);
          digitalWrite(A0 ,HIGH);
          pinMode(12 ,OUTPUT);

          }

          void loop() {
          if(digitalRead(A0)==LOW) {
          digitalWrite(12 ,HIGH);
          }
          else{
          digitalWrite(12 ,LOW);
          }

          }

  • tekanlah switch pushbutton kemudian amati kondisi buzzer .
Tugas dan pertanyaan :

  • jelaskan fungsi tiap baris dari sintaks program pada percobaan 2.4 !

  • perhatikan pada fungsi setup()
          void setup() {
          pinMode(A0 ,INPUT);
          digitalWrite(A0 ,HIGH);
          pinMode(12 ,OUTPUT);
          }

          Setelah pin A0 dikonfigurasikan menjadi input , kemudian pin A0 diperintahkan untuk berlogika HIGH. Apa yang akan terjadi pada pin A0 setelah baris program di atas dieksekusi ? jelaskan !

2.5 Pemrograman digital input menggunakan konfigurasi                 register.

          Pada percobaan kali ini akan di praktekkan pemrograman untuk mengakses masukan dalam bentuk digital sama seperti percobaan 2.4.Pada percobaan kali ini pengaksesan terhadap masukan digital akan menggunakan konfigurasi register .

Prosedur :

  • gantilah sintaks program pada percobaan 2.5 menjadi seperti di bawah ini kemudian lakukan kompilasi dan upload program .
          void setup() {
          DDRC=0x00;
          PORTC=0x01;
          DDRB=0x10;

          }

          void loop() {
          if(bit_is_clear(PINC,0)) {
          PORTB=0x10;
          }
          else{
          PORTB=0x00;
          }
          }
  • tekanlah switch pushbutton kemudian amati kondisi buzzer .
Tugas dan pertanyaan :

  • jelaskan fungsi tiap baris dari sintaks program pada percobaan 2.5 !
  • jelaskan perbedaan penggunaan fungsi arduino dan konfigurasi register untuk penggunaan periperal masukan digital !






Tujuan :

  • mampu membuat program untuk mengakses periperal masukan analog dengan tegangan referensi internal , vcc , dan eksternal.
  • mampu memahami pengaruh nilai tegangan referensi terhadap hasil konversi analog to digital converter (ADC).
  • mampu membuat program untuk mengakses fitur analog komparator pada nikrokontroller.

Peralatan :

  1. Komputer                : 1 set
  2. Arduino UNO         : 1 pcs
  3. Kabel USB type B   : 1 pcs
  4. Project Board          : 1 pcs
  5. Kabel jumper           : 1 pcs
  6. Potensiometer 10k   : 3 pcs
  7. LCD 2x16               : 1 pcs

Percobaan :



3.1 Analog input dengan tegangan referensi internal (1,1 Volt)

          pada percobaan kali ini akan dibuast program untuk mengkonversi nilai tegangan analog dari potensiometer menjadi nilai digital. Data hasil konversi akan ditampilkan pada LCD 2x16. Tegangan referensi ADC yang digunakan adalah tegangan referensi internal yang besarnya 1,1 Volt.

Prosedur :

  • rangkailah rangkaian pada gambar 3.1

  • tuliskan sintaks program di bawah ini , kemudian lakukan kompilasi dan upload program ke sistem minimum arduino .

Tugas dan pertanyaan :

  • putarlah potensiometer sehingga terjadi perubahan tegangan dari 0 sampai 1,5 volt dengan rentan perubahan 0,5 volt. Amati data yang ditampilkan pada LCD , kemudian isilah tabel 3.1


  • jelaskan fungsi tiap baris dari sintaks program pada percobaan 3.1 !



3.2 Analog input dengan tegangan referensi VCC

          pada percobaan kali ini akan dibuat program seperti pada percobaan 3.1.Pada percobaan 3.2 tegangan referensi ADC yang digunakan adalah tegangan VCC pada mikrokontroller.

Prosedur :

  • gantilah sintaks program pada percobaan 3.1 menjadi seperti di bawah ini , kemudian lakukan kompilasi dan upload.

Tugas dan pertanyaan :

  • putarlah potensiometer sehingga terjadi perubahan tegangan dari 0 sampai 5 volt dengan rentan perubahan 1 volt , kemudian amati data yang ditampilkan pada LCD dan isilah tabel 3.2 !

  • jelaskan fungsi tiap baris dari sintaks program pada percobaan 3.1 !


3.3 Analog input dengan tegangan referensi eksternal

          Pada percobaan kali ini akan dibuat program seperti percobaan 3.1 dan percobaan 3.2 . tegangan referensi yang digunakan adalah tegangan referensi eksternal yaitu tegangan pada pin AREF.Pada percobaan kali ini besar tegangan pada pin AREF akan diset sebesar 4 volt.Sehingga dapat dikatakan bahwa besarnya tegangan referensi yang digunakan adalah 4 volt.

Prosedur :

  • rangkailah rangkaian pada gambar 3.2


  • tuliskan sintaks program di bawah ini , kemudian lakukan kompilasi dan upload program ke sistem minimum arduino.

  • putar potensiometer R3 hingga tegangan pada pin AREF terukur 4 volt.

Tugas dan pertanyaan :

  • putarlah potensiometer pin R2 sehingga terjadi perubahan tegangan dari 0-5 volt dengan rentan perubahan 1 volt . Amati data yang ditampilkan pada LCD , kemudian isilah tabel 3.3 .


  • jelaskan fungsi tiap baris dari sintaks program pada percobaan 3.3 !
  • jelaskan pengaruh nilai tegangan referensi pada hasil konversi ADC !


3.4 Analog Comparator

          Pada percobaan 3.4 akan dibuat program untuk mengakses fitur analog komparator pada mikrokontroller . Pada percobaan kali ini dua buah input analog akan dihubungkan ke input pin komparator yaitu AIN0 (pin 6) dan AIN1 (pin 7) .Output analog komparator akan ditampilkan pada LCD .

Prosedur :

  • rangkailah rangkaian pada gambar 3.3

  • tuliskan sintaks program di bawah ini , kemudian lakukan kompilasi dan upload program ke sistem minimum arduino .





Tugas dan pertanyaan :

  • putarlah potensiometer R2 dan R3 , amati teks pada LCD sehingga terjadi perubahan output.Apakah yang terjadi jika tegangan pada pin AIN0 lebih besar daripada tegangan pada pin AIN1 , jelaskan !
  • Apakah yang terjadi jika tegangan pada pin AIN0 lebih kecil dari tegangan pada pin AIN1 , jelaskan !
  • Jelaskan prinsip kerja dari analog komparator pada sistem minimum arduino! apakah prinsip kerja komparator pada mikrokontroller sama dengan prinsip kerja komparator pada op-amp ?
  • jelaskan fungsi tiap baris dari sintaks program pada percobaan 3.4 !

Sabtu, 21 September 2013

Untuk melakukan simulasi penggunaan arduino pada komputer , ada beberapa aplikasi yang harus ada pada komputer anda , yaitu aplikasi arduino dan aplikasi proteus .

Berikut ini akan di jelaskan cara atau langkah-langkah yang harus dilakukan untuk melakukan simulasi penggunaan arduino pada komputer .

Kali ini kita akan membuat simulasi suatu project lampu LED berkedip dengan delay waktu selama 1 detik menggunakan aplikasi PROTEUS .


  • Langkah pertama yang harus dilakukan adalah dengan masuk ke aplikasi arduino dan aplikasi proteus. .
aplikasi arduino

aplikasi proteus

  • Setelah itu gambar lah rangkaian schematic lampu LED berkedip tersebut pada aplikasi proteus .(Gambar di bawah ini merupakan rangkaian schematic dari lampu LED berkedip dengan delay waktu 1 detik) !


  • Kemudian buka aplikasi arduino , lalu tulis sintaks program di bawah ini pada arduino .


  • Simpan program dengan menekan tombol save , kemudian tuliskan nama file seperti menyimpan file biasanya .(perhatikan kedua gambar di bawah ini) !



  • Kemudian lakukan kompilasi program yang telah dituliskan untuk mengecek kesalahan penulisan sintaks .

  • Setelah proses kompilasi selesai , scroll down hasil kompilasi hingga barisa nomor dua dari bawah , kemudian copy tulisan tersebut (lihat gambar di bawah ini) !

  • Kemudian buka kembali aplikasi proteus yang telah dijalankan tadi . Klik komponen arduino pada rangkaian schematic tersebut (akan muncul tampilan edit komponen) . Lalu PASTE tulisan yang telah di COPY tadi pada bagian program file dari tampilan edit komponen tersebut .(perhatikan gambar dibawah ini) !

  • Kemudian main/jalankan simulasi project yang telah anda buat dengan mengklik tombol play.



Setelah semua langkah telah dijalankan dengan benar , lihatlah simulasi project yang telah anda buat dengan mengkilik tombol play , lampu LED akan hidup dan mati secara bergantian dengan delay waktu selama 1 detik sesuai dengan pemrograman arduino yang telah anda buat pada aplikasi arduino tersebut .

SELAMAT MENCOBA !!!





Jumat, 20 September 2013

BAGAIMANA CARA MENGINSTALL ARDUINO ???

Berikut ini akan di jelaskan bagaimana cara menginstallasi ARDUINO pada komputer . Jenis Arduino yang digunakan pada kali ini adala jenis Arduino USB khususnya installasi driver ARDUINO UNO .

Persiapkan alat dan bahan yang di perlukan seperti yang dapat dilihat pada gambar di bawah ini.

KOMPUTER

KABEL DATA USB TYPE B

ARDUINO UNO


  • Hubungkan board Arduino pada komputer kemudian tunggu sampai windows memulai instalasi driver arduino .(Gambar dibawah menunjukkan bahwa arduino telah terhubung pada komputer ).



  • Sistem operasi windows tidak menyediakan driver untuk arduino (seperti pada gambar di bawah) , itu berarti proses instalasi driver arduino harus dilakukan secara manual.

  • Kemudian klik start menu , search atau ketikkan device manager di search program and files , maka akan muncul tampilan seperti di bawah ini .

  • Cari "unknown device" pada bagian "other device" , kemudian klik kanan dan pilih "update driver software" . perhatikan gambar di bawah ini !

  • Kemudian pilih "browse my computer for driver software"

  • Arahkan lokasi folder ke folder ...\arduino-1.0.5\drivers. pastikan check box include subfolder di centang . klik next untuk melanjutkan instalasi driver .

  • Lanjutkan dengan mengklik install pada tapilan windows security .

  • Jika proses instalasi telah berhasil maka akan muncul tampilan yang menyatakan kalau proses instalasi telah dijalankan dengan sukses .

  • Perhatikan dan ingat nama COM arduino UNO , karena nama COM ini yang akan digunakan saat meng-upload program nantinya .






Apabila langkah-langkah di atas telah di jalankan dengan baik dan benar , driver arduino telah berhasil dan sukses terinstal pada komputer anada. SELAMAT MENCOBA !!!






Subscribe to RSS Feed Follow me on Twitter!