MODUL 4

MIKROPROSESOR DAN MIKROKONTROLER



OPTIMALISASI PHOTOVOLTAIC DENGAN SISTEM SUNTRACKING


1. Pendahuluan   [Kembali]

            Penggunaan energi terbarukan semakin meningkat seiring dengan kebutuhan global untuk mengurangi ketergantungan pada bahan bakar fosil dan dampak negatif terhadap lingkungan. Salah satu sumber energi terbarukan yang paling menjanjikan adalah energi matahari, yang dapat diubah menjadi energi listrik melalui photovoltaic (PV). Namun, efisiensi konversi energi pada sistem PV sering kali masih terbatas, sehingga diperlukan upaya optimalisasi untuk meningkatkan performa sistem.
         Salah satu metode yang efektif untuk meningkatkan efisiensi sistem PV adalah dengan menggunakan sistem suntracking, yaitu mekanisme yang memungkinkan panel surya mengikuti pergerakan matahari sepanjang hari, sehingga panel selalu berada pada posisi optimal untuk menerima radiasi matahari secara maksimal.
          Pada project ini implementasi sistem suntracking dapat dilakukan dengan menggunakan 5 sensor seperti sensor LDR (Light Dependent Resistor), sensor infrared (IR), sensor tegangan, sensor arus (ACS712), dan sensor suhu (Pt100). Sensor LDR digunakan untuk mendeteksi intensitas cahaya matahari, sedangkan sensor IR berfungsi untuk mendeteksi kehadiran hama seperti hewan tikus dan kucing yang dapat merusak dan mengganggu sistem. Sensor tegangan dan arus digunakan untuk memantau output listrik dari panel surya, sehingga sistem dapat mengevaluasi kinerja dan mengidentifikasi kondisi optimal. Sensor suhu Pt100 digunakan untuk mengukur suhu lingkungan dan suhu panel surya, karena efisiensi panel dapat dipengaruhi oleh suhu.
         Integrasi berbagai sensor ini dalam sistem suntracking memiliki manfaat utama seperti peningkatan efisiensi energi, pemantauan dan pengendalian yang akurat, serta adaptabilitas terhadap kondisi lingkungan. Dengan orientasi yang selalu optimal terhadap matahari, panel surya dapat menyerap lebih banyak radiasi dan menghasilkan lebih banyak listrik. Penggunaan berbagai sensor memungkinkan sistem untuk memantau kondisi operasional secara real-time dan melakukan penyesuaian yang diperlukan untuk mempertahankan kinerja optimal. Selain itu, sensor-sensor ini dapat mendeteksi perubahan lingkungan sehingga sistem tetap efisien dalam berbagai kondisi.
            Oleh karena itu, pembuatan sistem optimalisasi photovoltaic dengan sistem suntracking yang menggunakan sensor LDR, sensor infrared, sensor tegangan, sensor arus (ACS712), dan sensor Pt100 adalah langkah inovatif yang berpotensi besar untuk meningkatkan efisiensi energi panel surya, mendukung upaya peningkatan penggunaan energi terbarukan, dan berkontribusi pada keberlanjutan lingkungan.

2. Tujuan   [Kembali]
  1. Mengetahui cara membuat sistem optimalisasi photovoltaic dengan system suntracking dengan menggunakan mikrokontroler Arduino UNO.
  2. Agar dapat mengimplementasikan komunikasi UART pada sistem optimalisasi photovoltaic dengan system suntracking.
  3. Mengetahui dan memahami prinsip kerja dari sensor dan komponen yang digunakan pada rangkaian, seperti LDR, Infrared, Voltage Sensor, Current Sensor (ACS712) dan Sensor Pt100.
  4. Agar memahami konsep rancangan desain sistem optimalisasi photovoltaic dengan system suntracking secara sederhana dengan prototype.

3. Alat dan Bahan   [Kembali]

Alat :

1. Solder


Bahan :

  • Sensor Infrared


Pinout



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

Spesifikasi:
  • 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:

  1. Supply : 3.3 V – 5 V (arduino available)
  2. Output Type: Digital Output (0 and 1) 
  3. Inverse output
  4. Include IC LM393 voltage comparator
  5. Sensitivitasnya dapat diatur 
  6. Dimensi PCB size: 3.2 cm x 1.4 cm

  • Sensor Pt100 

    Features :
    • 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

   

Buzzer Features and Specifications:
    • 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 

 DC Motor Specifications
    • 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 


  • LCD


         Spesifikasi :
    • 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 

Spesifikasi:
    • 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. 

  • Jumper 


  • Adaptor 



