Sabtu, 16 Juli 2016

[MIKROKONTROLER]TUTORIAL MOTOR DC DRIVER DFROBOT

TUTORIAL MOTOR DC
DRIVER DFROBOT
Motor DC adalah alat yang mengubah energi listrik menjadi energi gerak. Motor menjadi alat yang sangat vital untuk keperluan robotika dan dunia industri. Penyusun dasar dari suatu motor DC adalah arus listrik yang mengalir melalui armatur yang berakhir pada komutator.



Gambar 1.Komponen PenyusunMotor DC

Ketika arus listrik melewati amartur (koil) dalam suatu medan magnet, gaya magnet akan memproduksi torsi yang akan memutar koil tersebut.





Gambar 2. Arus Listrik dalam suatu Medan Magnet akan Menimbulkan Torsi
Karena motor DC dapat mengkonsumsi arus yang besar, maka sebaiknya kita menggunakan driver untuk mengontrol motor DC. Driver juga dapat digunakan untuk mengontrol arah putar dankeceptan motor. Salah satu jenis  motor driver yang bisa digunakan adalah driver keluaran DFRobot yang menggunakan IC L298P sebagai IC utama. Berikut keterangan driver tersebut:






Gambar 2. Keterangan pin-pin pada driver DFRobot

TabelIPengaturan Pin pada Mode PWM
Pin
Fungsi
Digital 4
Kontrol arah motor 1
Digital 5
Kontrol kecepatan (PWM) motor 1
Digital 6
Kontrol kecepatan (PWM) motor 2
Digital 7
Kontrol arah motor 2




koneksikan komponen dengan konfigurasi seperti pada gambar berikut:


Koding pada Arduino

//Arduino PWM Speed Control
int E1 = 5; 
int M1 = 4;
int E2 = 6;                     
int M2 = 7;                       

void setup()
{
    pinMode(M1, OUTPUT);  
    pinMode(M2, OUTPUT);
}

