Skip to main content

PWM dan Input Output Digital

PWM

PWM merupakan singkatan dari Pulse Width Modulation. Pada Arduino, sinyal PWM adalah sinyal yang beroperasi pada frekuensi 500Hz (ini akan kita bahas pada paragraf selanjutnya). Pada board arduino Uno, pin yang bisa dimanfaatkan untuk PWM adalah pin yang diberi tanda tilde (~), yaitu pin 3, 5, 6, 9, 10, dan pin 11. Mungkin ada yang berpikir, bukankah pin-pin tersebut adalah pin analog? Ya! Pin-pin tersebut merupakan pin yang bisa difungsikan untuk input analog atau output analog. Oleh sebab itu, jika akan menggunakan PWM pada pin ini, bisa dilakukan dengan perintah analogWrite();

PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255.  Ketika kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt (pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika memberikan 25% dari 255 (1/4 * 255 atau 64), maka 1/4 siklus akan bernilai 5 volt, dan 3/4 sisanya akan bernilai 0 volt, dan ini akan terjadi 500 kali dalam 1 detik. Untuk visualisasi siklus PWM, bisa Anda lihat gambar berikut:






Datasheet Arduino Uno R3


Input dan Output

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, ADC resolusi 10-bit yang artinya mewakili tegangan analog dengan 1024 level digital. Singkatnya ADC mengubah tegangan jadi bit yang dapat dipahami oleh mikroprosesor.

Contoh sederhana dari ADC adalah VoIP (Voice over IP). Setiap smartphone memiliki mikrofon yang mengkonversi 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.

 

a. Input Analog

Sinyal analog menjelaskan variabel fisik yang bervariasi terus menerus yang berhubungan dengan variabel lain.

Contoh dari sinyal analog yaitu intensitas cahaya LED yang dimana arus yang didalamnya juga meningkat, arus melalui resistor seperti yang kita memvariasikan tegangan, atau suhu di kamar yang berjalan sering dengan berjalannya waktu.

Sinyal analog dapat mengambil nilai-nilai yang tak terbatas dan pada mikrokontroler tidak dapat mewakili jumlah yang tak terbatas nilainya itu.

Sehingga yang harus dilakukan ketika ada sinyal analog yaitu dengan  cara sampling dengan cara mengubah sinyal analog tersebut menjadi sinyal digital melalui pin khusus yaitu pin Analog ke Digital Konversi (ADC).

Ini pada dasarnya berarti bahwa memilih nilai-nilai tertentu di suatu daerah dan kemudian kita menggunakan serangkaian bit untuk mewakili nilai-nilai tersebut saja.

Pin analog (ADC) tersebut berfungsi sebagai pengubah sinyal analog menjadi output digital sehingga mudah diolah dan dapat diukur.

Pin analog (ADC) dapat mengukur nilai tegangan yang masuk dengan kondisi normal range dari 0 – 5 Vdc yang akan dibandingkan dengan tegangan refrensinya (Vref).

Hal ini berguna saat akan mengukur output tegangan dari suatu sensor yang terhubung serta dapat dimanfaatkan untuk keperluan pengondisian program.

Untuk membaca sinyal analog yang terhubung pada pin ADC di Software IDE Arduino yaitu menggunakan fungsi analogRead([nomorPin]).



b. Output Analog

Pada output analog Arduino tidak dapat dihasilkan secara langsung, tetapi harus melewati proses pengubahan output dari digital menjadi analog yang memerlukan fungsi komponen Digital to Analog Converter.

Tetapi pada Arduino fungsi tersebut tidak ada modul itu, sehingga memerlukan modul eksternal (modul DAC) sebagai konverter sinyalnya.

Tetapi disisi lain, output analog pada Arduino kebanyakan memiliki fitur PWM (Pulse Width Modulation).

Contoh kasus apabila arduino yang dihubungkan dengan LED ingin mengendalikan intensitas cahaya dari LED tersebut (nyala terang – redup mati).

Analog output yang terdapat di Arduino akan mengeluarkan sinyal analog dengan nilai pwm / intensitas yang telah diprogram/setting.

PWM seolah – olah dapat memanipulasi / mengubah sinyal digital menjadi sinyal analog. Dengan cara Arduino mengubah keluaran sinyal digital dari logika HIGH ke LOW atau sebaliknya dengan waktu yang telah ditentukan.

Lama waktu untuk logika HIGH dikatakan dengan istilah panjang pulsa atau pulse width. Variasi perubahan nilai output analog dihasilkan dari perubahan panjang pulsa yang telah diset dengan kondisi waktu tertentu serta dikerjakan secara berulang-ulang.

Digital



Digital bisa dikatakan sebagai cara merepresentasikan tegangan dalam 1 bit, misalnya 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. Jadi tahu kan mengapa di script Arduino ada HIGH dan LOW! Ketika pin digital diatur sebagai output maka hanya ada dua macam tegangan, yaitu 0 dan 5 volt. Sedangkan saat pin ii 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

 

a. Input Digital

Input Digital adalah sinyal yang akan diterima baik itu berupa nilai 1 atau 0, logika high atau low, maupun kondisi on atau off.

Beda halnya dengan sinyal analog kontinyu, yaitu untuk nilai diantara 0 dan 1, nilai tersebut akan dipertimbangkan. Sehingga dapat disimpulkan bahwa pin digital adalah pin yang dapat mengirim atau menerima sinyal – sinyal digital.

Contoh dari input digital yaitu penggunaan sensor PIR dimana output dari sensor tersebut berupa nilai 1 jika terdeteksi adanya benda bergerak dan nilai 0 jika tidak terdeteksi adanya benda.


b. Output Digital

Pada output digital sebenarnya hampir sama dengan input digital dikarenakan pada dasarnya sama, hal yang dikirimkan yaitu nilai 1 atau nilai 0.

Yang membedakan hanya pada penggunaan fungsi pada saat pemogramannya, kapan saat diset sebagai input maupun output.

format dasar pemograman untuk deklarasi >> pinMode ([pin yang digunakan], [INPUT or OUTPUT]};


Last modified: Friday, 10 February 2023, 10:27 AM