4. Dasar Teori  [Kembali]
  • 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
  Sensor infrared (IR) adalah perangkat elektronika yang dirancang untuk mendeteksi radiasi inframerah dalam spektrum elektromagnetik. Radiasi inframerah adalah bentuk radiasi panas yang tidak terlihat oleh mata manusia. Sensor infrared mengonversi energi radiasi inframerah menjadi sinyal listrik yang dapat diukur.

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)


    Sensor ACS712 adalah sensor arus berbasis efek Hall yang digunakan untuk mengukur arus AC dan DC. Sensor ini bekerja berdasarkan prinsip efek Hall, di mana medan magnet yang dihasilkan oleh arus yang mengalir melalui konduktor akan menciptakan tegangan yang proporsional dengan medan magnet tersebut. Prosesnya dimulai dengan arus yang mengalir melalui konduktor internal sensor, menciptakan medan magnet di sekitarnya. Elemen sensor Hall mendeteksi medan magnet ini dan menghasilkan tegangan Hall yang kemudian diubah menjadi sinyal output analog yang proporsional dengan arus yang diukur.

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

    
    Resistor merupakan komponen elektronika dasar yang digunakan untuk membatasi jumlah arus yang mengalir dalam satu rangkaian.Sesuai dengan namanya, resistor bersifat resistif dan umumnya terbuat dari bahan karbon.
    Nilai Resistor yang berbentuk Axial adalah diwakili oleh Warna-warna yang terdapat di tubuh (body) Resistor itu sendiri dalam bentuk Gelang. Umumnya terdapat 4 Gelang di tubuh Resistor, tetapi ada juga yang 5 Gelang.
    Gelang warna Emas dan Perak biasanya terletak agak jauh dari gelang warna lainnya sebagai tanda gelang terakhir. Gelang Terakhirnya ini juga merupakan nilai toleransi pada nilai Resistor yang bersangkutan.
Tabel dibawah ini adalah warna-warna yang terdapat di tubuh Resistor:

Tabel Kode Warna Resistor Perhitungan untuk Resistor dengan 4 Gelang warna :


Rangkaian Pull Up Dan Pull Down Resistor:
    Pull Up dan Pull Down Resistor merupakan suatu rangkaian elektronika yang digunakan untuk mengatur kondisi tegangan output yang masuk ke pin I/O mikrokontroler.
    Fungsi utama dari Rangkaian Pull UP dan Pull DOWN Resistor ini adalah untuk menghindari "Floating logic". Floating logic adalah suatu fenomena dalam rangkaian mikrokontroler dimana mikrokontroler tidak dapat membaca nilai tegangan yang masuk ke pin I/O. Hal tersebut dikarenakan tegangan yang masuk tidak memenuhi nilai 5 Volt dan tidak juga 0 Volt. Oleh karena itu mikrokontroler sulit untuk menentukan sinyal tersebut termasuk katagori HIGH (5V) atau LOW (0 V).
    Pada dasarnya yang membedakan rangkaian resistor Pull Up dan Pull Down hanya penempatan resistor dan push button saja.

    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.


    Maka dari pada 2 point kriteria diatas kita bisa mengacu pada datasheet microcontroller yang digunakan dan kompleksitas rangkaian pendukung microcontoller. Dan untuk menentukan nilai resistor yang digunakan sobat kita mencoba trial error dan bisa juga menggunakan rumus hukum Ohm :
Resistansi (Ohm) = Volt (V) / Ampere (A)

