Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Arduino Solar Tracker

Komponen dan persediaan

Arduino UNO
× 1
Motor servo mikro SG90
× 2
LDR, 5 Mohm
× 4
Resistor 330 ohm
× 4
Potensiometer putar (generik)
× 1
Sakelar Tombol Tekan, Tombol Tekan
× 2
Panel Surya Mini
× 1

Alat dan mesin yang diperlukan

Arduino IDE
Paralaks PLX-DAQ

Tentang proyek ini

Proyek ini menghadirkan bangku uji perangkat keras/lunak terbuka untuk pelacak surya. Prototipe yang diusulkan didasarkan pada pelacak surya sumbu ganda yang dikendalikan dengan Arduino Uno yang merupakan platform prototipe sumber terbuka berdasarkan perangkat keras dan perangkat lunak yang mudah digunakan. Pelacak surya dapat dikontrol secara otomatis dengan bantuan sensor LightDependent Resistor (LDR) atau secara manual menggunakan potensiometer. Selain itu, bangku tes ini menyediakan instrumentasi virtual berbasis Excel di mana data pelacak suryanya dapat direkam dan disajikan. Perangkat keras yang digunakan telah dipilih untuk menjadi murah, kompak dan serbaguna. Bangku tes yang diusulkan dirancang untuk membantu siswa mengembangkan pemahaman mereka tentang teori kontrol dan aplikasinya.

Bangku tes yang diusulkan disajikan pada Gambar. 1. Ini didasarkan pada pelacak surya yang dapat berputar secara otomatis untuk melacak matahari dengan bantuan empat sensor LDR dan dua servomotor (SM1 dan SM2), atau secara manual menggunakan potensiometer. Untuk beralih di antara dua mode (otomatis dan manual), tombol tekan digunakan. Tombol tekan lainnya digunakan untuk menghubungkan SM1 (servomotor atas-bawah) atau SM2 (servomotor kiri-kanan) ke potensiometer untuk mengontrol gerakannya. Selain itu, komputer digunakan sebagai instrumen virtual untuk memvisualisasikan mode dan arus, tegangan, dan daya panel PV menurut waktu di MS Excel. Papan Arduino Uno digunakan untuk mengimplementasikan semua persyaratan perangkat lunak sistem.

Desain mekanis

Seperti yang ditunjukkan pada Gambar. 2, model 3D desain berbantuan komputer (CAD) dari pelacak surya dirancang di CATIA. Ini terdiri dari panel PV, servomotor kiri-kanan dan atas-bawah, dan empat sensor LDR. Untuk sumbu horizontal, bantalan dipasang secara paralel dengan motor servo naik-turun untuk fleksibilitas yang lebih baik. Pelacak surya dirancang untuk memiliki dua derajat kebebasan, dari timur ke barat oleh servomotor kiri-kanan dan dari selatan ke utara oleh servomotor atas-bawah. Sensor LDR ditempatkan di keempat sudut panel PV dan dimasukkan ke dalam tabung gelap dengan lubang kecil di bagian atas untuk mendeteksi iluminasi matahari. Tabung gelap ini juga dianggap sebagai konsentrator radiasi dan digunakan untuk meningkatkan ketahanan pelacak surya.

Sistem perangkat keras

Gambar. 3 menyajikan rangkaian elektronik dari testbench yang diusulkan. Untuk mode otomatis, mikrokontroler mengubah nilai analog dari sensor LDR (pin A0 ke A3) menjadi digital. Kemudian ia mengontrol dua servomotor (atas-bawah dan kiri-kanan) menggunakan dua sinyal Pulse-Width Modulation (PWM) (pin 5 dan 6) untuk melacak matahari. Pergerakan rotasi terjadi dalam dua sumbu, secara azimuth dari timur ke barat menurut lintasan matahari harian dan elevasi dari selatan ke utara menurut lintasan matahari musiman. Untuk mode manual, potensiometer (pin A4) digunakan untuk mengontrol pergerakan dua motor servo, tombol tekan (pin 11) digunakan untuk menghubungkan potensiometer baik ke servomotor atas-bawah atau servomotor kiri-kanan. Selain itu, tombol lain (pin 12) digunakan untuk beralih di antara dua mode. Selanjutnya tegangan PV diukur melalui pin analog A5 Arduino, kemudian arus PV dihitung karena resistor beban sudah diketahui. Selanjutnya, arus PV, tegangan dan daya versus waktu dan mode aktual dikirim ke komputer untuk ditampilkan secara real-time di MS Excel.