void loop()
{
  int value;
  for(value = 0 ; value <= 255; value+=5)
  {
    digitalWrite(M1,HIGH);  
    digitalWrite(M2, HIGH);      
    analogWrite(E1, value);   //PWM Speed Control
    analogWrite(E2, value);   //PWM Speed Control
    delay(30);

  }  



[MIKROKONTROLER]PENGETAHUAN UMUM MIKROKONTROLER

Pengertian Mikrokontroller
Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan umunya dapat menyimpan program didalamnya. Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan umunya dapat menyimpan program did umumnya terdiri dari CPU (Central Processing Unit), memori, I/O tertentu dan unit pendukung seperti Analog-to-Digital Converter (ADC) yang sudah terintegrasi di dalamnya. Kelebihan utama dari mikrokontroler ialah tersedianya RAM dan peralatan I/O pendukung sehingga ukuran board mikrokontroler menjadi sangat ringkas. Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan umunya dapat menyimpan program did MCS51 ialah mikrokomputer CMOS 8 bit dengan 4 KB Flash PEROM (Programmable and Erasable Only Memory) yang dapat dihapus dan ditulisi sebanyak 1000 kali. Mikrokontroler ini diproduksi dengan menggunakan teknologi high density non-volatile memory. Flash PEROM on-chip tersebut memungkinkan memori program untuk diprogram ulang dalam sistem (in-system programming) atau dengan menggunakan programmer non-volatile memory konvensional. Kombinasi CPU 8 bit serba guna dan Flash PEROM, menjadikan mikrokontroler MCS51 menjadi microcomputer handal yang fleksibel.
Mikrokontroler tersusun dalam satu chip dimana prosesor, memori, dan I/O terintegrasi menjadi satu kesatuan kontrol sistem sehingga mikrokontroler dapat dikatakan sebagai komputer mini yang dapat bekerja secara inovatif sesuai dengan kebutuhan sistem.
Mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis data. Sekedar contoh, bayangkan diri Anda saat mulai belajar membaca dan menulis, ketika Anda sudah bisa melakukan hal itu Anda bisa membaca tulisan apapun baik buku, cerpen, artikel dan sebagainya, dan Andapun bisa pula menulis hal-hal sebaliknya.
Sejarah Mikrokontroler Dan Perkembangan
Karena kebutuhan yang tinggi terhadap “chip-chip pintar” dengan berbagai fasilitasnya, maka berbagai vendor juga berlomba untuk menawarkan produk-produk mikrokontrolernya. Hal tersebut terjadi semenjak tahun 1970-an. 

Mikrokontroler pertama kali dikenalkan oleh Texas Instrument dengan seri TMS 1000 pada tahun 1974 yang merupakan mikrokontroler 4 bit. Pada tahun 1976 Intel mengeluarkan mikrokontroler yang kelak menjadi populer dengan nama 8748 yang merupakan mikrokontroler 8 bit, yang merupakan mikrokontroler dari keluarga MCS 48. Sekarang dipasaran banyak sekali ditemui mikrokontroler mulai dari 8 bit sampai dengan 64 bit, sehingga perbedaan antara mikrokontroler dan mikroprosesor sangat tipis. Masing-masing vendor mengeluarkan mikrokontroler dengan dilengkapi fasilitas-fasilitas yang cenderung memudahkan user untuk merancang sebuah sistem dengan komponen luar yang relatif lebih sedikit. Saat ini mikrokontroler yang banyak beredar dipasaran Yogyakarta adalah mikrokontroler 8 bit varian keluarga MCS51(CISC) yang dikeluarkan oleh Atmel dengan seri AT89Sxx, dan mikrokontroler AVR yang merupakan mikrokontroler RISC dengan seri ATMEGA8535 (walaupun varian dari mikrokontroler AVR sangatlah banyak, dengan masing-masing memiliki fitur yang berbeda). Dengan mikrokontroler tersebut pengguna (pemula) sudah bisa membuat sebuah sistem untuk keperluan sehari-hari, seperti pengendali peralatan rumah tangga jarak jauh yang menggunakan remote control televisi, radio frekuensi, maupun menggunakan ponsel, membuat jam digital, termometer digital dan sebagainya.

Motorola mengeluarkan seri mikrokontroler 6800 yang terus dikembangkan hingga sekarang menjadi 68HC05, 68HC08, 68HC11, 68HC12, dan 68HC16. Zilog juga mengeluarkan seri mikroprosesor Z80-nya yang terkenal dan terus dikembangkan hingga kini menjadi Z180 dan kemudian diadopsi juga oleh mikroprosesor Rabbit. Intel mengeluarkan mikrokontrolernya yang populer di dunia yaitu 8051, yang karena begitu populernya maka arsitektur 8051 tersebut kemudian diadopsi oleh vendor lain seperti Phillips, Siemens, Atmel, dan vendor-vendor lain dalam produk mikrokontroler mereka. Selain itu masih ada mikrokontroler populer lainnya seperti Basic Stamps, PIC dari Microchip, MSP 430 dari Texas Instrument dan masih banyak lagi. 

Selain mikroprosesor dan mikrokontroler, sebenarnya telah bemunculan chip-chip pintar lain seperti DSP prosesor dan Application Spesific Integrated Circuit (ASIC). Di masa depan, chip-chip mungil berkemampuan sangat tinggi akan mendominasi semua desain elektronik di dunia sehingga mampu memberikan kemampuan komputasi yang tinggi serta meminimumkan jumlah komponen-komponen konvensional. 
CARA KERJA MIKROKONTROLER
Prinsip kerja  mikrokontroler adalah  :
a.         Berdasarkan nilai yang berada pada register Program Counter, mikrokontroler mengambil data pada ROM dengan address sebagaimana nilai    yang tertera pada Program Counter. Selanjutnya Program Counter ditambah nilainya dengan 1 (increment) secara otomatis.  Data yang diambil tersebut adalah urutan instruksi program pengendali mikrokontroler yang sebelumnya    telah dibuat oleh pemakai. 
b.         Instruksi tersebut diolah dan dijalankan. Proses pengerjaan bergantung   pada jenis instruksi: bisa membaca, mengubah nilai-nilai pada register, RAM isi port atau melakukan pembacaan dan dilanjutkan dengan pengubahan data. 
c.         Program Counter telah berubah nilainya (baik karena penambahan otomatis sebagaimana pada langkah 1 di atas atau karena pengubahan pada  langkah b. Selanjutnya yang dilakukan mikrokontroler adalah mengulang  kembali siklus ini pada langkah 1. Demikian seterusnya hingga power  dimatikan.
            Dari pengertian di atas dapat disimpulkan bahwa pada dasarnya unjuk kerja mikrokontroler sangatlah bergantung pada urutan instruksi yang dijalankannya, yaitu program yang ditulis di ROM.
            Dengan membuat program yang bermacam-macam, maka tentunya mikrokontroler dapat mengerjakan proses yang bermacam-macam pula. Fasilitas-fasilitas yang ada misalnya timer/counter, port I/O, serial port, Analog to Digital Converter (ADC) dapat dimanfaatkan oleh program untuk menghasilkan proses yang diinginkan.  Misalnya saja ADC dipergunakan oleh sebuah mikrokontroler pengendali alat ukur digital untuk mengukur tegangan sinyal input. Kemudian hasil pembacaan ADC diolah untuk kemudian dikirimkan ke sebuah display yang terhubung pada port I/O, menampilkan hasil pembacaan yang telah diolah. Proses pengendalian ADC, pemberian sinyal-sinyal yang tepat pada display, kesemuanya dikerjakan secara berurutan pada program yang ditulis di ROM.
            Penulisan program mikrokontroler pada umumnya adalah menggunakan bahasa assembly untuk mikrokontroler yang bersangkutan (setiap mikrokontroler memiliki instruksi bahasa assembly yang berlainan). Kemudian dengan bantuan sebuah komputer, bahasa assembly tersebut diubah menjadi bahasa mesin mikrokontroler, dan disalin ke dalam ROM mikrokontroler.
            Pada buku ini akan dibahas mikrokontroler dari keluarga MCS-51, dengan beberapa contoh aplikasi sederhana. Selanjutnya dari pengertian yang didapat, diharapkan dapat dikembangkan sendiri aplikasi-aplikasi lain sebagaimana yang diinginkan.

MENGAKSES MIKROKONTROLER
Agar sebuah mikrokontroler dapat berfungsi, maka mikrokontroler tersebut memerlukan komponen eksternal yang kemudian disebut dengan sistem minimum. Untuk membuat sistem minimal paling tidak dibutuhkan sistem clock dan reset, walaupun pada beberapa mikrokontroler sudah menyediakan sistem clock internal, sehingga tanpa rangkaian eksternal pun mikrokontroler sudah beroperasi.

Untuk merancang sebuah sistem berbasis mikrokontroler, kita memerlukan perangkat keras dan perangkat lunak, yaitu: 
Sistem minimal mikrokontroler. 
Software pemrograman dan kompiler, serta downloader. 
Yang dimaksud dengan sistem minimal adalah sebuah rangkaian mikrokontroler yang sudah dapat digunakan untuk menjalankan sebuah aplikasi. Sebuah IC mikrokontroler tidakakan berarti bila hanya berdiri sendiri. Pada dasarnya sebuah sistem minimal mikrokontroler AVR memiliki prinsip yang sama, yang terdiri dari 4 bagian, yaitu : 
Prosesor, yaitu mikrokontroler itu sendiri. 
Rangkaian reset agar mikrokontroler dapat menjalankan program mulai dari awal. 
Rangkaian clock, yang digunakan untuk memberi detak pada CPU. 
Rangkaian catu daya, yang digunakan untuk memberi sumberdaya. 
Pada mikrokontroler jenis tertentu (AVR misalnya), poin2 pada no 2 ,3 sudah tersedia didalam mikrokontroler tersebut dengan frekuensi yang sudah diseting dari vendornya, sehingga pengguna tidak perlu memerlukan rangkaian tambahan, namun bila ingin merancang sistem dengan spesifikasi tertentu (misal ingin komunikasi dengan PC atau handphone), maka pengguna hs arumenggunakan rangkaian clock yang sesuai dengan karakteristik PC atau HP tersebut.

Sistem Polling dan InterupsiPolling sebenarnya bukan suatu fitur , ini adalah sesuatau yang harus dilakukan jika mikrokontroler yang dipilih tidak memiliki interupsi. Polling adalah teknik perangkat lunak dimana kontroler secara terus menerus menanyakan suatu perangkat jika membutuhkan servis.Perangkat membuat suatu tanda ketika data siap untuk ditransfer ke kontroler, dimana kontroler akan melihat pool berikutnya. Beberapa perangkat dapat dipolled dengan sukses, dengan kontroler yang meloncat kepada rutin program yang lain, tergantung pada flag mana yang telah diset.

Dasar dari polling adalah setiap fungsi memakai tipe round-robin untuk menanyakan ketika mereka dalam keadaan yang membutuhkan sebuah servis, kita dapat membuat mereka (prosedure/fungsi) memanggil fungsi mereka sendiri ketika prosedure tersebut membutuhkan penanganan lain. Ini disebut dengan “interupt”, ketika perangkat menginterupsi eksekusi program utama. Prosesor lalu akan mengambil waktu untuk keluar dari eksekusi program normal untuk menguji source interrupt dan mengambil aksi tertentu. Setelah itu, eksekusi program normal dilanjutkan. Sebuah servis interrupt dengan kata lain seperti sebuah sub-rutin, untuk melakukan perintah lain yang sebelumnya tidak dijalankan sehingga dapat diantisipasi oleh prosesor untuk menyesuaikan sebagian waktu, untuk mengeksekusi perintah baru dan menghentikan program utama yang kemudian dijalankan kembali jika tidak ada pemanggilan prosedur lain pada badan program.

Pemakaian prioritas interupsi di atas memiliki beberapa peraturan yang tercantum dibawah ini:
(a). Tidak ada interupsi yang menginterupsi interupsi prioritas tinggi.
(b). Interupsi prioritas tinggi boleh menginterupsi interupsi prioritas rendah.
(c). Interupsi prioritas rendah boleh terjadi jika tidak ada interupsi lain yang sedang dijalankan.
(d). Jika dua interupsi terjadi pada waktu bersamaan, interupsi yang memiliki prioritas lebih tinggi akan dikerjakan terlebih dahulu. Jika keduanya memiliki prioritas sama, maka interupsi yang berada pada urutan polling akan dikerjakan terlebih dahulu.

Mikrokontroler ATMEL secara otomatis akan menguji apakah sebuah interupsi bias terjadi setelah setiap instruksi dikerjakan. Pengecekan ini mengikuti suatu alur yang disebut dengan Polling Sequence dengan urutan:
Interupsi Eksternal 0
Interupsi Timer 0
Interupsi Eksternal 1
Interupsi Timer 1
Interupsi serial
Ini berarti jika sebuah interupsi serial terjadi pada waktu bersamaan dengan interupsi eksternal 0, maka interupsi eksternal 0 akan dikerjakan terlebih dahulu dan interupsi serial baru akan dikerjakan setelah pengerjaan rutin interupsi eksternal 0 selesai dilakukan.


[MIKROKONTROLER]KUIS MIKROKONTROLER


Nama
I Putu Angga Aditya
Nim
1415313016
Kelas
TL-4B

Pada suatu  sistem pemanas berbasis mikrokontroler, diketahui bahwa elemen pemanas dari suatu heater elektrik dapat menaikkan suhu suatu metal sebesar 10o C tiap Ampere arus listrik yang diberikan. Metal tersebut memuai sebesar 0.0005 cm tiap setengah derajat Celcius. Metal tersebut mendorong sensor beban yang memiliki output sebesar 1 Volt tiap 0.005 centimeter tekanan yang diberikan.
Hitunglah fungsi transfer total dari sistem tersebut!
Jawab :
Diketahui fungsi transfer di rumuskan sebagai:
Suatu heater elektrik dapat menaikkan suhu suatu metal sebesar 100 C tiap Ampere arus listrik yang diberikan .


TF₁         =10 
   Metal tersebut memuai sebesar 0,0005 cm tiap setengah derajat celcius




TF₂    =   =0,001

    


Metal tersebut mendorong sensor beban yang memliki output volt tiap 0,0005 centimeter
TF₃   =  == 200
   

 Fungsi Transfer Total ditulis sebagai berikut:                                                                                                                                           
TFtotal =  TF1 X TF2 X TF3
  =10 X 0,001x 200
           = 2 V/A       

[MIKROKONTROLER]LAPORAN PRAKTIKUM

LAPORAN PRAKTIKUM
Mata kuliah Mikrokontroler
Praktikum 1 : Digital Input/Output
Praktikum 2 : Analog Input / Output
Praktikum 3 : Statement Control
Praktikum 4 :Sensor Interfacing







Nama
:
I Putu Angga Aditya
Nim
:
1415313016
Dosen Pengampu
:
I Nyoman Kusuma Wardana, M.Sc


Program Studi Teknik Listrik
Jurusan Teknik Elektro
Politeknik Negeri Bali
2016



DIGITAL Input/Output
(Praktikum 1)
I.Dasar Teori
Digital Input/Output(Digital I/O) adalah komponen yang palling mendasar dari sebuah MCU(Main Control Unit) yang menghubungkan mikrokontroler dengan dunia luar. Antarmuka dengan dunia luar dikenal dengan istital PORT. Port adalah titik dimana data inernal dari chip MCU keluar atau data eksternal berjalan masuk.
Digital IO bisa digunakan untuk menyalakan LED ,atau men-drive sebuah transistor untuk keperluan pengontrolan dengan arus yang lebih tinggi. Digital I/O juga bisa digunakan untuk membaca data dari luar(sebaagai input),misalnya untuk membaca status tombol,switch,atau membaca data dari keypad.
Contoh dari pengaplikasian digital I/O yaitu sebagai berikut:
A.   Blink
Pada contoh di bawah ini akan memperlihatkan hal paling sederhana yang bisa dilakukan dengan menggunakan Arduino untuk melihat output/keluaran fisik, yaitu menghidup-matikan LED.

Hardware/perangkat keras yang diperlukan
·        Arduino
·        LED
B. Button
Pushbutton atau switch menghubungkan dua titik pada rangkaian ketika kita menekannya. Pada contoh di bawah ini kita akan menyalakan LED bawaan pada pin 13 dengan menggunakan button/tombol.

II.Alat Dan Bahan
          Alat dan bahan percobaan diperlihatkan pada Tabel 2:

Tabel 2. Alat dan Bahan Praktikum

No
Alat dan Bahan
Jumlah
1
Board Arduino Uno R3
1
2
Modul/Rangkaian Percobaan
1
5
Kabel USB
1
6
Kabel jumper
Secukupnya

III. Langkah Percobaan
III.1 Percobaan Led Blink
A.Koneksi Hardware
Dengan menggunakan breadboard, koneksikan pin-pin ke Arduino dengan konfigurasi seperti pada tabel berikut:
Koneksi Konfigurasi Blink dan Arduino
Pin Arduino
Komponen
13
Led

a)    Blink
Gambar 1. Skematik Percobaan blink
Gambar 2. Breadboard Percobaan Blink
B.Pemrograman pada Arduino diperlihatkan sebagai berikut:
a.Blink
int led = 13;

void 
setup() {              
    pinMode(led, OUTPUT);  
}

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

}




