MODUL 4
- Mengetahui cara membuat sistem optimalisasi photovoltaic dengan system suntracking dengan menggunakan mikrokontroler Arduino UNO.
- Agar dapat mengimplementasikan komunikasi UART pada sistem optimalisasi photovoltaic dengan system suntracking.
- Mengetahui dan memahami prinsip kerja dari sensor dan komponen yang digunakan pada rangkaian, seperti LDR, Infrared, Voltage Sensor, Current Sensor (ACS712) dan Sensor Pt100.
- Agar memahami konsep rancangan desain sistem optimalisasi photovoltaic dengan system suntracking secara sederhana dengan prototype.
Alat :
1. Solder
Bahan :
- Sensor Infrared
Spesifikasi:
- Sensor ACS712 (SENSOR ARUS)
Spesifikasi ACS712
Berikut ini adalah spesifikasi dan feature dari sensor ACS712 :
- Jalur sinyal analog dengan noise rendah
- Bandwidth perangkat diatur melalui pin FILTER baru
- Waktu kenaikan output 5 μs sebagai respons terhadap arus input langkah
- Bandwidth 80 kHz
- Total kesalahan output 1,5% pada TA = 25°C
- Jejak kecil, paket SOIC8 profil rendah
- 1,2 mΩ resistansi konduktor internal
- Tegangan isolasi minimum 2,1 kVRMS dari pin 1-4 ke pin 5-8
- 5,0 V, operasi pasokan tunggal
- Sensitivitas output 66 hingga 185 mV/A
- Tegangan output sebanding dengan arus AC atau DC
- Dipangkas pabrik untuk akurasi
- Tegangan offset keluaran yang sangat stabil
- Histeresis magnetik hampir nol
- Output rasiometrik dari tegangan suplai
- Voltage Sensor
- Voltage range : 0 ~ 25 V
- Detection voltage : 0.02445 V ~ 25 V
- Analog resolution : 0.00489 V
- Dimensi : 25 mm x 13 mm
- LDR Sensor
Spesifikasi Sensor Cahaya LDR:
- Supply : 3.3 V – 5 V (arduino available)
- Output Type: Digital Output (0 and 1)
- Inverse output
- Include IC LM393 voltage comparator
- Sensitivitasnya dapat diatur
- Dimensi PCB size: 3.2 cm x 1.4 cm
- Sensor Pt100
- Platinium Resistant Thermometer (PRT)
- Temperature Range : -200°C to 850°C
- Resistance Range : 1.849K to 39.026K
- Accuracy : ±0.1°C
- Nominal Resistance : 100Ω at 0°C
- Arduino Uno
Spesifikasi :
- Resistor
Spesifikasi :
- Buzzer
- Rated Voltage: 6V DC
- Operating Voltage: 4-8V DC
- Rated current: <30mA
- Sound Type: Continuous Beep
- Resonant Frequency: ~2300 Hz
- Small and neat sealed package
- Breadboard and Perf board friendly
- Motor DC
- Standard 130 Type DC motor
- Operating Voltage: 4.5V to 9V
- Recommended/Rated Voltage: 6V
- Current at No load: 70mA (max)
- No-load Speed: 9000 rpm
- Loaded current: 250mA (approx)
- Rated Load: 10g*cm
- Motor Size: 27.5mm x 20mm x 15mm
- Weight: 17 grams
- Tegangan operasi LCD ini adalah 4.7V-5.3V
- Ini mencakup dua baris di mana setiap baris dapat menghasilkan 16 karakter.
- Pemanfaatan arus adalah 1mA tanpa lampu latar
- Setiap karakter dapat dibangun dengan kotak 5×8 piksel
- Alfanumerik LCD alfabet & angka
- Apakah tampilan dapat bekerja pada dua mode seperti 4-bit & 8-bit
- Ini dapat diperoleh dalam Lampu Latar Biru & Hijau
- Ini menampilkan beberapa karakter yang dibuat khusus
- Motor Servo
- Berat: 9 g
- Dimensi: 22,2 x 11,8 x 31 mm.
- Torsi stall: 1,8 kgf-cm
- Kecepatan pengoperasian: 0,1 detik/60 derajat
- Tegangan operasi: 4,8 V (~ 5V)
- Lebar pita mati: 10 μs
- Kisaran suhu: 0 ºC - 55 ºC
- Posisi “0” (pulsa 1,5 ms) berada di tengah, “90” (pulsa ~2 ms) berada di sebelah kiri. (ms pulsa) adalah ke kanan, “-90” (~1 ms pulsa) adalah ke kiri.
- Pulse Width modulation (PWM)
PWM
(Pulse Width Modulation) adalah salah satu teknik modulasi
dengan mengubah lebar pulsa
(duty cylce) dengan nilai amplitudo
dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high
kemudian berada di zona transisi ke kondisi low.
Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi. Duty Cycle adalah perbandingan antara waktu ON (lebar
pulsa High) dengan perioda.
Duty Cycle biasanya dinyatakan dalam bentuk
persen (%).
- Duty Cycle = tON / ttotal
- tON = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (high atau 1)
- tOFF = Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah (low atau 0)
- ttotal = Waktu satu siklus atau penjumlahan antara tON dengan tOFF atau disebut juga dengan “periode satu gelombang”.
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. 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.
- Analog to Digital Converter (ADC)
ADC atau Analog to Digital
Converter merupakan salah satu perangkat
elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal
analog oleh sistem digital. Fungsi
utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal
digital dengan bentuk kode-kode digital. Ada
2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan
sampling dan resolusi.
Kecepatan sampling menyatakan seberapa sering perangkat
mampu mengkonversi sinyal analog ke dalam bentuk sinyal
digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam sample per second (SPS). Sementara Resolusi
menyatakan tingkat ketelitian yang dimilliki. Pada Arduino, resolusi
yang dimiliki adalah 10 bit atau rentang
nilai digital antara 0 - 1023. Dan pada Arduino
tegangan referensi yang digunakan
adalah 5 volt, hal ini berarti ADC pada Arduino mampu menangani sinyal analog dengan tegangan 0 - 5 volt. Pada
Arduino, menggunakan pin analog input yang diawali
dengan kode A( A0- A5 padaArduino Uno). Fungsi
untuk mengambil data sinyal input analog menggunakan analogRead(pin);.
- Komunikasi
Pada Alat yang kami buat, kami menggunakan komunikasi UART untuk 2 arduino
yang kami gunakan.
Komunikasi UART adalah bagian perangkat
keras komputer yang menerjemahkan antara bit-bit
paralel data dan bit-bit
serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer
atau port serial perangkat
periperal.
Cara kerja komunikasi UART :
Data
dikirimkan secara paralel
dari data bus ke UART1. Pada UART1 ditambahkan
start bit, parity bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan
data dan menghapus bit tambahan, kemudia di transfer secara parallel ke data
bus penerima.
- Mikrokontroller
Mikrokontroler adalah salah satu dari
bagian dasar dari suatu sistem komputer. Meskipun
mempunyai bentuk yang jauh lebih kecil dari suatu komputer pribadi dan komputer mainframe, mikrokontroler
dibangun dari elemen-elemen dasar yang sama.
Secara sederhana, komputer akan menghasilkan output yang spesifik
berdasarkan input yang diterima
dan program yang dikerjakan. Seperti
umumnya komputer, mikrokontroler sebagai alat yang mengerjakan perintah-perintah yang diberikan kepadanya. Artinya, bagian terpenting dan
utama dari suatu sistem komputerisasi adalah
program itu sendiri yang dibuat oleh seorang programmer. Program ini
memerintahkan komputer untuk melakukan jalinan
yang panjang dari aksi-aksi sederhana
untuk melakukan tugas yang lebih kompleks yang diinginkan oleh programmer. Sistem
dengan mikrokontroler umumnya
menggunakan piranti input yang jauh lebih kecil seperti saklar atau keypad kecil. Hampir semua input mikrokontroler hanya dapat memproses sinyal input digital dengan
tegangan yang sama dengan tegangan logika dari
sumber. Tegangan positif sumber umumnya adalah 5 volt. Padahal dalam
dunia nyata terdapat banyak sinyal analog
atau sinyal dengan tegangan.
Berikut ini
merupakan struktur dan diagram blok mikrokontroler beserta penjelasan tentang
bagian-bagian utamanya :
· CPU
CPU merupakan
otak dari mikrokontroler. CPU bertanggung jawab untuk mengambil instruksi (fetch),
menerjemahkannya (decode), kemudian akhirnya
dieksekusi (execute). CPU menghubungkan setiap bagian dari
mikrokontroler ke dalam satu sistem.
Fungsi utamanya yaitu mengambil dan mendekode instruksi. Instruksi yang diambil dari memori program harus diterjemahkan
atau melakukan decode oleh CPU
tersebut.
· Serial Port (Port Serial)
Serial port
menyediakan berbagai antarmuka serial antara mikrokontroler dan periferal lain seperti port paralel.
· Memori (Penyimpanan)
Memori ini
bertugas untuk menyimpan data. Data tersebut merupakan data yang sudah diolah (output)
atau data yang belum diolah (input). Penyimpanan ini berupa RAM dan
ROM. ROM digunakan untuk menyimpan data dalam jangka waktu yang lama. Sedangkan RAM digunakan untuk menyimpan data
sementara selama program
berjalan sampai akhirnya dipindahkan ke ROM.
· Port Input/Output Paralel
Port input/output paralel digunakan untuk mendorong atau menghubungkan berbagai
perangkat seperti LED, LCD, printer,
memori dan perangkat
input/output lainnya ke mikrokontroler.
· ADC (Analog
to Digital Converter)
Konverter
ADC (Analog to Digital Converter) digunakan untuk mengubah sinyal analog ke bentuk digital. Sinyal input
dalam konverter ini harus dalam bentuk analog (misalnya
output dari sensor) sedangkan outputnya dalam bentuk digital.
· DAC (Digital
to Analog Converter)
DAC (Digital
to Analog Converter) melakukan operasi pembalikan konversi ADC (Analog
to Digital Converter). DAC mengubah sinyal digital menjadi
format analog. DAC ini biasanya
digunakan untuk mengendalikan perangkat analog seperti
motor DC dan lain sebagainya.
· Interrupt Control (Kontrol Interupsi)
Interrupt Control (Kontrol Interupsi) bertugas untuk mengendalikan penundaan terhadap pemrograman mikrokontroler. Bagian interrupt control (kontrol interupsi) ini dapat dioperasikan secara internal ataupun eksternal.
· Special Functioning Block (Blok Fungsi Khusus)
Special functioning block merupakan bagian tambahan yang dibuat mempunyai fungsi khusus. Biasanya blok ini ditemukan pada arsitektur mikrokontroler di mesin robotika. Tidak semua perangkat menggunakan bagian ini.
· Timer and Counter (Pengatur Waktu dan Penghitung)
Timer/counter ini digunakan untuk mengukur waktu dan alat penghitungan. Keberadaan komponen ini sangatlah penting. Karena informasi waktu seringkali digunakan pengaturan sistem supaya lebih akurat dan efektif.
- LDR Sensor
Sensor LDR (Light Dependent Resistor), juga
dikenal sebagai fotoresistor, adalah jenis sensor yang sensitif terhadap
intensitas cahaya. Prinsip kerja LDR didasarkan pada perubahan resistansinya
tergantung pada tingkat cahaya yang diterimanya. Ketika cahaya mengenai LDR,
resistansinya menurun, dan sebaliknya, saat kondisi gelap, resistansinya
meningkat.
LDR umumnya terbuat dari semikonduktor yang
memiliki resistivitas yang sangat sensitif terhadap tingkat pencahayaan. Ketika
cahaya menyinari LDR, energi foton mengeksitasi elektron dalam struktur
semikonduktor, sehingga resistansi menurun. Pengukuran resistansi LDR dapat
digunakan untuk mengukur intensitas cahaya di sekitarnya.
Aplikasi umum dari sensor LDR termasuk dalam
sistem pengaturan otomatis pencahayaan, seperti lampu jalan yang menyala
otomatis saat gelap, atau dalam perangkat sensor cahaya untuk kamera atau
ponsel pintar. Penggunaan LDR dalam berbagai proyek elektronika memungkinkan
respons otomatis terhadap kondisi pencahayaan, menawarkan solusi hemat energi
dan efisien.
Prinsip kerja sensor LDR (Light Dependent
Resistor) didasarkan pada perubahan resistansinya terhadap intensitas cahaya
yang diterimanya. LDR terbuat dari material semikonduktor khusus yang memiliki
resistivitas yang sangat sensitif terhadap tingkat pencahayaan. Ketika cahaya
mengenai LDR, energi foton dari cahaya tersebut menghasilkan elektron-elektron
berenergi tinggi dalam struktur semikonduktor, sehingga meningkatkan
konduktivitas dan menurunkan resistansi sensor.
Jadi, pada kondisi cahaya yang cukup, LDR
memiliki resistansi yang rendah, memungkinkan arus listrik untuk mengalir
dengan mudah melalui sensor. Sebaliknya, pada kondisi gelap, resistansi LDR
meningkat, membatasi arus listrik yang dapat mengalir. Pengukuran resistansi
LDR dapat digunakan sebagai indikator intensitas cahaya di sekitar sensor.
Aplikasi umum dari prinsip ini adalah dalam
rangkaian pengaturan otomatis pencahayaan. Sebagai contoh, ketika lingkungan
menjadi gelap, resistansi LDR meningkat, dan ini dapat digunakan untuk mengaktifkan
atau mengatur lampu secara otomatis. Penggunaan sensor LDR membuat perangkat
dapat merespons secara otomatis terhadap kondisi pencahayaan, menjadikannya
berguna dalam berbagai proyek elektronika dan sistem kontrol otomatis.
Prinsip Kerja LDR :
Pada sisi bagian atas LDR terdapat suatu garis /
jalur melengkung yang menyerupai bentuk kurva. Jalur tersebut terbuat dari
bahan cadmium sulphida yang sangat sensitif terhadap pengaruh dari cahaya.
Jalur cadmium sulphida yang terdapat pada LDR dapat dilihat pada gambar. Pada
gambar jalur cadmium sulphida dibuat melengkung menyerupai kurva agar jalur
tersebut dapat dibuat panjang dalam ruang (area) yang sempit. Cadmium sulphida
(CdS) merupakan bahan semi-konduktor yang memiliki gap energi antara elektron konduksi
dan elektron valensi. Ketika cahaya mengenai cadmium sulphida, maka energi
proton dari cahaya akan diserap sehingga terjadi perpindahan dari band valensi
ke band konduksi. Akibat perpindahan elektron tersebut mengakibatkan hambatan
dari cadmium sulphida berkurang dengan hubungan kebalikan dari intensitas
cahaya yang mengenai LDR.
Grafik Respon Sensor LDR:
Menurut grafik diatas, saat intensitas cahaya meningkat (bergeser ke kanan pada sumbu x), resistansi LDR menurun (bergeser ke bawah pada sumbu y). Ini karena ketika cahaya mengenai LDR, ia membangkitkan elektron dalam material, sehingga arus lebih mudah mengalir dan mengurangi resistansi.
- Infrared Sensor
Ada dua jenis sensor infrared utama: sensor pasif dan sensor aktif.
a. Sensor Infrared Pasif: Sensor ini mendeteksi
radiasi inframerah yang dipancarkan atau dipantulkan oleh objek atau tubuh yang
memiliki suhu lebih tinggi daripada nol absolut. Ketika radiasi inframerah
tertangkap, sensor mengonversinya menjadi sinyal listrik melalui elemen
detektor termal atau pyroelektrik. Sensor pasif
sering digunakan dalam aplikasi deteksi gerak (PIR sensor) sering digunakan
dalam sistem keamanan atau otomatisasi rumah untuk mendeteksi perubahan suhu
yang diindikasikan oleh pergerakan.
b. Sensor Infrared Aktif: Sensor ini menghasilkan
radiasi inframerah sendiri dan kemudian mendeteksi pantulan atau perubahan
dalam pantulan tersebut. Sinyal pantulan atau perubahan dalam intensitas
pantulan diukur dan dikonversi menjadi sinyal listrik oleh elemen detektor
seperti fotodioda atau fototransistor. Sensor ini sering
digunakan dalam aplikasi pengukuran jarak (seperti sensor ultrasonik atau
lidar) dan komunikasi inframerah.
Sensor infrared memiliki berbagai aplikasi, termasuk di dalam pengendalian jarak jauh, perangkat keamanan, sistem kendali otomatis, dan perangkat medis. Keunggulan sensor infrared termasuk kemampuan bekerja dalam kondisi cahaya rendah atau gelap dan kemampuan mengukur suhu objek tanpa kontak fisik.
Prinsip kerja sensor infrared memanfaatkan sifat radiasi inframerah yang tidak terlihat oleh mata manusia dan kemudian mengonversinya menjadi bentuk sinyal yang dapat diolah untuk berbagai aplikasi. Ketika pemancar IR memancarkan radiasi, ia mencapai objek dan beberapa radiasi memantulkan kembali ke penerima IR. Berdasarkan intensitas penerimaan oleh penerima IR, output dari sensor ditentukan.
Grafik Respon Sensor Infrared:
Grafik diatas menunjukkan
hubungan antara resistansi dan jarak potensial untuk sensitivitas rentang
antara pemancar dan penerima inframerah. Resistor yang digunakan pada sensor
mempengaruhi intensitas cahaya inframerah keluar dari pemancar. Semakin tinggi
resistansi yang digunakan, semakin pendek jarak IR Receiver yang mampu
mendeteksi sinar IR yang dipancarkan dari IR Transmitter karena intensitas
cahaya yang lebih rendah dari IR Transmitter. Sementara semakin rendah
resistansi yang digunakan, semakin jauh jarak IR Receiver mampu mendeteksi
sinar IR yang dipancarkan dari IR Transmitter karena intensitas cahaya yang
lebih tinggi dari IR Transmitter.
- Voltage Sensor
Sensor tegangan adalah perangkat
yang digunakan untuk mengukur perbedaan potensial listrik antara dua titik
dalam suatu rangkaian atau sistem listrik, baik itu tegangan AC maupun DC.
Prinsip kerjanya didasarkan pada pembagian tegangan menggunakan resistor untuk
menurunkan tegangan yang diukur ke dalam rentang yang aman dan dapat diolah
oleh mikrokontroler atau perangkat elektronik lainnya. Tegangan yang telah
dibagi ini kemudian dikonversi menjadi sinyal analog yang proporsional dengan
tegangan input, dan beberapa sensor juga mengonversinya menjadi sinyal digital.
Penjelasan singkat tentang Modul
Sensor Tegangan:
Modul Sensor
Deteksi Tegangan adalah modul sederhana dan sangat berguna yang menggunakan pembagi
potensial untuk mengurangi tegangan input apa pun dengan faktor 5. Hal ini
memungkinkan kita untuk menggunakan pin input Analog mikrokontroler untuk
memonitor tegangan yang lebih tinggi daripada yang dapat diindera. Misalnya,
dengan rentang input Analog 0V - 5V, Anda dapat mengukur tegangan hingga 25V.
Modul ini juga mencakup terminal sekrup yang nyaman untuk koneksi kabel yang
mudah dan aman.
Konfigurasi Pinout
Modul Sensor Tegangan:
Diagram sirkuit
internal Modul Sensor Tegangan:
Rangkaian
tegangan terdiri dari rangkaian pembagi tegangan dari dua resistor dimana R1
adalah 30K dan R2 adalah 7,5K.
Prinsip
kerjanya yaitu untuk mengonfigurasi sensor tegangan, pertama-tama sambungkan
pin input sensor ke titik pengukuran tegangan dalam rangkaian, pin VCC sensor
ke sumber tegangan yang sesuai (biasanya 5V atau 3.3V), dan pin GND ke ground.
Pin OUT (output) sensor kemudian dihubungkan ke pin analog pada mikrokontroler,
seperti Arduino. Mikrokontroler membaca nilai tegangan analog dari pin OUT
sensor dan mengonversinya menjadi nilai digital melalui ADC (Analog-to-Digital
Converter). Nilai digital ini dikalibrasi untuk menghitung tegangan yang diukur
dalam satuan volt, dengan kalibrasi yang biasanya melibatkan persamaan linier
berdasarkan faktor pembagian tegangan dari rangkaian pembagi tegangan.
Grafik respon voltage sensor:
Hubungan antara tegangan keluaran
sensor dan kekuatan medan magnet di bawah kondisi pengujian 25ºC dan rentang
operasi 0,0 V hingga 5,0 V adalah hubungan yang proporsional. Sensor ini
dirancang untuk mendeteksi medan magnet di sekitarnya dan mengubah kekuatan
medan magnet tersebut menjadi sinyal listrik berupa tegangan keluaran. Dalam
kondisi suhu 25ºC, semakin kuat medan magnet yang terdeteksi oleh sensor,
semakin tinggi tegangan keluaran yang dihasilkan, dalam batas rentang
operasinya. Misalnya, jika medan magnet yang terdeteksi meningkat, tegangan keluaran
sensor juga akan meningkat secara linier atau sesuai dengan karakteristik
respon sensor yang dijelaskan dalam datasheet. Sebaliknya, jika kekuatan medan
magnet berkurang, tegangan keluaran sensor juga akan menurun. Banyak sensor
medan magnet dirancang untuk memiliki hubungan yang linear antara kekuatan
medan magnet dan tegangan keluaran, sehingga perubahan tegangan keluaran dapat
dengan mudah diinterpretasikan sebagai perubahan dalam kekuatan medan magnet.
- Current Sensor (ACS712)
Modul sensor ACS712 mempunyai 3 varian, yaitu :
- ACS712-05B untuk pengukuran arus dalam rentang -5A sampai 5A
- ACS712-20A untuk pengukuran arus dalam rentang -20A sampai 20A
- ACS712-30A untuk pengukuran arus dalam rentang -30A sampai 30A
Gambar berikut ini menunjukan Typical Application dari
modul sensor ACS712.
Dengan tingkat akurasi yang tinggi, harga
yang terjangkau dan ukuran yang kecil, menjadikan modul ACS712 sangat cocok
untuk digunakan pada berbagai aplikasi maupun project antara lain :
- Kontrol motor
- Deteksi dan managemen arus beban
- Beralih Power Supply
- Proteksi gangguan arus berlebih
- Dll
Pada
gambar diatas merupakan datasheet grafik sensitivitas dari masing-masing sensor
ACS712 5A, ACS712 20A dan ACS712 30A. Dari grafik linier tersebut dapat dilihat
bahwa sumbu X dari setiap grafik diberi label "Ip (A)", yang
berarti "arus input" atau "arus terukur". Sumbu Y dari setiap grafik
diberi label "Vout (V)", yang berarti "tegangan
output". Setiap grafik memiliki garis horizontal sekitar 2,5 volt, yang
kemungkinan menunjukkan tegangan output saat tidak ada arus yang terukur.
Grafik
menunjukkan bahwa tegangan output meningkat ketika arus terukur meningkat ke
arah positif, dan menurun ketika arus terukur meningkat ke arah negatif. Titik
data di setiap grafik tidak padat, artinya sulit untuk mengatakan dengan pasti
hubungan persis antara tegangan output dan arus terukur. Namun, tampaknya
hubungan tersebut kira-kira linear (garis lurus).
Jadi bisa diambil kesimpulan yaitu :
- Offset tegangan output = 2,5V
- ACS712 5A mempunyai sensitivitas 185 mV/A
- ACS712 20A mempunyai sensitivitas 100 mV/A
- ACS712 30A mempunyai sensitivitas 66 mV/A
Oleh
karena data sensitivitas masing-masing ACS712 yang berbeda-beda, maka untuk
pemrograman nya juga harus disesuaikan dengan tipe ACS712 yang digunakan dengan
mengacu pada data sensitivitas tersebut.
Berikut ini adalah spesifikasi dan feature dari sensor ACS712 :
- Jalur sinyal analog dengan noise rendah
- Bandwidth perangkat diatur melalui pin FILTER baru
- Waktu kenaikan output 5 μs sebagai respons terhadap arus input langkah
- Bandwidth 80 kHz
- Total kesalahan output 1,5% pada TA = 25°C
- Jejak kecil, paket SOIC8 profil rendah
- 1,2 mΩ resistansi konduktor internal
- Tegangan isolasi minimum 2,1 kVRMS dari pin 1-4 ke pin 5-8
- 5,0 V, operasi pasokan tunggal
- Sensitivitas output 66 hingga 185 mV/A
- Tegangan output sebanding dengan arus AC atau DC
- Dipangkas pabrik untuk akurasi
- Tegangan offset keluaran yang sangat stabil
- Histeresis magnetik hampir nol
- Output rasiometrik dari tegangan suplai
- Sensor Suhu (Pt100)
PT100
adalah sensor suhu yang menggunakan resistor platinum dengan resistansi 100 ohm
pada 0ºC. Sensor ini bekerja berdasarkan prinsip bahwa resistansi platinum
berubah secara linier dengan perubahan suhu, memungkinkan pengukuran yang
sangat akurat. Pada suhu 0ºC, resistansi sensor adalah 100 ohm, dan resistansi
ini meningkat seiring kenaikan suhu dengan koefisien temperatur resistansi
sekitar 0,00385/ºC. Sensor PT100 dapat dikonfigurasi dalam beberapa cara untuk
meningkatkan akurasi pengukuran, termasuk konfigurasi 2-wire, 3-wire, dan
4-wire. Konfigurasi 2-wire adalah yang paling sederhana namun kurang akurat
karena resistansi kabel ikut dihitung. Konfigurasi 3-wire lebih akurat dengan
mengkompensasi resistansi kabel, sementara konfigurasi 4-wire adalah yang
paling akurat dengan menghilangkan pengaruh resistansi kabel sepenuhnya.
Sensor
suhu PT100 ini umum digunakan sebagai sensor suhu industri. Sensor ini dikenal
karena kemampuannya untuk mengukur suhu kisaran tinggi (200°C) dengan akurasi
0,1°C. Penyempitan sensor ini juga sederhana dan karenanya dapat digunakan di
lingkungan yang kasar. Satu kelemahan dari sensor ini adalah bahwa sensor ini
tidak akan bekerja di luar kotak. Untuk mendapatkan nilai suhu yang berguna,
seseorang harus menggunakannya bersama dengan pembagi potensial atau jembatan
Wheatstone. Tetapi karena sensor ini hanya bekerja dengan tegangan variabel,
maka sangat mudah untuk menggunakannya dalam proyek. Jadi, jika Anda mencari
sensor dengan jangkauan yang baik dan akurasi yang layak yang relatif murah,
maka PT100 akan menjadi pilihan yang tepat.
Cara kerja sensor Pt100:
Rangkaian PT100
mengubah perubahan suhu menjadi sinyal listrik yang dapat diukur. Sensor PT100
mendeteksi perubahan suhu sebagai perubahan resistansi. Arus kemudian dialirkan
melalui sensor dan rangkaian jembatan Wheatstone untuk menghasilkan tegangan
yang bervariasi. Sinyal ini diperkuat dan dibaca oleh mikrokontroler, yang
mengkonversinya menjadi nilai suhu berdasarkan kurva kalibrasi dan
menampilkannya pada layar atau mentransmisikannya ke perangkat lain. Akurasi
pengukuran dipengaruhi oleh kualitas sensor, stabilitas arus, EMI, resolusi
penguat sinyal, dan kalibrasi mikrokontroler. Rangkaian PT100 menawarkan
pengukuran suhu yang handal dan presisi dengan berbagai aplikasi.
Grafik
respon sensor Pt100:
Pada grafik di atas, dapat melihat bagaimana
resistansi sensor Pt100 (385) bergantung pada suhu. Pada sumbu y diberi label "Resistansi
[Ohm]" dan sumbu x diberi label "Suhu [°C]". Terdapat garis
horizontal sekitar 100 ohm yang kemungkinan besar menunjukkan ketahanan sensor
PT100 pada suhu 0 derajat Celcius. Grafik menunjukkan bahwa resistansi sensor
meningkat seiring dengan meningkatnya suhu. Misalnya, pada 0 °C, hambatannya
sekitar 100 ohm, dan pada 100 °C, hambatannya sekitar 135 ohm.
Sensor
PT100 dikenal dengan akurasi dan linearitasnya yang tinggi, yang berarti
perubahan resistansi konsisten pada rentang suhu yang luas. Hal ini membuat
mereka diinginkan untuk aplikasi yang memerlukan pengukuran suhu yang tepat.
Pengaplikasian sensor Pt100:
- Mengukur suhu kisaran tinggi
- Konstruksi yang kokoh sehingga dapat digunakan di lingkungan yang keras
- Mengukur suhu saluran
- Dapat mengukur berbagai macam suhu dengan akurasi yang baik
- Arduino uno
Arduino
adalah kit elektronik atau papan rangkaian elektronik open source yang
didalamnya terdapat utama yaitu sebuah chip mikrokontroler dengan jenis AVR
dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah
Arduino Uno yang menggungakan chip AVR ATmega 328P. Dalam memprogram Arduino,
kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan
komputer ataupun perangkat lain.
Adapun
spesifikasi dari Arduino Uno ini adalah sebagai berikut :
Bagian-bagian
arduino uno:
·
Power
USB
Digunakan
untuk menghubungkan Papan Arduino dengan komputer lewat koneksi USB.
·
Power
jack
Supply
atau sumber listrik untuk Arduino dengan tipe Jack. Input DC 5 - 12 V.
·
Crystal
Oscillator
Kristal
ini digunakan sebagai layaknya detak jantung pada Arduino. Jumlah cetak
menunjukkan 16000 atau 16000 kHz, atau 16 MHz.
·
Reset
Digunakan
untuk mengulang program Arduino dari awal atau Reset.
·
Digital
Pins I / O
Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika (0 atau 1). Pin berlabel " ~ " adalah pin-pin PWM ( Pulse Width Modulation ) yang dapat digunakan untuk menghasilkan PWM.
·
Analog
Pins
Papan
Arduino UNO memiliki 6 pin analog A0. Digunakan untuk membaca sinyal atau
sensor analog seperti sensor jarak, suhu, dsb, dan mengubahnya menjadi nilai
digital.
·
LED
Power Indicator
Lampu
ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik dengan
baik.
Bagian - bagian pendukung:
·
RAM
RAM
(Random Access Memory) adalah tempat penyimpanan sementara pada komputer yang
isinya dapat diakses dalam waktu yang tetap, tidak memperdulikan letak data
tersebut dalam memori atau acak. Secara umum ada 2 jenis RAM yaitu SRAM (Static
Random Acces Memory) dan DRAM (Dynamic Random Acces Memory).
·
ROM
ROM
(Read-only Memory) adalah perangkat keras pada computer yang dapat menyimpan
data secara permanen tanpa harus memperhatikan adanya sumber listrik. ROM
terdiri dari Mask ROM, PROM, EPROM, EEPROM.
Block Diagram Mikrokontroler ATMega 328P pada Arduino UNO
Adapun block diagram mikrokontroler ATMega 328P dapat
dilihat pada gambar berikut:
Block
diagram dapat digunakan untuk memudahkan / memahami bagaimana kinerja dari
mikrokontroler ATMega 328P.
Pin-pin ATMega 328P:
- Resistor
Umumnya resistor 10 k Ohm sudah cukup untuk mengatasi
rangkaian digital secara umum, namun ntuk menentukan Nilai resistor pull-up
atau pun Pull Down yang dipilih harus memperhatikan 2 point berikut :
a. Level tegangan
setelah ditambahkan “pull up” atau “pull down”.
Level tegangan
harus dipertimbangkan karena chip digital seperti mikrokontroller biasanya
memiliki batas level tegangan input yang dianggap sebagai sinyal low (biasanya
batas sinyal input low ditulis VIL, batas sinyal input high ditulis VIH pada
datasheet mikrokontroller.
b. Kecepatan
rangkaian yang digunakan
Jika rangkaian
yang di “pull up” atau “pull down” diperlukan untuk mengubah sinyal dari low ke
high atau dari high ke low dengan cepat, misalnya untuk keperluan switching,
komunikasi, PWM, nilai resistor untuk “pull up” dan “pull down” sangat
menentukan apakah rangkaian tersebut bisa berfungsi dengan baik.
- Rangkaian Pull Up Resistor
- Rangkaian Pull Down Resistor
- LCD
- Lapisan Terpolarisasi 1 (Polarizing Film 1)
- Elektroda Positif (Positive Electrode)
- Lapisan Kristal Cair (Liquid Cristal Layer)
- Elektroda Negatif (Negative Electrode)
- Lapisan Terpolarisasi 2 (Polarizing film 2)
- Backlight atau Cermin (Backlight or Mirror)
- begin() Untuk begin() digunakan dalam inisialisasi interface ke LCD dan mendefinisikan ukuran kolom dan baris LCD. Pemanggilan begin() harus dilakukan terlebih dahulu sebelum memanggil instruksi lain dalam library LCD. Untuk syntax penulisan instruksi begin() ialah sebagai berikut. lcd.begin(cols,rows) dengan lcd ialah nama variable, cols jumlah kolom LCD, dan rows jumlah baris LCD.
- clear() Instruksi clear() digunakan untuk membersihkan pesan text. Sehingga tidak ada tulisan yang ditapilkan pada LCD.
- setCursor() 19 Instruksi ini digunakan untuk memposisikan cursor awal pesan text di LCD. Penulisan syntax setCursor() ialah sebagai berikut. lcd.setCursor(col,row) dengan lcd ialah nama variable, col kolom LCD, dan row baris LCD.
- print() Sesuai dengan namanya, instruksi print() ini digunakan untuk mencetak, menampilkan pesan text di LCD. Penulisan syntax print() ialah sebagai berikut.lcd.print(data) dengan lcd ialah nama variable, data ialah pesan yang ingin ditampilkan.
- Motor DC
Terdapat dua bagian utama pada sebuah Motor Listrik DC, yaitu Stator dan Rotor. Stator adalah bagian motor yang tidak berputar, bagian yang statis ini terdiri dari rangka dan kumparan medan. Sedangkan Rotor adalah bagian yang berputar, bagian Rotor ini terdiri dari kumparan Jangkar. Dua bagian utama ini dapat dibagi lagi menjadi beberapa komponen penting yaitu diantaranya adalah Yoke (kerangka magnet), Poles (kutub motor), Field winding (kumparan medan magnet), ArmatureWinding (Kumparan Jangkar), Commutator (Komutator)dan Brushes (kuas/sikat arang).
Pada prinsipnya motor listrik DC menggunakan fenomena elektromagnet untuk bergerak, ketika arus listrik diberikan ke kumparan, permukaan kumparan yang bersifat utara akan bergerak menghadap ke magnet yang berkutub selatan dan kumparan yang bersifat selatan akan bergerak menghadap ke utara magnet. Saat ini, karena kutub utara kumparan bertemu dengan kutub selatan magnet ataupun kutub selatan kumparan bertemu dengan kutub utara magnet maka akan terjadi saling tarik menarik yang menyebabkan pergerakan kumparan berhenti.
Untuk menggerakannya lagi, tepat pada saat kutub kumparan berhadapan dengan kutub magnet, arah arus pada kumparan dibalik. Dengan demikian, kutub utara kumparan akan berubah menjadi kutub selatan dan kutub selatannya akan berubah menjadi kutub utara. Pada saat perubahan kutub tersebut terjadi, kutub selatan kumparan akan berhadap dengan kutub selatan magnet dan kutub utara kumparan akan berhadapan dengan kutub utara magnet. Karena kutubnya sama, maka akan terjadi tolak menolak sehingga kumparan bergerak memutar hingga utara kumparan berhadapan dengan selatan magnet dan selatan kumparan berhadapan dengan utara magnet. Pada saat ini, arus yang mengalir ke kumparan dibalik lagi dan kumparan akan berputar lagi karena adanya perubahan kutub. Siklus ini akan berulang-ulang hingga arus listrik pada kumparan diputuskan.
Grafik respon motor DC:
- Motor Servo
Motor servo adalah sebuah perangkat atau aktuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop tertutup (servo), sehingga dapat di set-up atau di atur untuk menentukan dan memastikan posisi sudut dari poros output motor. motor servo merupakan perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan potensiometer. Serangkaian gear yang melekat pada poros motor DC akan memperlambat putaran poros dan meningkatkan torsi motor servo, sedangkan potensiometer dengan perubahan resistansinya saat motor berputar berfungsi sebagai penentu batas posisi putaran poros motor servo.
Prinsip kerja motor servo yaitu motor servo dikendalikan dengan memberikan sinyal modulasi lebar pulsa (Pulse Wide Modulation / PWM) melalui kabel kontrol. Lebar pulsa sinyal kontrol yang diberikan akan menentukan posisi sudut putaran dari poros motor servo. Sebagai contoh, lebar pulsa dengan waktu 1,5 ms (mili detik) akan memutar poros motor servo ke posisi sudut 90⁰. Bila pulsa lebih pendek dari 1,5 ms maka akan berputar ke arah posisi 0⁰ atau ke kiri (berlawanan dengan arah jarum jam), sedangkan bila pulsa yang diberikan lebih lama dari 1,5 ms maka poros motor servo akan berputar ke arah posisi 180⁰ atau ke kanan (searah jarum jam). Lebih jelasnya perhatikan gambar dibawah ini.
Pulse Width Modulation |
Lebar pulsa kendali telah diberikan, maka poros motor servo akan bergerak atau berputar ke posisi yang telah diperintahkan, dan berhenti pada posisi tersebut dan akan tetap bertahan pada posisi tersebut. Jika ada kekuatan eksternal yang mencoba memutar atau mengubah posisi tersebut, maka motor servo akan mencoba menahan atau melawan dengan besarnya kekuatan torsi yang dimilikinya (rating torsi servo). Namun motor servo tidak akan mempertahankan posisinya untuk selamanya, sinyal lebar pulsa kendali harus diulang setiap 20 ms (mili detik) untuk menginstruksikan agar posisi poros motor servo tetap bertahan pada posisinya.
- Buzzer
a. Prosedur [Kembali]
- Prosedur percobaan:
- Download library yang diperlukan pada bagian download dalam blog.
- Buka proteus yang sudah diinstal untuk membuat rangkaian.
- Tambahkan komponen seperti Arduino, sensor, dan perangkat lainnya lalu susun menjadi rangkaian.
- Buka Arduino IDE yang sudah diinstal.
- Di Arduino IDE, pergi ke menu "File" > "Preferences".Pastikan opsi
- "Show verbose during compile" dicentang untuk mendapatkan informasi detail saat kompilasi.
- Salin kode program Arduino pada blog kemudian tempelkan program tadi ke Arduino IDE.
- Kompilasikan kode dengan menekan tombol "Verify" di Arduino IDE.
- Cari dan salin path file HEX yang dihasilkan selama proses kompilasi.
- Kembali ke Proteus dan pilih Arduino yang telah Anda tambahkan di rangkaian.
- Buka opsi "Program File" dan tempelkan path HEX yang telah Anda salin dari Arduino IDE.
- Jalankan simulasi di Proteus.
b. Hardware dan Diagram Blok [Kembali]
- Hardware
- Rangkaian Simulasi
- Prinsip Kerja
c. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
- d. Flowchart dan Listing Program [Kembali]
- Flowchart
Master (Arduino 1)
Slave (Arduino 2)
- Listing Program
Master (Arduino 1)
#include<SoftwareSerial.h> SoftwareSerial mySerial(6,7); int INFRARED_PIN = 2; int LDR1_SENSOR_PIN = A0; int LDR2_SENSOR_PIN = A1; int TEMP_SENSOR_PIN = A2; #include<LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { Serial.begin(9600); mySerial.begin(9600); pinMode(INFRARED_PIN, INPUT); pinMode(LDR1_SENSOR_PIN, INPUT); pinMode(LDR1_SENSOR_PIN, INPUT); // Added lcd.begin(16, 2); lcd.init(); lcd.backlight(); } void loop() { int infraredValue = digitalRead(INFRARED_PIN); float tempValue = analogRead(TEMP_SENSOR_PIN); float ldr1 = analogRead(LDR1_SENSOR_PIN); float ldr2Value = analogRead(LDR2_SENSOR_PIN); float ldr2 = ldr2Value * 0.76; // calibration float suhu = (tempValue * (5.0 / 1023.0) * 10 - 21); // Convert analog value to temperature /*lcd.setCursor(0, 0); lcd.print("ldr1: "); lcd.print(ldr1); lcd.setCursor(0, 1); lcd.print("ldr2: "); lcd.print(ldr2);*/ lcd.setCursor(0,0); lcd.print("Suhu: "); lcd.print(suhu); if (infraredValue == HIGH) { mySerial.write('B'); //lcd.print("A");
} else { mySerial.write('A'); //lcd.print("B");
} if (suhu > 25) { mySerial.write('C'); //lcd.print("C");
} else { mySerial.write('D'); //lcd.print("D");
} if (ldr1 < ldr2) { mySerial.write('E'); //lcd.print("E"); } else if (ldr1 > ldr2) { mySerial.write('F'); //lcd.print("F");
} else { mySerial.write('G'); //lcd.print("G");
} delay(200); // Add delay to avoid overwhelming the serial communication } |
#include <SoftwareSerial.h> SoftwareSerial mySerial(6,7); #include <Servo.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); Servo servo; int kipas = 10; int buzzer = 9; int putar = 120; int CURRENT_SENSOR_PIN = A0; int VOLTAGE_SENSOR_PIN = A1; int sensitivity = 10000; int adcvalue = 0; int offsetvoltage = 0; double Voltage = 0; double current = 0; char message; void setup() { servo.attach(11); Serial.begin(9600); mySerial.begin(9600); servo.write(putar); pinMode(kipas, OUTPUT); pinMode(buzzer, OUTPUT); pinMode(CURRENT_SENSOR_PIN, INPUT); pinMode(VOLTAGE_SENSOR_PIN, INPUT); lcd.begin(16, 2); lcd.init(); lcd.backlight(); } void loop() { float sensorValue = analogRead(VOLTAGE_SENSOR_PIN); float vol = (sensorValue * 5.0) / 1023.0; float voltage = vol * 5; adcvalue = analogRead(CURRENT_SENSOR_PIN); Voltage = (adcvalue / 1024.0) * 5000; current = ((Voltage - offsetvoltage) / sensitivity); float power = voltage * current; lcd.setCursor(0, 0); lcd.print("Tegangan: "); lcd.print(voltage); lcd.print("V"); lcd.setCursor(0, 1); lcd.print("Arus: "); lcd.print(current); lcd.print("A"); if (mySerial.available()) { message = mySerial.read(); mySerial.print(message); // Display received message on the LCD /*lcd.clear(); lcd.setCursor(0, 0); lcd.print("Msg received"); Serial.write("Komunikasi terdeteksi"); lcd.setCursor(0, 1);*/ if (message == 'A') { digitalWrite(buzzer, HIGH); Serial.println("1"); } else if (message == 'B') { digitalWrite(buzzer, LOW); Serial.println("2"); } if (message == 'C') { digitalWrite(kipas, HIGH); Serial.println("3"); } else if (message == 'D') { digitalWrite(kipas, LOW); Serial.println("4"); } if (message == 'E') { putar=putar++; servo.write(putar); lcd.print("5"); Serial.println("5"); delay(100); } else if (message == 'F') { putar=putar--; servo.write(putar); lcd.print("6"); Serial.println("6"); delay(100); } else if (message == 'G') { putar=putar-0; servo.write(putar); lcd.print("7"); Serial.println("7"); delay(100); } delay(200); // Delay to make sure the message is readable on the LCD //lcd.clear(); // Clear the LCD after displaying the message } } |
Download Listing Program Arduino1 dan klik disiniDownload Video demo klik disiniDownload Soft File Laporan klik disiniData Sheet
Download Datasheet Arduino Uno klik disiniDownload Data sheet Sensor Infrared klik disini
Download Datasheet Sensor LDR klik disini
Download Datasheet Sensor Voltage klik disini
Download Datasheet Motor DC klik disini
Download Datasheet Motor Servo klik disini
Download Datasheet LCD klik disiniDownload Datasheet Resistor klik disiniLibraryDownload Library Arduino Uno klik disiniDownload Library Sensor Infrared klik disiniDownload Library LCD klik disini
Tidak ada komentar:
Posting Komentar