PWM Dan Serial Komunikasi [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

UNIT 8 - 9 Pulse Width Modulation (PWM) & Serial Komunikasi



NAMA : 1. SURYA RASA SEJATI [email protected] 2. YUNITA NUR CAHYANI [email protected]



NIM : 1. 18/426329/SV/15471 2. 18/426331/SV/15473



Laboratorium Instrumentasi dan Kendali Teknik Elektro dan Informatika Sekolah Vokasi Universitas Gadjah Mada 2019 PENDAHULUAN



A. Latar Belakang Seiring berkembangnya teknologi yang semakin pesat terciptanya teknologi yang lebih modern sehingga penggunaan suatu sistem atau komponen menjadi lebih efisien dan praktis. Hal ini menunjukan pada sebuah sistem dimana terdapat beberapa sistem dan komponen dapat diringkas atau efisien dengan sebuah sistem yang telah dikembangkan sehingga menjadi sebuah sistem atau komponen yang simple dan lebih efisien. Mendorong terwujudnya sistem digital, munculah Arduino. Dimana Arduino dapat diprogram dan di atur pada pengaplikasian suatu sistem. Pada praktikum kali ini kami menggunakan Arduino Atmega 2560 untuk percobaan dengan menggunakan LCD (Liquid Crystal Display), menggunakan pin PWM, menggunakan sensor suhu LM35 dan menggunakan potensiometer untuk mengatur besar kecilnya putaran pada motor yang sudah tersedia pada trainer. Sehingga kami dapat menampilkan sebuah program yang nantinya akan ditampilkan pada LCD (Liquid Crystal Display) hasil putaran kekan, kekiri, dan stop beserta besar putaran pada motor tersebut. B. Tujuan a. Mampu membuat program mengatur kecepatan putar motor dengan indicator dari suhu menggunakan sensor suhu LM35. b. Membuat mengatur kecepatan putar motor dengan menggunakan potensio sebagai input. c. Membuat program untuk membaca suhu ruangan dengam LM35 yang ditampilkan pada serial monitor



DASAR TEORI Pulse Width Modulation (PWM) secara umum adalah sebuah cara memanipulasi lebar sinyal yang dinyatakan dengan pulsa dalam suatu perioda, untuk mendapatkan tegangan rata-rata yang berbeda. Beberapa contoh aplikasi PWM adalah pemodulasian data untuk telekomunikasi, pengontrolan daya atau tegangan yang masuk ke beban, regulator tegangan, audio effect dan penguatan, serta aplikasiaplikasi lainnya. Aplikasi PWM berbasis mikrokontroler biasanya berupa pengendalian kecepatan motor DC, pengendalian motor servo, pengaturan nyala terang LED dan lain sebagainya. Sinyal PWM pada umumnya memiliki amplitudo dan frekuensi dasar yang tetap, namun memiliki lebar pulsa yang bervariasi. Lebar Pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi. Artinya, Sinyal PWM memiliki frekuensi gelombang yang tetap namun duty cycle bervariasi (antara 0% hingga 100%). Analog input dihasilkan oleh teknik yang dikenal dengan istilah PWM atau Pulse Width Modulation. PWM memanipulasi keluaran digital sedemikian rupa sehingga menghasilkan sinyal analog. Mikrokontroler mengeset output digital ke HIGH dan LOW bergantian dengan porsi waktu tertentu untuk setiap nilai keluarannya. Durasi waktu untuk nilai HIGH disebut pulse width atau panjang pulsa. Variasi nilai output analog didapatkan dari perubahan panjang pulsa yang diberikan pada satu periode waktu dan dilakukan berulang-ulang.



Analog input dihasilkan oleh teknik yang dikenal dengan istilah PWM atau Pulse Width Modulation. PWM memanipulasi keluaran digital sedemikian rupa sehingga menghasilkan sinyal analog. Mikrokontroler mengeset output digital ke HIGH dan LOW bergantian dengan



porsi waktu tertentu untuk setiap nilai keluarannya. Durasi waktu untuk nilai HIGH disebut pulse width atau panjang pulsa. Variasi nilai output analog didapatkan dari perubahan panjang pulsa yang diberikan pada satu periode waktu dan dilakukan berulang-ulang.



(Serial Komunikasi) Komunikasi serial adalah komunikasi yang pengiriman datanya per-bit secara berurutan dan bergantian. Komunikasi ini mempunyai suatu kelebihan yaitu hanya membutuhkan satu jalur dan kabel yang sedikit dibandingkan dengan komunikasi paralel. Pada prinsipnya komunikasi serial merupakan komunikasi dimana pengiriman data dilakukan per bit sehingga lebih lambat dibandingkan komunikasi parallel, atau dengan kata lain komunikasi serial merupakan salah satu metode komunikasi data di mana hanya satu bit data yang dikirimkan melalui seuntai kabel pada suatu waktu tertentu. Pada dasarnya komunikasi serial adalah kasus khusus komunikasi paralel dengan nilai n = 1, atau dengan kata lain adalah suatu bentuk komunikasi paralel dengan jumlah kabel hanya satu dan hanya mengirimkan satu bit data secara simultan.Hal ini dapat disandingkan dengan komunikasi paralel yang sesungguhnya di mana n-bit data dikirimkan bersamaan, dengan nilai umumnya 8 ≤ n ≤ 128. Komunikasi serial ada dua macam, asynchronous serial dan synchronous serial.   =>  Synchronous serial adalah komunikasi dimana hanya ada satu pihak (pengirim atau penerima) yang menghasilkan clock dan mengirimkan clock tersebut bersama-sama dengan data.



       



Contoh pengunaan synchronous serial terdapat pada transmisi data keyboard. =>  Asynchronous serial adalah komunikasi dimana kedua pihak (pengirim dan penerima) masing-masing menghasilkan clock namun hanya data yang ditransmisikan, tanpa clock. Agar data yang dikirim sama dengan data yang diterima, maka kedua frekuensi clock harus sama dan harus terdapat sinkronisasi. Setelah adanya sinkronisasi, pengirim akan mengirimkan datanya sesuai dengan frekuensi clock pengirim dan penerima akan membaca data sesuai dengan frekuensi clock penerima. Contoh penggunaan asynchronous serial adalah pada Universal Asynchronous Receiver Transmitter (UART) yang digunakan pada serial port (COM) komputer Untuk mengirim data dari arduino ke PC dan menerima data dari PC kita bisa menggunakan berbagai cara salah satunya yg paling sederhana adalah komunikasi Serial yg terdapat pada setiap board Arduino. Perlu kita ketahuai pemrograman sketch arduino menggunakan gaya bahasa C tapi pada pembuatan librarynya menggunakan C++ yg menerapkan pemrograman Objek (Class). Untuk itu sy sarankan anda sebaiknya mengetahuai sedikit dasar-dasar pemrograman berorientasi objek. Pemrograman code arduino (sketch) untuk komunikasi serial menjadi mudah karena fungsi fungsi sudah tersedia dlm class yg tersedia untuk komunikasi Serial . Instance dari class untuk komunikasi serial (objek) sudah dibuatkan namanya Serial . Untuk arduino yg mempunyai lebih dari 1 port serial misal arduino mega256 nama objek untuk komunikasi serialnya adalah Serial1, Serial2, Serial3. Penulisan objek dan fungsi pada library arduino adalah : namaobjek.namafungsi contoh : Serial.read() , artinya kita memanggil fungsi read() dari objek bernama Serial . Data yg dikirim ke serial port akan dikirim ke buffer pengirim (Tx buffer) begitupun data yg diterima adalah data yg diambil dari buffer penerima (RX buffer). if (Serial) : Untuk mengecek apakah Port sudah siap Serial.available() : Untuk mengecek apakah data sudah ada di buffer penerima Serial.begin() : untuk mengeset kecepatan transmisi data serial.end() : Untuk menon-aktifkan pin rx dan tx sbg fungsi serial dan kembali sbg pin I/O Serial.find() : mencari string dlm buffer data Serial.findUntil(): mencari buffer data sampai data dgn panjang/terminator nya yg diberikan ditemukan Serial.flush(): menunggu data terkirim semua Serial.parseFloat(): mengambil data float pertama dari data di buffer serial.



         



serial.parseInt(): mengambil data integer pertama dari data di buffer serial. Serial.peek(): mengambil data berikutnya di bufer penerima Serial.print() : mengirim data ASCII Serial.println() : mengirimdata ASCII + CR,LF (kode enter) Serial.read(): membaca data yg diterima Serial.readBytes(): membaca data byte yg diterima Serial.readBytesUntil() Serial.setTimeout(): mengeset batas maksimum waktu  tunggu(timeout) transmisi data. Serial.write() : mengirim data byte (numerik) Serial.serialEvent(): fungsi ini akan dipanggil jika data datang/diterima.berlaku spt interupsi serial.



LCD (Liquid Crystal Display) Pada praktikum yang telah dilakukan kami melakukan percobaan dengan menggunakan LCD yang sudah tersedia pada modul. Dalam kamus besar bahasa ke wikepedia, arti dari LCD (Liquid Crystal Display) adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD bisa memunculkan gambar atau tulisan (berwarna juga bisa) dikarenakan terdapat banyak sekali titik cahaya (piksel) yang terdiri dari satu buah kristal cair sebagai sebuah titik cahaya. Walau disebut sebagai titik cahaya, namun kristal cair ini tidak memancarkan cahaya sendiri. Sumber cahaya di dalam sebuah perangkat LCD adalah lampu neon berwarna putih di bagian belakang susunan kristal cair tadi. Titik cahaya yang jumlahnya puluhan ribu bahkan jutaan inilah yang membentuk tampilan citra. Kutub kristal cair yang dilewati arus listrik akan berubah karena pengaruh polarisasi medan magnetik yang timbul dan oleh karenanya akan hanya membiarkan beberapa warna diteruskan sedangkan warna lainnya tersaring. Dalam menampilkan karakter untuk membantu menginformasikan proses dan control yang terjadi dalam suatu program robot kita sering menggunakan LCD juga. Yang sering digunakan dan paling murah adalah LCD dengan banyak karakter 16x2. Maksudnya semacam fungsi tabel di ms office. 16 menyatakan kolom dan 2 menyatakan baris. Dibawah ini merupakan konfigurasi LCD



KELEBIHAN ARDUINO Tidak perlu perangkat chip programmer karena didalamnya sudah ada bootloadder yang akan menangani upload program dari komputer. Sudah memiliki sarana komunikasi USB, Sehingga pengguna laptop yang tidak memiliki port serial/RS323 bisa menggunakannya. Memiliki modul siap pakai ( Shield ) yang bisa ditancapkan pada board arduino. Contohnya shield GPS, Ethernet,dll.



SOKET Soket USB adalah soket kabel USB yang disambungkan kekomputer atau laptop. Yang berfungsi untuk mengirimkan program ke arduino dan juga sebagai port komunikasi serial. INPUT/OUTPUT Input/output digital atau digital pin adalah pin pin untuk menghubungkan arduino dengan komponen atau rangkaian digital. contohnya , jika ingin membuat LED berkedip, LED tersebut bisa dipasang pada salah satu pin input atau output digital dan ground. komponen lain yang menghasilkan output digital atau menerima input digital bisa disambungkan ke pin pin ini. Input analog atau analog pin adalah pin pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. contohnya , potensiometer, sensor suhu, sensor cahaya, dll. Catu Daya pin pin catu daya adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang dihubungkan dengan arduino. Pada bagian catu daya ini pin Vin dan Reset. Vin digunakan untuk memberikan tegangan langsung kepada arduino tanpa melalui tegangan pada USB atau adaptor, sedangkan Reset adalah pin untuk memberikan sinyal reset melalui tombol atau rangkaian eksternal. Baterai Adaptor Soket baterai atau adaptor digunakan untuk menyuplai arduino dengan tegangan dari baterai/adaptor 9V pada saat arduino sedang tidak disambungkan kekomputer. Jika arduino sedang disambungkan kekomputer dengan USB, Arduino mendapatkan suplai tegangan dari USB, Jika tidak perlu memasang baterai/adaptor pada saat memprogram arduino.



PROSEDUR PERCOBAAN A. Alat dan Bahan 1. Trainer 2. Kabel usb 3. Computer dan software Arduino B. Langkah Percobaan : 1. Siapkan trainer yang sudah terpasang Arduino AT mega 2560 2. Sambungkan kabel USB dari trainer ke computer 3. Buka aplikasi software Arduino pada computer 4. Pastikan port sesuai dengan COM Arduino yang di pakai 5. Masukkan program untuk menampilkan outputan pada display LCD 6. Dan uji Pulse Width Modulation (PWM) menggunakan sensor suhu LM35 dan menampilkan serial monitor menggunakan serial komunikasi. 7. ‘’Verify’’ kemudian ‘’upload’’



DATA PERCOBAAN



A. Coding kecepatan putar motor dengan indicator dari suhu menggunakan sensor suhu LM35 dan menggunakan potensiometer sebagai input Menggunakan Potensiometer sebagai Input #include LiquidCrystal lcd(36, 34, 32, 30, 28, 26); int state = 2; void setup() { int I; for (I = 47; I