Skip to main content

Potensiomenter

Potensiomenter

Setelah  kita  belajar  mengatur  intensitas  cahaya  LED  dengan pushbutton,  kali  ini  kita  akan mengunakan  potensiometer.  Kelebihan menggunakan potensiometer yaitu kita  lebih mudah sebab kita hanya butuh satu alat untuk membuat LED lebih redup atau lebih terang.

Kenapa  kita  harus  melalui  mikrokontroller?  Kan  bisa  saja  kita menghubungkan langsung ke LED untuk mengatur arus yang masuk? Betul sekali.

Mengatur intensitas cahaya LED dengan potensiometer
Mengatur intensitas cahaya LED dengan potensiometer
Jika  kita  langsung  mengatur  LED  dengan  potensiometer,  kita harus  memiliki  potensiometer yang  pas  untuk  LED  tersebut.  Jika hambatan  potensiometer  tidak  sesuai,  mungkin  LED  akan mati sebelum  potensiometer  habis,  atau  LED  sudah  full  nyalanya  ketika potensiometer  baru kita naikkan  setengah.  Jadi,  kita  tidak  bisa menggunakan  satu  putaran  full  potensiometer  untuk menaikkan  atau menurunkan intensitas cahaya LED tersebut. Butuh bukti?

Pada  rangkaian  3.3  menggunakan  potensiometer  50k  ohm  jenis trimmer.  Anda  juga  bisa mencobanya  dengan  menggunakan potensiometer putar. Yang digunakan di gambar adalah potensiometer trimmer  yang  ukurannya  lebih  kecil  dan  bisa  ditancapkan  ke  project board. Gambar 3.4 adalah contoh salah satu trimmer.
Potensiometer jenis trimmer
Potensiometer jenis trimmer
Berikut tahapan untuk membuat rangkaian tersebut:
1.  Sambungkan kaki negatif LED ke GND dengan jumper
2.  Kaki positif LED dihubungkan ke salah satu ujung kaki (kaki yang bawah) potensiometer dengan jumper
3.  Kaki tengah (kaki di sisi yang sendirian) dihubungkan dengan ujung kaki yang lainnya (kaki yang atas) dengan jumper
4.  Kaki yan atas dihubungkan ke +5v dengan resistor.

Jika Anda memutar kekiri atau ke kanan, maka LED akan menyala lebih  terang,  tapi  LED  tidak akan  pernah  padam.  Hal  tersebut disebabkan  karena  arus  yang  masuk  ke  LED  tidak memungkinkan untuk  membuat  LED  padam.  Kenapa?  Karena  resistor  yang  dipilih tidak sesuai.

Solusinya,  kita  bisa  menggukan  teknik  PWM  seperti  yang  kita bahas  sebelumnya.  Hanya  saja, untuk  mengatur  PWM  kita menggunakan potensiometer, bukan pushbutton. Kebayang?

Rangkaian

Mengatur Brightness LED dengan potensiometer
Mengatur Brightness LED dengan potensiometer
Untuk  membuat  Rangkaian  3.4,  siapkan  LED,  resistor,  dan potensiometer. Anda juga bisa menggunakan trimmer.
1.  Sambungkan  kaki  positif  LED  ke  pin  9  pada  board  Arduino, pin tersebut support PWM
2.  Kaki negatif LED disambungkan dengan resistor ke GND
3.  Kedua ujung kaki trimmer yang satu sisi (sisi kanan)  masingmasing  disambungkan  ke  +5v  dan GND.  Jika  Anda menggunakan  potensiometer  putar,  yang  disambungkan  ke +5v dan GND adalah pin yang paling pinggi.
4.  Pin yang satu (di sebelah kiri) disambungkan ke A0 pada board Arduino.  Jika  Anda menggunakan potensiometer  putar,yang disambungkan  ke  A0  adalah  pin  yang  tengah  pada
potensiometer.

Mungkin  Anda  akan  bertanya,  kenapa  disambungkan  ke  A0? Begini,  pada  Arduino  terdapat  3  kelompok  pin  dengan  fungsi  yang berbeda, yaitu:

>  Pin digital (pin 0 - 13)
>  Pin  digital  yang  support  PWM  (ditandai  dengan  tilde  “~”, yaitu pin 3, 5, 6, 9, 10, 11)
>  Pin Analog (A0 – A5)