Contoh : Volt input 5 volt dan Arus maksimum input arduino 50 mA sehingga : R = 5 V/ 0.05 A
R = 100 Ohm

    Sehingga nilai minimum resistor yang digunakan bisa 100 Ohm tanpa toleransi, dan jika ingin aman harus diatas 100 Ohm jika tidak ingin arduino rusak, contoh umum resistor 330 ohm, 1 K Ohm, 10 k Ohm.

  • Rangkaian Pull Up Resistor
    Resistor pull-up adalah resistor yang digunakan untuk mencegah nilai float (nilai mengambang) pada kondisi high dengan menambahkan sebuah resistor pada jalur sumber tegangan dan paralel dengan jalur input ke microcontroller.
    Untuk Pull-up resistor, salah satu kaki resistor dihubungkan ke kutub Vcc (5v/3.3v pada Microcontroler), sedangkan kaki resistor yang lain dicabangkan, satu ke pin input MCU, dan yang lain ke switch on/off untuk disambungkan ke ground (0V).


    Pada gambar diatas kita bisa lihat, Vcc tersambung ke pin, sehingga pin akan mendapatkan signal HIGH, dan ketika push button ditekan, arus Vcc akan mengalir ke ground (0v), sehingga pin akan mendapat signal LOW. Kondisi ini mirip (tidak sama) dengan kondisi "normaly close".

  • Rangkaian Pull Down Resistor
    Resistor Pull Down merupakan resistor yang digunakan untuk mencegah nilai floating pada kondisi low dengan menambahkan resistor pada jalur ground.

    Pada rangkaian Pull-down resistor, salah satu kaki resistor dihubungkan ke kutub ground (0v), sedangkan kaki resistor yang lain dicabangkan, satu ke pin input MCU, dan yang lain ke switch on/off untuk disambungkan ke Vcc (5v/3.3v).


    Pada rangkaian pull-down, Vcc tidak terhubung dengan pin, tetapi pin terhubung dengan ground (0v), pin dalam keadaan LOW, dan ketika push button ditekan, Vcc akan terhubung dengan pin, kondisi pin sekarang menjadi HIGH. Rangkaian ini mirip dengan kondisi "normally open".

  • LCD 
    LCD atau Liquid Crystal Display adalah suatu jenis media display (tampilan) yang menggunakan kristal cair (liquid crystal) untuk menghasilkan gambar yang terlihat. Teknologi Liquid Crystal Display (LCD) atau Penampil Kristal Cair sudah banyak digunakan pada produk-produk seperti layar Laptop, layar Ponsel, layar Kalkulator, layar Jam Digital, layar Multimeter, Monitor Komputer, Televisi, layar Game portabel, layar Thermometer Digital dan produk-produk elektronik lainnya.
    Teknologi Display LCD ini memungkinkan produk-produk elektronik dibuat menjadi jauh lebih tipis jika dibanding dengan teknologi Tabung Sinar Katoda (Cathode Ray Tube atau CRT). Jika dibandingkan dengan teknologi CRT, LCD juga jauh lebih hemat dalam mengkonsumsi daya karena LCD bekerja berdasarkan prinsip pemblokiran cahaya sedangkan CRT berdasarkan prinsip pemancaran cahaya. Namun LCD membutuhkan lampu backlight (cahaya latar belakang) sebagai cahaya pendukung karena LCD sendiri tidak memancarkan cahaya. Beberapa jenis backlight yang umum digunakan untuk LCD diantaranya adalah backlight CCFL (Cold cathode fluorescent lamps) dan backlight LED (Light-emitting diodes).
    LCD atau Liquid Crystal Display pada dasarnya terdiri dari dua bagian utama yaitu bagian Backlight (Lampu Latar Belakang) dan bagian Liquid Crystal (Kristal Cair). Seperti yang disebutkan sebelumnya, LCD tidak memancarkan pencahayaan apapun, LCD hanya merefleksikan dan mentransmisikan cahaya yang melewatinya. Oleh karena itu, LCD memerlukan Backlight atau Cahaya latar belakang untuk sumber cahayanya. Cahaya Backlight tersebut pada umumnya adalah berwarna putih. Sedangkan Kristal Cair (Liquid Crystal) sendiri adalah cairan organik yang berada diantara dua lembar kaca yang memiliki permukaan transparan yang konduktif.
    Bagian-bagian LCD atau Liquid Crystal Display diantaranya adalah:
    • 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)
Dibawah ini adalah gambar struktur dasar sebuah LCD:

 


        Proses inisialisasi pin arduino yang terhubung ke pin LCD RS, Enable, D4, D5, D6, dan D7, dilakukan dalam baris LiquidCrystal (2, 3, 4, 5, 6, 7), dimana LCD merupakan variabel yang dipanggil setiap kali intruksi terkait LCD akan digunakan. 

       Pada Proyek Akhir ini LCD dapat menampilkan karakternya dengan menggunakan library yang bernama LiquidCrystal. Berikut ada beberapa fungsifungsi dari library LCD: 
  1. 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. 
  2. clear() Instruksi clear() digunakan untuk membersihkan pesan text. Sehingga tidak ada tulisan yang ditapilkan pada LCD.
  3. 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. 
  4. 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

    
    Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir sama dengan loud speaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan suara. 


