- Nepieciešamās Arduino Solar Tracker sastāvdaļas:
- Kā darbojas vienas ass saules izsekotājs?
- Kā izveidot rotējošu saules paneli, izmantojot Arduino:
- Shēmas shēma un skaidrojums:
- Vienas ass saules izsekotājs, izmantojot Arduino kodu:
Šajā rakstā mēs izgatavosim saules izsekošanas saules paneli, izmantojot Arduino, kurā mēs izmantosim divus LDR (no gaismas atkarīgu rezistoru), lai uztvertu gaismu, un servomotoru, lai automātiski pagrieztu saules paneli saules gaismas virzienā. Šī projekta priekšrocība ir tā, ka Saules paneļi vienmēr sekos saules gaismai, vienmēr būs vērsti pret sauli, lai visu laiku uzlādētos, un var nodrošināt piegādi ar maksimālu jaudu. Prototipu ir ļoti viegli uzbūvēt. Zemāk jūs atradīsit pilnu aprakstu par tā darbību un prototipa izgatavošanu.
Nepieciešamās Arduino Solar Tracker sastāvdaļas:
Tālāk ir norādīta sastāvdaļa, kas nepieciešama, lai izveidotu saules izsekošanas sistēmu, izmantojot Arduino. Lielākajai daļai komponentu jābūt pieejamiem vietējā veikalā.
- Servo motors (sg90)
- Saules panelis
- Arduino Uno
- LDR X 2 (no gaismas atkarīgs rezistors)
- 10K rezistori X 2
- Akumulators (no 6 līdz 12 V)
Kā darbojas vienas ass saules izsekotājs?
Šajā projektā LDR darbojas kā gaismas detektori. Pirms mēs sīki aprakstīsim, mums būs jāsaprot, kā darbojas LDR. LDR (gaismas atkarīgais rezistors), kas pazīstams arī kā foto rezistors, ir gaismjutīga ierīce. Tā pretestība samazinās, kad gaisma uz to nokrīt, un tāpēc to bieži izmanto tumšās vai gaismas detektora ķēdē. Šeit pārbaudiet dažādas ķēdes, kuru pamatā ir LDR.
Abi LDR atrodas saules paneļa abās pusēs, un saules paneļa pagriešanai tiek izmantots servomotors. Servo virzīs saules paneli pret LDR, kura pretestība būs zema, vidēji pret LDR, uz kuru krīt gaisma, tādā veidā tas turpinās sekot gaismai. Un, ja uz abiem LDR krīt kaut kāds gaismas daudzums, tad servo negriezīsies. Servo mēģinās pārvietot saules paneli pozīcijā, kur abiem LDR būs vienādi pretestības līdzekļi, kur abiem rezistoriem kritīs vienāds gaismas daudzums, un, ja viena no LDR pretestība mainīsies, tas pagriežas pret zemāku pretestību LDR. Pārbaudiet demonstrācijas video šī raksta beigās.
Kā izveidot rotējošu saules paneli, izmantojot Arduino:
Lai izveidotu prototipu, jums būs jāveic šādas darbības:
1. darbība:
Vispirms paņemiet nelielu kartona gabalu un vienā galā izveidojiet caurumu. Mēs ievietosim tajā skrūvi, lai vēlāk to salabotu ar servo.
2. darbība:
Tagad ar līmi vai karstu pistoli nofiksējiet divus mazus kartona gabalus V formā un novietojiet uz tā saules bateriju.
3. solis:
Tad piestipriniet V formas apakšējo pusi maza kartona gabala otrā galā, kurā pirmajā solī izveidojāt caurumu.
4. solis:
Tagad ielieciet skrūvi caurumā, kuru izveidojāt uz kartona, un ievietojiet to caur caurumu servo. Skrūve nāk ar servomotoru, kad to pērkat.
5. darbība:
Tagad novietojiet servo uz cita kartona gabala. Kartona izmēram jābūt pietiekami lielam, lai uz tā varētu ievietot Arduino Uno, maizes dēli un akumulatoru.
6. solis:
Ar līmes palīdzību piestipriniet LDR abās saules paneļa pusēs. Pārliecinieties, vai esat pielodējis vadus ar LDR kājām. Jums tie būs jāpieslēdz vēlāk.
7. solis:
Tagad ielieciet Arduino, akumulatoru un kartona paneli uz kartona un izveidojiet savienojumu, kā aprakstīts shēmā Shēma un Paskaidrojums. Galīgais prototips ir parādīts zemāk.
Shēmas shēma un skaidrojums:
Pilna shēmas shēma saules izsekošanas arduino projektam ir parādīta zemāk. Kā redzat, ķēde ir ļoti vienkārša, un to var viegli izveidot, izmantojot nelielu paneļu.
Šajā Arduino saules paneļu izsekotājā Arduino darbina 9V akumulators, un visas pārējās daļas darbina Arduino. Arduino ieteicamais ieejas spriegums ir no 7 līdz 12 voltiem, bet jūs to varat darbināt robežās no 6 līdz 20 voltiem. Mēģiniet to darbināt ieteicamā ieejas sprieguma robežās. Tātad savienojiet akumulatora pozitīvo vadu ar Arduino Vin un negatīvo akumulatora vadu ar Arduino zemi.
Pēc tam pievienojiet servo ar Arduino. Savienojiet servo pozitīvo vadu ar Arduino 5 V un iezemēto vadu ar Arduino zemi un pēc tam pievienojiet Servo signāla vadu Arduino digitālajai tapai 9. Servo palīdzēs pārvietot saules paneli.
Tagad pievienojiet LDR ar Arduino. Savienojiet vienu LDR galu ar 10k rezistora vienu galu un pievienojiet šo galu arī Arduino A0 un savienojiet šī rezistora otru galu ar zemi un savienojiet otru LDR galu ar 5V. Līdzīgi pievienojiet otrā LDR vienu galu otra 10k rezistora galam un pievienojiet šo galu arī Arduino A1 un savienojiet šī rezistora otru galu ar zemi un savienojiet otru LDR galu ar 5V no Arduino.
Vienas ass saules izsekotājs, izmantojot Arduino kodu:
Šī Arduino bāzes Saules paneļa izsekotāja kods ir viegli un labi izskaidrojams ar komentāriem. Pirmkārt, mēs iekļausim servomotora bibliotēku. Tad mēs inicializēsim mainīgo servomotora sākotnējai pozīcijai. Pēc tam mēs inicializēsim mainīgos, lai tos nolasītu no LDR sensoriem un Servo.
# iekļaut
Komanda sg90.atach (servopin) nolasīs servo no Arduino 9. kontakta. Tālāk mēs iestatījām LDR tapas kā ievades tapas, lai mēs varētu nolasīt sensoru vērtības un atbilstoši tam pārvietot saules paneli. Pēc tam mēs iestatām servomotoru 90 grādos, kas ir servo sākotnējā pozīcija.
void setup () {sg90.attach (servopin); // piestiprina servo 9. tapā pinMode (LDR1, INPUT); // LDR tapas izveidošana kā ievades pinMode (LDR2, INPUT); sg90.write (sākotnējais_pozīcija); // Pārvietojiet servo ar 90 grādu kavēšanos (2000); // dodot 2 sekunžu kavēšanos}
Tad mēs nolasīsim vērtības no LDR un saglabāsim R1 un R2. Tad mēs izdarīsim atšķirību starp abiem LDR, lai attiecīgi pārvietotu servo. Ja starpība starp tām būs nulle, tas nozīmē, ka uz abiem LDR krīt vienāds gaismas daudzums, tāpēc saules panelis nekustēsies. Mēs izmantojām mainīgo ar nosaukumu kļūda, un tā vērtība ir 5, šī mainīgā lieluma izmantošana ir tāda, ka, ja starpība starp abiem LDR būs mazāka par 5, tad servo nekustēsies. Ja mēs to nedarīsim, servo turpinās griezties. Un, ja starpība ir lielāka par kļūdas vērtību (5), tad servo virzīs saules paneli LDR virzienā, uz kuru krīt gaisma. Pārbaudiet pilnu kodu un demonstrācijas video zemāk.
int R1 = analogRead (LDR1); // vērtības nolasīšana no LDR 1 int R2 = analogRead (LDR2); // vērtības nolasīšana no LDR 2 int diff1 = abs (R1 - R2); // Aprēķinot starpību starp LDR int diff2 = abs (R2 - R1); ja ((diff1 <= kļūda) - (diff2 <= kļūda)) {// ja starpība ir zem kļūdas, tad nedariet neko citu} if {if (R1> R2) {initial_position = --initial_position; // Virziet servo uz 0 grādu}, ja (R1 <R2) {sākotnējā_pozīcija = ++ sākotnējā_pozīcija; // Virziet servo 180 grādu virzienā}}
Tā jūs varat izveidot vienkāršu Saules paneļa izsekotāju, kas automātiski virzīsies uz gaismu kā saulespuķe. Šeit mēs izmantojām mazjaudas saules paneli svara samazināšanai, ja plānojat izmantot lielas jaudas vai smagu saules paneli, jums attiecīgi jāizvēlas Servo motors.