III.2 Push Button ON/OFF
A.Koneksi Hardware
Dengan menggunakan breadboard, koneksikan pin-pin ke Arduino dengan konfigurasi seperti pada tabel berikut:

Koneksi Konfigurasi Button dan Arduino
Pin Arduino
Komponen
2
Button
13
Led


b)     Button
Gambar 1. Skematik Percobaan Button



Gambar 2. Breadboard Percobaan Button

B. Pemrograman pada Arduino diperlihatkan sebagai berikut:
b.Push Button ON/OFF
int buttonPin = 2;
int ledPin =  13;
int buttonState = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);  
}

void loop(){
  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {  
    digitalWrite(ledPin, HIGH);
  }
  else {
    digitalWrite(ledPin, LOW);
  }
}
III.3 Kombinasi Multi Pushbutton Dan Multi Led
A.Koneksi Hardware
Dengan menggunakan breadboard, koneksikan pin-pin ke Arduino dengan konfigurasi seperti pada tabel berikut:

Koneksi Konfigurasi Multi Pushbutton Dan Multi Led
Pin Arduino
Komponen
2
Button 1
3
Button 2
13
Led 1
12
Led 2
11
Led 3
10
Led 4

C.Multi Pushbutton Dan Multi Led

Gambar 1. Skematik Percobaan Multi Pushbutton Dan Multi Led


          Gambar 2. Breadboard Percobaan Multi Pushbutton Dan Multi Led