5. Prosedur   [Kembali]

    a. Prosedur  [Kembali]

    • Prosedur percobaan:

  1. Download library yang diperlukan pada bagian download dalam blog.     
  2. Buka proteus yang sudah diinstal untuk membuat rangkaian.
  3. Tambahkan komponen seperti Arduino, sensor, dan perangkat lainnya lalu susun menjadi rangkaian.
  4. Buka Arduino IDE yang sudah diinstal.
  5. Di Arduino IDE, pergi ke menu "File" > "Preferences".Pastikan opsi
  6. "Show verbose during compile" dicentang untuk mendapatkan informasi detail saat kompilasi.
  7. Salin kode program Arduino pada blog kemudian tempelkan program tadi ke Arduino IDE.
  8. Kompilasikan kode dengan menekan tombol "Verify" di Arduino IDE.
  9. Cari dan salin path file HEX yang dihasilkan selama proses kompilasi.
  10. Kembali ke Proteus dan pilih Arduino yang telah Anda tambahkan di rangkaian.
  11. Buka opsi "Program File" dan tempelkan path HEX yang telah Anda salin dari Arduino IDE.
  12. Jalankan simulasi di Proteus.
  13. b. Hardware dan Diagram Blok  [Kembali]

    • Hardware
  1.  Laptop


    c. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

    • Rangkaian Simulasi
            
    Rangkaian Proteus

    Rangkaian Prototipe

     


    • Prinsip Kerja
          Jadi pada sistem Optimalisasi Photovoltaic Dengan Sistem Suntracking ini menggunakan 5 buah sensor yaitu sensor LDR, sensor Infrared, sensor Voltage, sensor Arus (ACS712) dan sensor suhu (Pt100). Terdapat juga output dari sistem ini antara lain Motor Servo, Motor Dc, Buzzer, dan LCD .
            Sensor LDR pada rangkaian ini terdapat 2 buah, dimana fungsi dari sensor ini sebagai "suntracking" atau untuk mendeteksi keberadaan matahari. Saat salah satu sensor ini mendeteksi arah matahari maka akan terdapat perbedaan nilai tegangan antara LDR 1 dan LDR 2 maka motor servo yang berfungsi untuk menggerakkan panel surya akan bergerak ke arah sensor LDR mendeteksi intensitas cahaya yang tinggi. Pada arduino jika intensitas cahaya yang di deteksi LDR semakin tinggi maka resistansi yang dibaca LDR akan semakin rendah, contohnya saat LDR 1 (kiri) < LDR 2 (kanan) maka motor servo akan berputar kearah kiri, begitupun sebaliknya.
             Sensor Suhu (Pt100) pada rangkaian ini berfungsi untuk mendeteksi suhu dari permukaan panel surya, dimana jika suhu yang di deteksi >25° maka akan mengaktifkan kipas angin yang berfungsi untuk menstabilkan suhu panel surya kembali. Karna jika suhu yang di deteksi >25°, output energi dari panel akan berkurang sekitar 0,36%-0,4% untuk setiap derajat di atas ambang batas tersebut. Jadi, penting untuk menjaga suhu panel agar tetap mendekati suhu optimal agar efisiensi tetap tinggi.
        Sensor infrared pada rangkaian ini berfungsi untuk mendeteksi keberadaan hewan seperti tikus, kucing, dll yang dapat menggangu dan merusak sistem. Dimana jika sensor ini mendeteksi keberadaan hewan tersebut maka sensor akan berlogika 1 dan mengaktifkan buzzer untuk memberikan peringatan pada manusia bahwa ada hewan yang mendekat ke sistem panel surya.
            Sensor arus dan sensor tegangan pada rangkaian ini berfungsi untuk memonitoring arus dan tegangan yang keluar dari panel surya, hal ini berguna agar sistem dapat mengevaluasi kinerja dan mengidentifikasi kondisi optimal dari panel surya. Monitoring arus dan tegangan ini akan di tampilkan langsung pada LCD, dimana data yang di tampilkan merupakan data real-time hal ini juga menjadi alasan mengapa kami meletakan sensor arus dan tegangan pada arduino ke dua.


    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

}


Slave (Arduino 2)

#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

  }

}


        e. Video Demo  [Kembali]





        f. Download File  [Kembali]

Download Rangkaian klik disini
Download HTML klik disini
Download Flowchart Arduino1 dan Arduino2
Download Listing Program Arduino1 dan Arduino2
Download Video demo klik disini
Download Soft File Laporan klik disini

    Data Sheet

Download Datasheet Arduino Uno klik disini
Download Data sheet Sensor Infrared klik disini
Download Datasheet Sensor LDR klik disini
Download Datasheet Sensor Voltage klik disini 
Download Datasheet Sensor Arus (ACS712) klik disini 
Download Datasheet Sensor Suhu (Pt100) klik disini 
Download Datasheet Motor DC klik disini
Download Datasheet Motor Servo klik disini
Download Datasheet LCD klik disini
Download Datasheet Resistor klik disini

 Library 

Download Library Arduino Uno klik disini
Download Library Sensor Infrared klik disini
Download Library LCD klik disini


 
















Komentar

Postingan populer dari blog ini