Digital  artinya  hanya  terdiri  dari  ON  dan OFF,  atau  HIGH  dan LOW.  Digital  dengan  PWM artinya,  frekuensi  ON  dan  OFF  bisa diatur  berdasarkan  siklus  tertentu  dalam  frekuensi  500  Hz dengan selang antara 0 - 255. Hal ini sudah kita bahas sebelumnya, bukan?

Sedangkan  pin  Analog,  berarti  pin  tersebut  bisa  ditulis mempunyai tegangan antara 0 –  5 volt dengan step kenaikan sebanyak 1024. Artinya angka 0  –  1023 akan  dikonversi  menjadi 0  –  5 volt pada pin  tersebut.  0  berarti  0  volt,  1023  berarti  5  volt.  Kenapa  maksimal 1024?

Sebenarnya  selang  antara  0  –  5  volt  bisa  dicacah  dengan  jumlah tak terhingga. Akan tetapi, mikroposesor memiliki keterbatasan dalam mencacah  angka,  sehingga  batas  yang  bisa  dicacah hanya  mencapai 1024 cacahan, yaitu dari 0 – 1023.

Itu  sekilas  tentang  rangkaian  yang  akan  kita  buat  dan karakteristik pin Analog pada Arduino.


Program

Sketch  Mengatur kecerahan LED dengan potensiometer
// Free Ebook Arduino
// www.elangsakti.com
// coder elangsakti
// pin A0 adalah pin Analog
// pin 9 adalah pin digital support PWM
const int pinPot = A0;
const int pinLED = 9;
void setup() {
pinMode(pinPot, INPUT);
pinMode(pinLED, OUTPUT);
}
int sensor = 0;
int brightness = 0;
void loop() {
// baca nilai kaki A0 (sensor, potensiometer)
sensor = analogRead(pinPot);
// konversi nilai 0-1023 (Analog) menjadi 0-255 (PWM)
brightness = map(sensor, 0, 1023, 0, 255);
// tentukan brightness LED dengan PWM
analogWrite(pinLED, brightness);
}

Ketika  program  pada  Sketch  3.3  diupload,  maka  kita  bisa mengatur brightness dan hidup-mati LED dengan sempurna, berbeda dengan  cara  manual  seperti  Rangkaian  3.3.  Pada  Sketch  3.3, ada dua bagian yang perlu diperhatikan:

1.  Pada  baris  7,  pinPot  =  A0.  A0  adalah  variabel  untuk  pin Analog  ke  0.  Sebenarnya  A0 sama  dengan  pin  14.  Kita  juga bisa menggunakan pin tersebut sebagai pin digital. Tapi Anda
tidak bisa menggunakan pin digital sebagai pin analog.
Jadi,  gunakan  pin  A0  –  A5  jika  akan  dihubungkan  dengan sensor analog.

2.  Pada baris 22, ada fungsi  map(). Sebagaimana namanya, fungsi map()  digunakan  untuk memetakan  suatu  nilai  dari  range tertentu ke range yang lain. Berikut adalah  parameter dalam
fungsi map()

map(value, from_min, from_max, to_min, to_max);

Maka  pada  baris  22  berfungsi  untuk  mengubah  nilai  sensoryang  awalnya  ada  pada  range  0-1024  menjadi  nilai  dengan range 0-255. Jika sensor benilai 512 (anggap saja ½ dari 1024),
maka nilai tersebut akan dirubah menjadi 127 (anggap saja ½ dari 255).

Selanjutnya, mari kita coba untuk mengatur durasi kedipan LED berdasarkan  nilai  pada potensiometer.  Jika  ‘volume’  potensiometer rendah,  durasi  kedipan  LED  akan  cepat.  Jika ‘volume’  potensiometer tinggi,  maka  durasi  kedipan  LED  akan  lambat.  Saya  sebut  ‘volume’
karena potensiometer identik dengan alat untuk mengatur volume.

Sketch  Kedipan LED dengan potensiometer

// Free Ebook Arduino
// www.elangsakti.com
// coder elangsakti
// pin A0 adalah pin Analog
// pin 9 adalah pin digital support PWM
const int pinPot = A0;
const int pinLED = 9;
void setup() {
pinMode(pinPot, INPUT);
pinMode(pinLED, OUTPUT);
}
int sensor = 0;
void loop() {
// baca nilai kaki A0 (sensor, potensiometer)
sensor = analogRead(pinPot);
// durasi kedipan sesuai nilai pada sensor 0-1023
digitalWrite(pinLED, HIGH);
delay(sensor);
digitalWrite(pinLED, LOW);
delay(sensor);
}