B. Pemrograman pada Arduino diperlihatkan sebagai berikut:
C. Multi Pushbutton Dan Multi Led
int buttonPin1 = 2;
int buttonPin2 = 3;    
int ledPin1 =  13;
int ledPin2 =  12;
int ledPin3 =  11;
int ledPin4 =  10;

void setup() {

  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(buttonPin1, INPUT);
  pinMode(buttonPin2, INPUT);
}

void loop() {
    digitalRead(buttonPin1);
    digitalRead(buttonPin2);
    if (buttonPin1 == HIGH) {
    // jalan kanan
    digitalWrite(ledPin1,HIGH);
    digitalWrite(ledPin2,LOW);
    digitalWrite(ledPin3,LOW);
    digitalWrite(ledPin4,LOW);
     delay (1000);
    digitalWrite(ledPin1,LOW);
    digitalWrite(ledPin2,HIGH);
    digitalWrite(ledPin3,LOW);
    digitalWrite(ledPin4,LOW);
     delay (1000);
    digitalWrite(ledPin1,LOW);
    digitalWrite(ledPin2,LOW);
    digitalWrite(ledPin3,HIGH);
    digitalWrite(ledPin4,LOW);
     delay (1000);
    digitalWrite(ledPin1,LOW);
    digitalWrite(ledPin2,LOW);
    digitalWrite(ledPin3,LOW);
    digitalWrite(ledPin4,HIGH);
     delay (1000);
    }
   
  else {
    digitalWrite(ledPin1,LOW);
    digitalWrite(ledPin2,LOW);
    digitalWrite(ledPin3,LOW);
    digitalWrite(ledPin4,LOW);
      delay (1000);
  }
}