Rangkaian sensor LDR dirancang sebagai rangkaian pembagi tegangan. Variasi intensitas cahaya sebanding dengan variasi tegangan keluaran pembagi. Bagian atas dari pembagi potensial adalah 5 V, ground berada pada 0 V, dan output dari pembagi tegangan dihubungkan ke input analog (A 0 misalnya) dari mikrokontroler. Selanjutnya, Analog to Digital Converter (ADC) dari mikrokontroler mengubah nilai analog yang dibaca oleh A 0 menjadi nilai digital antara 0 dan 1023 karena ADC dikodekan dalam 10 bit, dan menurut nilai ini, dimungkinkan untuk mengetahui tingkat cahaya. Nilai resistor yang digunakan pada pembagi tegangan adalah 330 .

Dua servomotor 180 derajat digunakan. Servomotor (MG996R) untuk mengontrol pelacak surya sesuai dengan sumbu vertikal, yang merupakan servomotor kiri-kanan. Dan motor servo mikro (SG90) untuk mengontrol pelacak surya sesuai dengan sumbu horizontal, yang merupakan motor servo naik-turun. Keuntungan dari servomotor adalah kita dapat mengontrol stop, run, arah putaran dan kecepatannya menggunakan kabel arus rendah tunggal yang terhubung langsung ke output mikrokontroler tanpa memerlukan driver apa pun. Motor servo yang digunakan dikendalikan oleh board Arduino UNO melalui kabel listrik 3 kabel seperti yang ditunjukkan pada Gambar 3, dua kabel untuk suplai dan satu kabel untuk PWM untuk mengontrol posisinya.

Desain perangkat lunak yang disematkan

Perangkat lunak yang disematkan adalah bagian yang akan disematkan di perangkat keras (Arduino Uno) untuk mengontrol dan memantau bangku tes pelacak surya. Perangkat lunak yang disematkan dirancang untuk memenuhi persyaratan berikut:

1. Bangku tes memiliki dua mode:manual dan otomatis. Tombol tekan terhubung ke pin 12 untuk beralih di antara dua mode.

2. Jika mode manual aktif, potensiometer dapat mengontrol servomotor baik dari timur ke barat untuk motor kiri-kanan atau dari selatan ke utara untuk motor atas-bawah. Tombol tekan terhubung ke pin 11 untuk mengalihkan potensiometer antara dua motor, baik itu mengontrol motor servo kiri-kanan atau motor servo naik-turun.

3. Jika mode otomatis aktif, algoritma yang disajikan pada Gambar. 4 akan dieksekusi. Yang terakhir menggunakan nilai analog yang dikembalikan oleh sensor LDR. Misalnya, dengan mempertimbangkan azimuth atau sumbu vertikal, nilai rata-rata dari dua LDR kanan dan dua LDR kiri dibandingkan dan jika rangkaian LDR kiri menerima lebih banyak cahaya, pelacak surya akan bergerak ke arah itu melalui servomotor kiri-kanan. Yang terakhir akan terus berputar hingga hasil selisihnya berada di kisaran [−10, 10]. Rentang ini digunakan untuk menstabilkan pengontrol dan setelah pelacak surya tegak lurus terhadap matahari, tidak ada kontrol lebih lanjut yang dilakukan. Sebaliknya, jika rangkaian LDR kanan menerima lebih banyak cahaya, solar tracker bergerak ke arah itu melalui servomotor kiri-kanan dan akan terus berputar hingga hasil selisihnya berada pada kisaran [−10, 10]. Cara yang sama digunakan untuk sumbu elevasi. Selain itu, kami juga menentukan radiasi rata-rata antara empat sensor LDR dan jika nilai ini kurang dari nilai kecil (8:nilai yang telah disesuaikan dan diuji secara praktis dan dikembalikan ketika iradiasi nol). Artinya, malam telah tiba. Dalam hal ini, solar tracker harus kembali ke posisi matahari terbit. Misalnya posisi terbit matahari dapat dicapai dengan menyetel 0 derajat pada servomotor kiri-kanan, dan 30 derajat pada servomotor atas-bawah. Ini dapat dengan mudah dilakukan melalui fungsi C “servox. write(angle)” disediakan oleh Arduino IDE.