Sudah mencoba Sketch 3.4?

Kedipan LED pada Sketch 3.4 kurang responsive. Artinya, ketika potensiometer  dimaksimalkan, maka  delaynya  akan  lama.  Tapi  ketika potensiometer  langsung  diturunkan,  paka  kedipan  LED tetap  pada durasi  yang  lama  tersebut.  Kenapa?  Karena  mikrokontroller  akan menyelesaikan nilai delay yang diberikan sebelumnya.

Setelah eksekusi semua delay dilakukan, baru potensiometer akan berubah  ke  durasi  delay  yang baru.  Itulah  yang  saya  sebut  dengan kurang  responsive.  Harusnya,  durasi  kedipan  LED  akan segera berubah ketika potensiometer dirubah.

Menghilangkan Delay

Sketch Kedipan LED Responsive tanpa delay

// Free Ebook Arduino
// www.elangsakti.com
// coder elangsakti

// pin A0 adalah pin Analog
// pin 9 adalah pin digital support PWM
const int pinPot = A0;
const int pinLED = 9;

void setup() {
pinMode(pinPot, INPUT);
pinMode(pinLED, OUTPUT);
}

long lastTime = 0;
int sensor = 0;
int ledValue;

void loop() {
// baca nilai kaki A0 (sensor, potensiometer)
sensor = analogRead(pinPot);

// led akan hidup/mati dengan durasi = nilai sensor
// jika nilai sensor 100 maka durasinya adalah 100ms
if(millis() > lastTime + sensor){
if(ledValue == LOW){
ledValue = HIGH;
}else{
ledValue = LOW;
}

// set lastTime dg nilai millis() yang baru
lastTime = millis();
digitalWrite(pinLED, ledValue);
}
}

Program  pada  Sketch  3.5  mempunyai  fungsi  yang  sama  dengan Sketch  3.4,  bedanya,  yang Sketch  3.5  versi  responsive.  Jadi  ketika potensiometer diputar, maka durasi kedipan LED segera berubah. Cara kerjanya seperti ini:

Ketika  berbicara  tentang  delay,  maka  kita  berbicara  tentang waktu.  Pada  Sketch  3.5,  waktu delay  bersifat  dinamis  karena parameternya  adalah  waktu  sekarang  (  diambil  dari  millis()  ).
Sedangkan  jeda  waktu  untuk  perubahan  adalah  waktu  perubahan terakhir + nilai dari potensiometer. Untuk lebih memahami yang saya maksudkan, perhatikan Gambar 3.5.
Siklus perubahan status LED dan potensiometer
Siklus perubahan status LED dan potensiometer
Pada  Gambar  3.5,  keempat  tahap  dari  atas  ke  bawah  tersebut adalah kondisi nyala atau tidaknya LED. Nilai  lastTime  dihitung sejak terjadinya  perubahan  pada  potensiometer  atau  habisnya  jeda
berdasarkan nilai sensor yang ditentukan.

1.  Step pertama kondisi LED adalah ON, lastTime didapat dari perubahan terakhir atau pemanggilan terakhir  millis(). Ketika nilai  sensor  (warna  hijau)  sudah  habis,  maka  LED  akan menjadi  OFF, millis()  akan  dipanggil  dan  akan  menjadi  nilai lastTime pada step kedua.
2.  Step kedua, kondisi LED OFF selama nilai sensor milisekon, setiap  saat  nilai  millis()  akan diperiksa.  Garis  putus-putus menandakan  waktu  pemanggilan  fungsi  millis()  dalam pengkondisian

if(millis() > lastTime + sensor)

jika nilai millis() sudah lebih besar daripada lastTime + sensor, maka  waktu  OFF  LED  sudah  habis dan  digantikan  dengan waktu ON LED.
3.  Step ketiga menunjukkan bahwa nilai potensimeter dinaikkan sehingga  durasi  yang  dibutuhkan untuk  menyalakan  LED lebih  lama.  Garis-garis  putus  menunjukkan  bahwa  proses pemanggilan millis()  dalam IF masih separuh perjalanan. Tapi ditengah perjalanan, nilai potensiometer dikecilkan.
4.  Setelah  potensiometer  dikecilkan,  maka  durasi  yang  awalnya masih  setengah  perjalanan,  kini tinggal  sedikit  dan  LED masih dalam keadaan ON.

Semoga  ilustrasi  diatas  bisa  menjelaskan  bagaimana  cara  kerja
program pada Sketch 3.5.