IV.Hasil Dan Pembahasan
         
Pada percobaan kali ini menggunakan pin-pin digital dari arduino, dimana pin- pin tersebut akan dipakai baik sebagai input maupun output. Seperti percobaan diatas Pushbutton dipakai sebagai input dan Led dipakai sebagai output. Dan jika kita ingin membuat pin digital arduino sebagai input, maka pada program di arduino.ide kita dapat menulis “ pinMode (pushbutton1,INPUT); “ , dan untuk membaca hasil inputan dari pushbuttonnya dapat digunakan “digitalRead (pushbutton); “ . Kemudian jika kita ingin membuat pin arduino sebagai output maka untuk pin mode kita dapat tuliskan “pinMode (Led1,OUTPUT); “

ANALOG Input/Output
(Praktikum 2)
I. Dasar Teori
Sinyal Analog adalah suatu kondisi tertentu ada kemungkinan dihadapkan pada kondisi input dan output yang membutuhkan besaran yang berubah-ubah dengan nilai yang kontinyu dan tidak lagi hanya dengan dua keadaan seperti halnya sinyal digital.
Sebagai contoh saat menghubungkan sensor yang tegangan keluarannya bervariasi dalam kisaran dari 0 volt sampai 5 volt.
·        Analog Input
Arduino khususnya menyediakan 6 kanal(8 kanal pada model mini dan nano,dan 16 pada model mega)untuk difungsikan sebagai analog input.
Analog ke digital converternya menggunakan resolusi 10 bit yang berarti range nilai analog dari 0 volt sampai 5 volt akan dirubah ke nilai integer 0 sampai 1023.
Perintah yang digunakan untuk fungsi analog input ini adalah:
1.analogRead(pin) berfungsi untuk membaca nilai analog pada input pin yang akan menghasilkan nilai integer antara 0-1023
2.analogReference(parameter) berfungsi untuk menentukan referensi yang digunakan
·        Analog Output
Secara teori suatu analog output akan mengeluarkan output tegangan bervariasi sesuai dengan nilai yang dikehendaki,maka seharusnya pin output analog Arduino seharusnya mampu mengeluarkan tegangan output dengan kisaran tegangan dari 0 volt sampai 5 volt.arduino menggunakan cara pulse wide modulasi(PWM) atau modulasi lebar pulsa untuk menghasilkan analog output yang dikehendaki.Metode ini menggunakan pendekatan perubahan lebar pulsa untuk menghasilkan nilai tegangan analog yang diinginkan.
Perintah yang digunakan untuk output analog adalah analogWrite(pin,value),dimana:
·        Pin:nomor pin Arduino yang akan digunakan sebagai analog output
·        Value:nilai duty cycle yang diinginkan dengan nilai 0-255,yang berarti nilai 0 untuk 0 volt dan 255 untuk tegangan keluaran maksimum atau 5 volt.
II.Alat Dan Bahan
Alat dan bahan percobaan diperlihatkan pada Tabel 2:
Tabel 2. Alat dan Bahan Praktikum