4. Tegangan PV yang diperoleh melalui pin analog A5 harus diperlakukan dan digunakan untuk menghitung arus dan daya PV. Kemudian semua data ini dan mode sebenarnya harus dikirim melalui kabel USB ke komputer dan kemudian menyajikannya di MS Excel.

PLX-DAQ Excel Macro digunakan untuk akuisisi data dari mikrokontroler Arduino ke Excel Spreadsheet. Kita hanya perlu mendownloadnya. Setelah instalasi, folder bernama "PLX-DAQ" secara otomatis akan dibuat di PC yang di dalamnya ada pintasan bernama "PLX-DAQ Spreadsheet". Kemudian, untuk membangun komunikasi antara board dan Excel, kita hanya perlu membuka Spreadsheet dan menentukan pengaturan koneksi (Baud rate dan port) di jendela PLX-DAQ (Gbr. 5). Setelah itu, setelah mengklik "sambungkan", data output akan dikumpulkan dan ditampilkan secara real-time di Excel Spreadsheet

Prototipe

Gambar 6 menunjukkan pelacak surya dalam keadaan terpisah dan dirakit. Seperti yang disajikan, seluruh struktur telah diproduksi menggunakan pelat kayu, dan jelas bahwa semua komponen yang disebutkan telah digunakan untuk membangun pelacak surya dengan mode manual dan otomatis (sensor LDR, Arduino Uno, motor Servo, potensiometer, tombol tekan, dan panel PV kecil).

Gambar 7 menunjukkan seluruh bangku tes, pelacak surya dengan instrumentasi virtual, dan lampu buatan yang dapat memaparkan cahaya untuk menguji pelacak surya. Pelacak surya dan komputer terhubung melalui kabel USB. Setelah tegangan PV diperoleh, pengontrol memperlakukan informasi ini dan menggunakannya untuk menghitung arus dan daya PV. Kemudian, semua data ini dikirim ke komputer untuk disajikan di MSExcel. Dari Gambar. 5 dan 6, jelas bahwa bangku tes yang diusulkan kecil, fleksibel dan mudah digunakan. Hal ini dapat memungkinkan siswa, peneliti, dan insinyur untuk menerapkan algoritme mereka dengan cara yang mudah sebelum melanjutkan penerapan perangkat pelacak surya besar.


Kode

  • Perangkat Lunak Tertanam os bangku tes pelacak surya