Tapi sebentar, pada baris 15 lastTime bukan int (integer). Tipe data lastTime  adalah  long  (long integer).  Apa  bedanya  dengan  integer  tanpa long?

long lastTime = 0;

Untuk  menjelaskan  itu,  berikit  ini  adalah  tabel  bilangan  dan kapasitasnya:

Perhatikan bahwa kapasitas  long  lebih besar daripada  int. Tabel di atas  hanya  berlaku  untuk Arduino  saja,  jadi  jika  untuk  komputer lainnya bisa jadi akan berbeda tergantung arsitektur dan kemampuan komputer tersebut dalam mencacah.



Comments

Popular posts from this blog

GROUND bagian 1 by Sarono Elektronika Blog Adi Sanjaya Global Techno Solution - AS-GTS

GROUND bagian 1
Banyak pertanyaan kepada saya apa itu ground ? apa guna nya ? apakah selalu ground itu negatif ? Apa yang di maksud titik netral pada pencatu daya terbelah ?
Agak sulit menerangkan dengan kata kata, bahkan dari hasil diskusi saya dengan beberapa teman yang sudah pakar elektronik juga mereka menemukan kesulitan nya mengungkapkan dengan kata kata walau kita mengerti tentang ground.
Untuk itu saya mencoba menerangkan semaksimal mungkin, tetapi sesungguh nya yang"mendengar" mestinya sudah punya ilmu elektronika minimal sampai teknik penguat audio.
Jadi, jika belum memehami tentang teknik audio dan masih bingung tentang konsep dan aplikasi ground masih di maklum kan.
Pada rangkaian listrik sederhana tidak di perlukan ground, misalkan senter, (body nya terbuat dari plastik) itupun sering negatif nya di hubungkan dengan body senter terbuat dari logam.
a. Pengertian Ground
Ground adalah titik yang dianggap sebagai titik kembali nya arus listrik arus seara…

HAMBATAN LISTRIK by Sarono Elektronika Blog Adi Sanjaya Global Techno Solution - AS-GTS

HAMBATAN LISTRIK
Pada bahasan sebelumnya sudah di tegaskan bahwa menghubungkan langsung positip dan negatip battery tidak boleh di lakukan, karena jumlah elektron yang mengalir menjadi sangat besar dan selama mengalir antara elektron saling berbenturan dan menimbulkan panas yang besar.
TETAPI
1) Jika jalan yang di lalui panjang (kawat nya panjang), maka kawat itu akan menjadi perlawanan listrik, makin panjang kawat maka perlawanan terhadap arus listrik juga semakin besar.
2) Atau kalau jalan nya arus di kawat juga di kecilkan (tebal kawat) nya di tipiskan juga akan menghasilkan Hambatan bagi arus semakin besar (Hambatan listrik membesar).
Dengan demikian kita bisa menghambat arus listrik itu dengan membuat kawat yang panjang dan mengatur tipis nya (luas penampang) kawat.
Ada faktor ke 3 yaitu jenis kawat.
Jenis kawat tertentu lebih mudah melewatkan arus, sementara kawat yang lain lebih sulit melewatkan arus.
Dalam teori elektron dapat di jelas kan : kawat tertentu daya ika…

Cara menggunakan modul relay dengan arduino UNO.

Material yang di butuhkan:
- Relay module 2 channel
- Arduino UNO.
- kabel jumper male - female

Relay module 2 channel  5V dengan 2 channel output dapat digunakan sebagai saklar elektronik untuk mengendalikan perangkat listrik yang memerlukan tegangan dan arus yang besar. Kompatible dengan semua mikrokontroler khususnya Arduino


Spesifikasi
•    Jumlah Relay : 2
•    Control signal : TTL level (ACTIVE LOW) ini artinya relay akan aktif jika kita memberikan logika LOW ke pin trigger relay (pin in1 /in 2)

Catatan : gambar bisa jadi berbeda dengan fisik relay yang dikirim, tapi pin pin pasti terdiri dari pin Vcc GND dan pin in1/in2 … untuk jumlah channel lainnya maka pin in1 2, dst akan sesuai dengan jumlah channel relay modul
•    Rating arus : 10A 250VAC, 10A 30VDC, 10A 125VAC, 10A 28VDC
•    Contact action time : 10ms/5ms
•    Indikator LED untuk masing masing channel



Catatan : gambar bisa jadi berbeda dengan fisik relay yang dikirim, tapi pin pin pasti terdiri dari pin Vcc GND dan pin in1/in2…