No
Alat dan Bahan
Jumlah
1
Arduino Uno R3
1
2
Kabel USB
1
3
Modul/Rangkaian Percobaan
1
4
Kabel jumper
Secukupnya

III. Langkah Percobaan
III.1 Percobaan Input Potensiometer
a.Koneksi Hardware
Dengan menggunakan breadboard, koneksikan pin-pin ke Arduino dengan konfigurasi seperti pada tabel berikut:

Koneksi Konfigurasi Potensiometer
Pin Arduino
Komponen
A0
Potensiometer

Gambar 1. Skematik Percobaan Input Potensiometer



Gambar 2. Breadboard Percobaan Input Potensiometer
B. Pemrograman pada Arduino diperlihatkan sebagai berikut:
b.Input Potensiometer
int sensorPin=A0;
int sensorValue=0;
void setup() {
  Serial.begin(9600);
}
void loop() {
  sensorValue=analogRead(sensorPin);
  int newValue=map(sensorValue,0,1023,0,100);
  Serial.println(newValue);
  delay(100);
}

III.2 Percobaan Input Potensiometer Out Led
a.Koneksi Hardware
Dengan menggunakan breadboard, koneksikan pin-pin ke Arduino dengan konfigurasi seperti pada tabel berikut:

Koneksi Konfigurasi Input Potensiometer Out Led
Pin Arduino
Komponen
A0
Potensiometer
13
Led

Gambar 1. Skematik Percobaan Input Potensiometer Out Led
Gambar 2. Breadboard Percobaan Input Potensiometer Out Led

B. Pemrograman pada Arduino diperlihatkan sebagai berikut:
b.Input Potensiometer Out Led

int led = 13
int pinPot = A0;
int potVal = 0;
void setup() {
  pinMode(led,OUTPUT);
  }

void loop() {
  potVal=analogRead(pinPot);
  potVal=map(potVal,0,1023,0,255);//ubah nilai (0-1023) menjadi (0-255)
analogWrite(led,potVal);
}

IV.Hasil dan Pembahasan

Pada percobaan kali ini menggunakan pin-pin analog dari arduino yaitu dari pin A0 sampai dengan pin A5, dimana pin- pin tersebut akan dipakai sebagai analog input. Seperti percobaan diatas Potensiometer dipakai sebagai input dan Led dipakai sebagai output. Dan jika kita ingin membuat pin analog arduino sebagai input, maka pada program di arduino.ide kita dapat menulis “ pinMode (Potensiometer,INPUT); “ , dan untuk membaca hasil inputan dari potensiometer dapat digunakan “analogRead (Potensiometer); “ dan “int Val;” dipakai untuk menyimpan nilai konversi analog ke digital. Kemudian “potVal=map(potVal,0,1023,0,255);” dipakai untuk mengubah nilai dari (0-1023) menjadi (0-255). Dan jika kita ingin mengatur nyala


STATEMENT CONTROL
(Praktikum 3)
I. Dasar Teori
Statement Control atau Pengendalian digunakan untuk mengambil suatu keputusan atau memilih bagian program yang akan dikerjakansesuai dengan kondisi atau syarat yang di berikan.Statement-statement diatas memerlukan suatu kondisi atau syarat sebagai dasar pengambilan keputusan.Salah satu kondisi yang umum digunakan adalah berupa keadaan benar atau salah,0 atau 1.
Ketika menyelesaikan masalah,tidak hanya satu kasus yang dapat ditemui,namun ada banyak,kadang kala menemui beberapa kasus.Ada beberapa format yang berbeda untuk setiap kasus ketika diimplementasikan di algoritma pemrograman.
Ada 2 jenis statement control yaitu antara lain:
a)     If
If merupakan salah satu struktur pemilihan yang akan mengeksekusi statement jika memenuhi kondisi dan jika tidak maka akan diabaikan.if ini bisa dibagi menjadi beberapa struktur ,yaitu:
1.     If
Struktur if yaitu hanya akan memberikan pilihan jika kondisi bernilai benar.
2.     If else
Struktur if yaitu memberikan pilihan untuk kondisi yang bernilai salah.

