Skip to main content

1.6(Pin Arduino).html

Input, output, dan PWM pada arduino

Digital Input/ Output

Pin Digital akan merepresentasikan tegangan dalam 1 bit, misalnya sebagai logika 1 atau 0. Pin digital di Arduino adalah pin yang memang dirancang untuk dikonfigurasikan sebagai input maupun output. Tergantung kebutuhan pengguna. Pin digital pada Arduino hanya ada dua kondisi, yaitu menyala dan mati. Saat pin dalam kondisi menyala, maka saat itu tegangan nya tinggi (HIGH) yaitu 5 volt, dan saat mati tegangannya rendah (LOW) yaitu 0 volt. Hal ini lah yang mengakibtkan adanya HIGH dan LOW pada script arduino. Ketika pin digital diatur sebagai output maka hanya ada dua macam tegangan, yaitu 0 dan 5 volt. Sedangkan saat pin diatur sebagai input, maka tegangan yang diberikan bisa bervariasi.

Tetapi jika direpresentasikan ke digital tetap hanya ada 1 dan 0. Hanya saja untuk menentukannya diberi 2 ambang batas berikut:

  • < 0, 8 volt dianggap 0
  • > 2 volt dianggap 1

 

Analog Input

Arduino Pinout Uno Analog

Pada dasarnya Arduino memiliki 6 pin analog yang semuanya memanfaatkan ADC (Analog to Digital Converter). Pin ini dapat berfungsi sebagai pin input analog maupun sebagai pin input/output digital. ADC merupakan sirkuit elektronik yang berfungsi mengubah sinyal analog menjadi sinyal digital. Hal ini memungkinkan prosesor yang merupakan perangkat digital bisa mengukur sinyal analog dan menggunakannya melalui operasinya. Pin A0 sampai A5 memiliki kemampuan membaca tegangan analog. Sementara di Arduino, Pada ADC beresolusi 10-bit yang artinya mewakili tegangan analog dengan 1024 level digital. Singkatnya ADC mengubah tegangan menjadi bit yang dapat dipahami oleh mikroprocessor. Contoh sederhana dari ADC adalah VoIP (Voice over IP). Tiap smartphone memiliki mikrofon yang mengonversi gelombang suara menjadi tegangan analog. Yang selanjutnya melewati perangkat ADC yang mengonversi lagi data analog menjadi data digital. Nah, data digital inilah yang nantinya akan dikirim ke penerima melalui internet.

 

Menggunakan Pin Analog Sebagai Digital

pin Analog Arduino Uno

Pada suatu Arduino umunya memiliki pin Analog tersendiri sebagai contoh pada arduino UNO dimana terdapat 6 buah pin dengan penamaan A0 sampai A5 dan jumlahnya berbeda-beda. Jika hanya dilihat secara sekilas Suatu arduino maka pin analog A0-A5 ini sesuai namanya hanya berguna untuk pembacaan nilai analog namun jika dilihat lebih jauh, Sebuah papan Arduino adalah papan kendali dengan komponen utamanya berupa IC mikrokontroller ATmega, maka dapat dikatakan bahwa sebenarnya pin analog Arduino memiliki fungsi lebih daripada sekedar pin Analog saja. Coba perhatikan gambar pinout diagram Arduino sebagai berikut :

Arduino Pinout Uno Analog

Perhatikan, bahwa pin A0 A5 Arduino (Uno) sebenarnya adalah pin PC0 PC5 (Port C.0 Port C.5) milik IC mikrokontroller ATmega. Sebagaimana kita ketahui melalui datasheet, setiap pin mikrokontroller dirancang memiliki dual fungsi, yakni sebagai pin input maupun output digital. Selain itu pada beberapa pin juga memiliki fungsi khusus seperti sebagai input ADC/Analog to Digital Converter (pin PC0 PC5), sebagai output analog dengan metode PWM/Pulse Width Modulation (PD3, PD5, PD6, PB1, PB2, PB3), fungsi serial di pin PD0 dan PD1 dan sebagainya. Dari gambar diagram pinout di atas, dapat kita tarik kesimpulan bahwa sebenarnya pin Analog Arduino di pin A0 A5 bisa juga diaktifkan sebagai pin digital biasa karena sesungguhnya merupakan pin PC0 PC5 mikrokontroller Atmega. Hanya saja karena papan Arduino didesain secara compact, maka pin ini difungsikan sebagai pin analog saja. Namun demikian, sekali lagi, pin ini dapat difungsikan sebagai pin digital input/output biasa. Untuk memfungsikan pin analog Arduino sebagai pin digital, caranya relatif sama dengan pin digital biasa. Anda bisa memanggil pin analog ini dengan nama aliasnya yakni A0, A1 s/d A5). Contoh :

Perhatikan bahwa deklarasi setting pin analog sebagai input digital sebaiknya dilakukan di blok deklarasi void setup() seperti pada contoh di atas. Sesudah Anda menuliskan source code di atas, maka pin analog A5 akan berfungsi sebagai pin input digital biasa dan dapat digunakan untuk mendeteksi input digital (misalnya penekanan tombol) dengan function digitalRead ();. Contoh penggunaannya :

Contoh sketch di atas adalah untuk menyalakan/mematikan LED papan Arduino di pin 13 berdasarkan status pin A5. Jika bernilai 0 (tombol ditekan) maka LED tersebut akan menyala, dan jika bernilai 1 (tombol dilepas) LED akan padam.

PWM