Perangkat Lunak Tertanam os bangku tes pelacak suryaArduino
//Servo motor library#include //Inisialisasi variabelint mode =0;int ax =0; int buttonState1 =0; int buttonState2 =0; int prevButtonState1 =0;int prevButtonState2 =0; int ldrtopr=0; // LDR kanan atas int ldrtopl =1; // LDR kiri atas int ldrbotr =2; // LDR kanan bawah int ldrbotl =3; // LDR kiri bawah int topl =0;int topr =0; int botl =0;int botr =0;//Deklarasikan dua servosServo servo_updown;Servo servo_rightleft;int threshold_value=10; //pengukuran sensitivitasvoid setup(){ Serial.begin(9600); //setup serial connection //membuka port serial, set data rate ke 9600 bps Serial.println("CLEARDATA"); //hapus semua data yang sudah ada di Serial.println("LABEL,t,voltage,current,power,Mode"); //menentukan judul kolom (perintah PLX-DAQ) pinMode(12, INPUT); // Sakelar mode Tombol pinMode(11, INPUT); //Axis switch pinMode(A4, INPUT); //Potensiometer untuk gerakan kanan-kiri dan untuk gerakan naik-turun servo_updown.attach(5); //Gerakan naik-turun motor servo servo_rightleft.attach(6); //Gerakan kanan-kiri motor servo}void loop(){// pv_power();Mode char; float volt =analogRead(A5)*5.0/1023; tegangan mengambang =2 * volt; // Volt=(R1/R1+R2)*Tegangan / R1=R2=10Ohm => tegangan=2*volt) arus mengambang =tegangan/20; // I=tegangan/(R1+R2) daya apung =tegangan*arus; Serial.print("DATA, WAKTU,"); // perintah PLX-DAQ Serial.print(tegangan); //kirim tegangan ke port serial Serial.print(","); Serial.print(saat ini); //kirim arus ke port serial Serial.print(","); Serial.print(daya); //kirim power ke serial port Serial.print(","); // Serial.println(Mode); buttonState1 =digitalRead(12); if (buttonState1 !=prevButtonState1) { if (buttonState1 ==HIGH) { //Ubah mode dan nyalakan indikator yang benar if (mode ==1) { mode =0; } lain { modus =1; } } } prevButtonState1 =buttonState1; penundaan (50); // Tunggu selama 50 milidetik if (mode ==0) { Mode='M'; Serial.println(Mode); //kirim Mode "Manual" ke serial port manualsolartracker(); } else { // mode otomatis Mode ='A'; Serial.println(Mode); pelacak surya otomatis(); //mengirim Mode "Otomatis" ke port serial } }void automaticsolartracker(){ //menangkap nilai analog dari setiap LDR topr=analogRead(ldrtopr); //menangkap nilai analog dari LDR kanan atas topl=analogRead(ldrtopl); //menangkap nilai analog botr LDR kiri atas=analogRead(ldrbotr); //menangkap nilai analog bot LDR kanan botl=analogRead(ldrbotl); //menangkap nilai analog LDR kiri bot // menghitung rata-rata int avgtop =(topr + topl) / 2; //rata-rata LDR teratas int avgbot =(botr + botl) / 2; //rata-rata LDR bawah int avgleft =(atas + botl) / 2; //rata-rata LDR kiri int avgright =(topr + botr) / 2; //rata-rata LDR kanan //Dapatkan int diffelev =avgtop yang berbeda - avgbot; //Dapatkan perbedaan rata-rata antara LDR teratas dan LDR bot int diffazi =avgright - avgleft; //Dapatkan perbedaan rata-rata antara LDR kanan dan LDR kiri //pergerakan kiri-kanan solar tracker if (abs(diffazi)>=threshold_value){ //Ubah posisi hanya jika perbedaan cahaya lebih besar dari threshold_value if (diffazi> 0 ) { if (servo_rightleft.read() <180) { servo_rightleft.write((servo_updown.read() + 2)); } } if (diffazi <0) { if (servo_rightleft.read()> 0) { servo_rightleft.write((servo_updown.read() - 2)); } } } //Gerakan naik-turun solar tracker if (abs(diffelev)>=threshold_value){ //Ubah posisi hanya jika perbedaan cahaya lebih besar dari threshold_value if (diffelev> 0) { if (servo_updown.read() <180) { servo_updown.write((servo_rightleft.read() - 2)); } } if (diffelev <0) { if (servo_updown.read()> 0) { servo_updown.write((servo_rightleft.read() + 2)); } } } } void manualsolartracker(){ buttonState2 =digitalRead(13); if (buttonState2 !=prevButtonState2) { if (buttonState2 ==HIGH) { //Ubah mode dan nyalakan indikator yang benar if (axe ==1) { ax =0; } else { kapak =1; } } } prevButtonState2 =buttonState2; penundaan (50); // Tunggu selama 50 milidetik if (kapak ==0) { //kontrol gerakan kanan-kiri servo_rightleft.write(map(analogRead(A4), 0, 1023, 0, 180)); } else { // //mengontrol gerakan naik-turun servo_updown.write(map(analogRead(A4), 0, 1023, 0, 180)); } }

Skema


Proses manufaktur

  1. Arduino Digital Dice
  2. Pengontrol Game Arduino
  3. Solar Tracker V2.0
  4. Game Pixel Chaser
  5. Pelacak surya berbasis Internet of things (IoT)
  6. Arduino Repulsive Electromagnetic Levitation
  7. Arduino Home Controller Diaktifkan oleh Alexa
  8. NeoMatrix Arduino Pong
  9. Mengukur Radiasi Matahari dengan Arduino
  10. Game Roulette LED