Statement looping adalah suatu proses yang melakukan statement-statement dalam sebuah program secara terus menerus sampai terdapat kondisi untuk menghentikannya.
Ada tiga jenis statement looping yaitu:
          a) for
Struktur for adalah pengulangan yang digunakan untuk melakukan pengulangan yang telah diketahui banyaknya
         
b) while
Struktur while adalah pengulangan yang melakukan pengecekan kondisi diawal blok struktur
          c) do-while
Struktur do-while sama halnya dengan struktur while,tetapi pada struktur do-while ini pengecekan kondisi dilakukan diakhir.

II.Alat Dan Bahan
Alat dan bahan percobaan diperlihatkan pada Tabel 2:
Tabel 2. Alat dan Bahan Praktikum

No
Alat dan Bahan
Jumlah
1
Arduino Uno R3
1
2
Kabel USB
1
3
Modul
1
4
Kabel jumper
Secukupnya

III. Langkah Percobaan
A. Percobaan For Control (Kombinasi berdasarkan button yang ditekan)nyala Led
III.1 Koneksi Hardware



Dengan menggunakan breadboard, koneksikan pin-pin ke Arduino dengan konfigurasi seperti pada table  berikut:


Gambar 1. Skematik Percobaan For Control





 Gambar 2. Breadboard Percobaan For Control (Kombinasi berdasarkan button yang ditekan)nyala Led

A. Pemrograman pada Arduino diperlihatkan sebagai berikut:
a. For Control (Kombinasi berdasarkan button yang ditekan)nyala Led
int tombol1=3;
int tombol2=4;
int tombol3=5;
int tombol4=6;
int led1=7;
int led2=8;
int led3=9;
int led4=10;
void setup() {
  pinMode (tombol1,INPUT);
  pinMode (tombol2,INPUT);
  pinMode (tombol3,INPUT);
  pinMode (tombol4,INPUT);
  pinMode (led1,OUTPUT);
  pinMode (led2,OUTPUT);
  pinMode (led3,OUTPUT);
  pinMode (led4,OUTPUT);
}

void loop() {
  if (digitalRead(tombol1)==LOW)
  {digitalWrite(7,HIGH);
   digitalWrite(8,LOW);
   digitalWrite(9,LOW);
   digitalWrite(10,LOW);
  }
  else if (digitalRead(tombol2)==LOW)
  {digitalWrite(7,HIGH);
   digitalWrite(8,HIGH);
   digitalWrite(9,LOW);
   digitalWrite(10,LOW);
  }
  
   else if (digitalRead(tombol3)==LOW)
  {digitalWrite(7,HIGH);
   digitalWrite(8,HIGH);
   digitalWrite(9,HIGH);
   digitalWrite(10,LOW);
  }
  else if (digitalRead(tombol4)==LOW)
  {digitalWrite(7,HIGH);
   digitalWrite(8,HIGH);
   digitalWrite(9,HIGH);
   digitalWrite(10,HIGH);
  }
delay (30);

      }
IV. Hasil dan Pembahasan
Pada praktikum kali ini menggunakan fungsi if-else dimana program akan berjalan ketika kondisinya terpenuhi, dan ketika kondisi pertama tidak terpenuhi maka program akan mencari kondisi yang lain, kemudian jika kondisinya terpenuhi program akan terus berjalan. Dalam hal ini program akan memeriksa kondisi dari pushbutton yang ditekan. Ketika pushbutton 1 ditekan maka hanya satu Led yang akan menyala, kemudian ketika pushbutton 2 ditekan maka dua Led yang akan menyala, terus ketika pushbutton 3 ditekan maka tiga Led yang akan menyala, terakhir ketika pushbutton 4 ditekan maka empat Led akan menyala.

SENSOR INTERFACING
(Praktikum 4)
I. Dasar Teori
Interface atau dalam istilah Indonesianya Antar Muka dapat diartikan sebagai sebuah titik, di mana dua komponen atau benda berbeda bertemu. Dalam hubungannya dengan perangkat lunak, interface dapat diartikan sebagai sarana atau medium atau sistem operasi yang digunakan untuk menghubungkan antara perangkat mikroprosesor agar dapat berkomunikasi dengan pengguna (user). Sedangkan pada konteks perangkat keras interface berarti komponen elektronika yang menghubungkan atau mengkomunikasikan prosesor dengan komponen atau perangkat lain dalam suatu sistem. Dalam praktikum kali ini saya akan mempraktekan tentang interfacing arduino dengan sensor. Dan untuk menampilkan hasil pembacaan dari sensor yang dipakai saya akan mengggunakan sebuah LCD.
Pertama saya akan bahas mengenai sensor. Sensor adalah jenis transduser (mengubah suatu energi menjadi energi yang lain) seperti mengubah variasi mekanis, magnetis, panas, sinar dan kimia menjadi tegangan dan arus listrik. Ada banyak sensor yang ada, namun pada praktikum kali ini saya akan menggunakan sensor Flowmeter (sensor aliran) dan sensor suhu (DS18B20).