PWM merupakan singkatan dari Pulse Width Modulation, yaitu teknik modulasi yang digunakan untuk menyandikan pesan menjadi sinyal berdenyut. PWM memanipulasi lebar pulsa pada sebuah gelombang kotak dengan nilai amplitudo dan frekuensi yang tetap. PWM memiliki cara kerja yang berbanding terbalik dengan ADC (Analog Digital Converter). Jika ADC berfungsi untuk mengkonversikan sinyal analog ke digital, PWM ini melakukan fungsi sebaliknya. Yaitu untuk menghasilkan sinyal analog dari perangkat digital. Biasanya PWM digunakan untuk mengatur kecepatan motor DC, Peredupan LED, dan masih banyak lagi.

Fungsi PWM adalah sebagai metode yang sering digunakan untuk mengontrol daya. Selain sebagai pengatur daya, PWM juga berfungsi sebagai pengatur gerak dalam sebuah perangkat elektronika.

Sesuai namanya, yakni Pulse Width Modulation maka dalam sistemnya PWM digunakan untuk mengubah lebar pulsa. Hal ini karena pada umumnya, sinyal PWM memiliki frekuensi dasar dan juga amplitudo yang terbilang tetap.

Dalam perhitungannya, lebar pulsa dalam PWM dibuat berbanding lurus dengan amplitudo. Artinya disini, sinyal PWM memiliki frekuensi gelombang yang tetap. Namun tetap saja memiliki nilai dutycycle yang berbeda, yaitu dengan digit nilai antara 0 sampai dengan 100%.



Ada dua komponen utama dari PWM, yaitu :

  • Frekuensi, yaitu berapa lama waktu yang dibutuhkan untuk menyelesaikan satu siklus (periode)
  • Siklus Tugas, yaitu berapa lama sinyal tetap tinggi dari total periode. Biasanya siklus tugas berbentuk persentase.

Pin Arduino yang mengaktifkan PWM umumnya akan menghasilkan frekuensi konstan 500Hz.

Sementara siklus tugas akan terus berubah-ubah sesuai dengan parameter yang digunakan pengguna. Coba perhatikan ilustrasi berikut ini:

Metode PWM memang dibuat dengan tujuan untuk mendapatkan sinyal analog dari piranti digital. Untuk membangkitkan sinyal analog pada PWM, Anda dapat melakukan berbagai cara. Salah satunya dengan memanfaatkan metode analog dan digital.

Ketika menggunakan metode analog, perubahan PWM terjadi dengan sangat halus. Namun ketika Anda menggunakan metode digital, maka perubahan pada PWM akan di pengaruhi oleh resolusi dari alat itu sendiri.

Untuk menghitung resolusinya dari PWM, Anda dapat menggunakan rumus sederhana.

Misalnya sebuah PWM yang memiliki resolusi 8 bit, maka nilai PWM tersebut memiliki perubahan variasi sebanyak 0 sampai dengan 225.

Nilai ini mewakili dutycycle yang dikeluarkan oleh PWM tersebut. Yang mana PWM memiliki nilai antara 0 sampai dengan 100 %.

PWM (Pulse Width Modulation) dalam bahasa Indonesia sering disebut juga sebagai modulator lebar pulsa. Fungsi PWM adalah sebagai metode yang digunakan untuk memanipulasi lebar pulsa yang terdapat pada sebuah gelombang kotak.

Untuk membangkitkan sinyal PWM, ada beberapa cara yang dapat dilakukan. Diantaranya dengan menggunakan mikrokontroler seperti AVR maupun Arduino.

Selain menggunakan mikrokontroler, Anda juga dapat membangkitkan sinyal PWM menggunakan IC digital.

IC digital yang digunakan antara lain IC 7485 dan juga IC timer 555. Kedua jenis IC ini populer dipakai untuk metode PWM. Salah satu alasannya adalah karena keduanya memiliki sistem rangkaian yang sederhana.

Simak contoh rangkaian PWM sederhana berikut ini:

Pada umumnya, sinyal PWM akan tetap dalam pada posisi ON (High) untuk waktu yang ditentukan, kemudian akan OFF (Low) selama sisa periodenya.

Sebagai pengguna, kita dapat menentukan berapa lama PWM berada dalam posisi ON. Caranya yaitu dengan mengendalikan siklus kerja (dutycylce) dari PWM.

Pada saat PWM dalam posisi ON, siklus kerja atau dutycylce memiliki nilai 100%. Sedangkan pada saat PWM OFF, disebut juga PWM dalam posisi dutycylce 0%.

Untuk menghitung siklus kerja PWM, Anda dapat menggunakan rumus berikut ini:

Duty Cycle = tON / (tON + tOFF)

Atau

Duty Cycle = tON / ttotal

Dimana:

tON = waktu on (high)

tOFF = waktu off (low)

ttotal = periode gelombang (hasil penjumlahan antara tegangan on + off )

 

Penugasan :

1.      Berapa Jumlah pin PWM yang terdapat pada Arduino Uno

2.      Jika dibutuhkan Pin Analog lebih dari yang terdapat pada suatu Arduino maka apa metode apa saja yang dapat dilakukan untuk mengatasinya

3.      Apakah bisa menggunakan Pin Analog sebagai Pin Digital dan alasannya

4.      Apakah bisa menggunakan pin Digital sebagai Pin Analog dan alasannya

5.      Pada arduino Uno berapa tegangan yang di hasilkan pin digital untuk memberikan kondisi High

Last modified: Friday, 11 August 2023, 3:27 PM