Flowmeter merupakan alat yang berfungsi untuk mengukur kecepatan aliran dan volume fluida liquid maupun gas. Kerja dari flowmeter ini yaitu fluida berupa gas menggerakkan kincir yang dihubungkan dengan motor sehingga saat kincir berputar maka motor juga ikut berputar dan dapat menghasilkan ggl induksi. Pengkondisi sinyal membuat sinyal tegangan ggl induksi dari motor dapat terbaca oleh arduino, lalu LCD dapat manampilkan hasil pengukuran dari flow meter tersebut.


Gambar 1. Sensor Flowmeter
Keterangan:
Pada gambar sensor flowmeter diatas untuk babel berwarna merah untuk VCC, kemudian kabel yang berwarna hitam untuk grunding (GND), dan kabel berwarna kuning untuk data.


DS1820 adalah sensor suhu yang dikeluarkan oleh Dallas Semiconductor. Untuk membacanya menggunakan protokol 1 wire communication. Dimana hanya ada tiga kabel yang terdiri dari +5V, GND dan DQ (Data Input/Output). Keunggulan dari DS1820 adalah, output berupa data digital dengan nilai ketelitian 0,5 derajat Celcius sehingga mempermudah pembacaan oleh mikrokontroller.

Gambar 2. Sensor DS18B20

Dan komponen yang dipakai untuk menampilkan hasil pembacaan sensor yaitu LCD. LCD atau Liquid Crystal Display adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama. Dan pada percobaan kali ini saya menggunakan LCD 16x2 yang artinya LCD tersebut terdiri dari 16 kolom dan 2 baris karakter (tulisan).




Gambar 3. LCD (Liquid Crystal Display)

II. Alat dan Bahan
Alat dan bahan percobaan diperlihatkan pada Tabel 2:
Tabel 2. Alat dan Bahan Praktikum

No
Alat dan Bahan
Jumlah
1
Arduino Uno R3
1
2
Modul /Rangkaian percobaan
1
3
Kabel USB
1
4
Sensor Suhu (
1
5
Sensor Aliran (Flow Meter)
1
6
Kabel jumper
Secukupnya


III. Langkah Percobaan
III.1 Percobaan Interfacing Arduino Dan Sensor
      a.      Koneksi Hardware
    Dengan menggunakan breadboard, koneksikan pin-pin ke Arduino dengan konfigurasi seperti pada table  berikut:

Gambar 1. Skematik Percobaan Interfacing Sensor Dan Arduino




Gambar 2. Breadboard Percobaan Interfacing Sensor Dan Arduino

A. Pemrograman pada Arduino diperlihatkan sebagai berikut:
a. Percobaan Interfacing Sensor Dan Arduino
    // include the library code:
#include <LiquidCrystal.h>


// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 6);
    volatile int flow_frequency; // Measures flow sensor pulses
    unsigned int l_hour; // Calculated litres/hour
    unsigned char flowsensor = 2; // Sensor Input
    unsigned long currentTime;
    unsigned long cloopTime;
    void flow () // Interrupt function
    {
       flow_frequency++;
    }
    void setup()
    {
       pinMode(flowsensor, INPUT);
       digitalWrite(flowsensor, HIGH); // Optional Internal Pull-Up
       Serial.begin(9600);
       attachInterrupt(0, flow, RISING); // Setup Interrupt
       sei(); // Enable interrupts
       currentTime = millis();
       cloopTime = currentTime;
   
      // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("SUHU: BELUM ADA");
    }
   
    void loop ()
    {
       currentTime = millis();
       // Every second, calculate and print litres/hour
       if(currentTime >= (cloopTime + 1000))
       {
          cloopTime = currentTime; // Updates cloopTime
          // Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min.
          l_hour = (flow_frequency * 60 / 7.5); // (Pulse frequency x 60 min) / 7.5Q = flowrate in L/hour
          flow_frequency =0; // Reset Counter
          lcd.setCursor(0, 1);
          lcd.print("           ");
          lcd.setCursor(0, 1);
          lcd.print("Flow: ");
          lcd.print(l_hour); // Print litres/hour
          lcd.setCursor(12, 1);
          lcd.print("L/H");
          //lcd.clear();
       }
    }
IV. Hasil dan Pembahasan

Pada praktikum kali ini saya belajar tentang interfacing sensor dengan arduino, dimana pada praktikum ini sensor akan terhubung dengan arduino sehingga sensor dapat mengirim data hasil pengukuran suhu dan aliran kemudian data tersebut diterima oleh arduino untuk seterusnya ditampilkan pada LCD. Pada program untuk menampilkan hasil pembacaan sensor pada LCD dapat dituliskan ‘’ lcd.print ( “ Flow: ” ) ; ‘’ . Kemudian program untuk mengatur letak penampilan tulisan ( hasil pembacaan sensor ) yaitu  ‘’ lcd.setCursor (0,1); ‘’ . maksud dari lcd.setCursor (0,1); ini adalah kita akan menulis di LCD pada number colom ke 0, number baris ke 1.


daftar pustaka:
www.kusumawardana.web.id