Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Zonnepaneel Sun Tracker - Telefoonoplader

Componenten en benodigdheden

Arduino UNO
× 1
Servo's (Tower Pro MG996R)
9 gram servo die geen externe voeding nodig heeft
× 1
Fotoweerstand
× 2
Weerstand 10k ohm
× 2
2,5V naar 5V boost-converter - USB aangepast
× 1
Zonnepaneel - Hobbymaat
Elk klein paneel is voldoende, hoe hoger de output, hoe beter, maar houd het klein en licht
× 2

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

Arduino IDE

Over dit project

Groen worden

Ik werk al een tijdje in de duurzame energie-industrie in Australië en sleutel aan Arduinos, maar pas tijdens dit project besloot ik uiteindelijk om de twee te combineren en mijn eigen kleine zonne-energieapparaat te bouwen. Een kleine opmerking vooraf, dit project vereist duidelijk 5V om de Arduino en servo van stroom te voorzien, die worden gebruikt om de output van zonnepanelen te maximaliseren die in het beste geval 3,4V produceren. Het betaalt zich dus niet bepaald uit. Het concept is echter schaalbaar, dus als je dit concept bijvoorbeeld zou gebruiken op een reeks van 8 panelen die 12V produceren, dan zou je de Arduino van stroom kunnen voorzien en je telefoon kunnen opladen zonder een externe voedingsbron. Ik ben van plan dit op een dag te doen en zal hier een link toevoegen als het gebeurt.

Terwijl ik hier ben, kan ik maar beter mijn bronnen vermelden...

Het doe-het-zelf-leven - http://www.the-diy-life.com/arduino-solar-tracker/

Brown Dog-gadgets - http://www.instructables.com/id/Solar-Altoids-USB-Charger/

Beide zijn goede bronnen van informatie over het onderwerp en waar ik het concept vandaan heb.

AAN DE SLAG

Dus allereerst heb je zonnepanelen nodig. Ik heb er twee gebruikt, hoewel je er zoveel kunt gebruiken als je wilt, denk eens aan hoeveel een servo van 9 gram kan optillen / verlagen (maak het niet te zwaar). De panelen die ik vond, hadden een vermogen van 1,5 V, 0,75 W, wat tegenwoordig aan de onderkant beschikbaar is. Maar ze waren licht en goedkoop en aangezien dit een proof of concept-project voor mij is, is de output niet super belangrijk.

Ik heb mijn twee panelen langs de rand samengevoegd met epoxy. Om de panelen in een string te verbinden, soldeert u gewoon de positieve draad van het ene paneel aan de negatieve draad van het andere, zodat u een positieve en negatieve draad overhoudt. Bevestig uw twee LDR's aan elke kant van het zonnepaneel (oost en west), en soldeer het ene uiteinde van een jumperdraad aan elk van hun leads. Het is gemakkelijker om een ​​verbindingsdraad te solderen als u het uiteinde van één kant afknipt en de draad ongeveer 5 mm stript om de draden bloot te leggen .

Om de Arduino de LDR's te laten lezen, hebben we voor elk een spanningsdelercircuit nodig. Zie hier voor spanningsdeler. In dit circuit is de LDR R1 en we gebruiken een weerstand van 10 kohm voor R2 en verbinden jumperdraden met de Arduino waar de twee weerstanden samenkomen. Als u dit project op een breadboard bouwt, gaat één LDR-kabel naar de spanningsdeler, de andere naar de positieve stroomrail. Zie het Fritzing-diagram hieronder.

De Tracker-structuur

Het volgende dat u moet bouwen, is een draaibare steunstructuur waarop het paneel kan zitten. Mijn ontwerp is in feite een lengte van verenstaal ondersteund door twee A-frames. De onderkant van de panelenreeks heeft kleine houten stutten, met gaten voor het verenstaal. Ik heb het hele ding gemaakt van balsahout om het goedkoop, gemakkelijk en licht te houden, maar als dit een vaste waarde zou zijn, zou je het willen van dun staal of behandeld multiplex. Ik heb het bouwen van de draaibare steun niet erg goed gedocumenteerd, maar de video hieronder zou je moeten laten zien hoe het is gedaan, evenals de locatie van de servo. Ik heb de mijne gebouwd met het paneel in een neerwaartse hoek, om te kunnen kijken de basis van de structuur naar het noorden, dus hoe het paneel ook zwaait terwijl het de zon volgt, het zal altijd een beetje naar het noorden worden gekanteld om de output te maximaliseren. (Ik ben op het zuidelijk halfrond)

De servo monteren

De servo zit op een van de steunbalken van de A-framestructuur en tilt een kant van het paneel op/neer. Ik heb wat verenstaal gevouwen met een tang om gehaakte uiteinden te krijgen, je kunt het door je paneelsteun en servo-arm lussen, misschien moet je de gaten in de servo-arm verbreden om in het staal te passen, ik gebruikte de kleinste boor die ik kon vinden. Lijm het staal niet in de servo-arm of paneelsteun, omdat het in de gaten moet kunnen draaien om het paneel soepel op te tillen. Als het eenmaal op zijn plaats zit, haal je het paneel van de structuur, zodat alleen de servo overblijft, zodat je wat kunt kalibreren.

De servo kalibreren

Open een nieuwe schets en voer de volgende code in.

#include Servo myservo1; // Maak een servo-object om de servoint pos =10 te besturen; void setup () { myservo1.attach (9); // koppelt het servo-object aan PWM-pin 9}void loop() {myservo1.write(pos);} 

Upload naar je Arduino en kijk waar de servo naartoe gaat. Blijf de 'pos'-waarde tussen 0 en 180 in de schets wijzigen en upload de schets opnieuw, totdat je de posities vindt waar de servo-arm recht op en neer wijst. Dat zijn je max en min waarden. Voor mij was het 15 en 140. Als de waarde op de een of andere manier overlapt van 180-terug naar 0, verwijder dan de servo-arm en verplaats deze zodat deze correct kan worden uitgelijnd.

Plaatsen in samen

Ga je gang en sluit alles aan en voer de volgende schets in.

//Sun Tracker Sketch ////Deze schets is ontworpen voor gebruik met een 9gram-servo, die rechtstreeks vanuit de Arduinio kan worden gevoed zonder een externe //stroombron. Voor een fritzing-diagram, zie Github-repository //https://github.com/nickalanf/Arduino--Projects//De sectie Seriële monitor is voor foutopsporingsdoeleinden, of voor algemeen belang,// zodra het apparaat correct functioneert, kan worden uitgeschakeld////Sketch by FIELDING - 8/2/18#include Servo servo; // Maak een servo-object om de servoint eLDRPin =A0 te besturen; // Wijs pinnen toe aan de LDR'sint wLDRPin =A1;int eastLDR =0; // Maak variabelen om op te slaan in LDR-metingen in westLDR =0; int verschil =0; //Maak een variabele om de twee LDR'sint-fout =10 te vergelijken; // Variabele voor is dat er een merkbaar verschil is tussen de LDR'sint servoSet =130; // Variabele voor positie van servo - zal verschillend zijn voor elke devicevoid setup () { servo.attach (9); // hecht het servo-object aan PWM pin 9 Serial.begin (9600); }void loop() { eastLDR =analogRead(eLDRPin); // Lees de LDR-waarden westLDR =analogRead (wLDRPin); if (eastLDR <400 &&westLDR <400) {//Controleer of er weinig licht is op beide LDR's terwijl (servoSet <=140 &&>=15) { // zo ja, stuur panelen terug naar het oosten voor de zonsopgang servoSet ++; servo.schrijven (servoSet); vertraging (100); } } verschil =eastLDR - westLDR; // Controleer het verschil if (verschil> 10) { // Stuur het paneel naar de LDR met een hogere waarde if (servoSet <=140) { servoSet ++; servo.schrijven (servoSet); } } else if (verschil <-10) { if (servoSet>=15) { servoSet --; servo.schrijven (servoSet); } } Serial.print(eastLDR); //Seriële monitor kan handig zijn voor het debuggen/instellen van Serial.print(" - "); //Gebruik het om te zien of uw LDR's merkbaar verschillen wanneer Serial.print(westLDR); //Er schijnt evenveel licht op hen, zo ja, corrigeer met de foutwaarde Serial.print(" - "); Serial.print(verschil); Serieel.print(" - "); Serial.print(servoSet); // Verfijn de servo-instellingen om de beschikbare swing te maximaliseren Serial.print (" - "); Serieel.println("."); vertraging(100);} 

Open de seriële monitor en schijn licht op de LDR's. Probeer het gelijkmatig op beide te schijnen en controleer of de verschilwaarde die naar de seriële monitor wordt afgedrukt, is. Als het iets groter is dan ongeveer 25 of kleiner dan -25, moet u een foutkalibratie toevoegen. Voeg de relevante foutwaarde toe aan de code en voeg die waarde vervolgens toe aan of trek deze af van de relevante LDR. Als de verschilwaarden dicht bij elkaar liggen, zou het goed moeten zijn om het te laten zoals het is.

Je bent klaar om het te testen! het gemakkelijkst is om een ​​donkere kamer in te gaan en met een zaklamp/lamp. zwaai het licht langzaam van de ene LDR naar de andere en kijk hoe het paneel beweegt. Je kunt ook één LDR bedekken en het paneel moet van die LDR wegzwaaien.

BONUS- TELEFOONLADER

Als u daadwerkelijk gebruik wilt maken van de panelenuitgang, kunt u een 2,5V-5 V DC-DC boost-converter rechtstreeks aansluiten op de kabels die van de panelen komen. Het is een volledig gescheiden circuit van de arduino/breadboard. Houd er rekening mee dat een standaardtelefoon wordt opgeladen met 5 V, en uw panelen leveren mogelijk 5 V maar een lage stroomsterkte, dus als uw batterij vol is of het zonlicht laag is, heeft u niet genoeg vermogen om op te laden. De gemakkelijkste manier om dit te omzeilen is door simpelweg meer panelen toe te voegen!

Code

  • Zonvolger
Sun TrackerVerwerking
//Sun Tracker Sketch ////Deze schets is ontworpen voor gebruik met een 9gram-servo, die rechtstreeks vanuit de Arduinio kan worden gevoed zonder een externe //stroombron. Voor een fritzing-diagram, zie Github-repository //https://github.com/nickalanf/Arduino--Projects//De sectie Seriële monitor is voor foutopsporingsdoeleinden, of voor algemeen belang,// zodra het apparaat correct functioneert, kan worden uitgeschakeld////Sketch by FIELDING - 8/2/18#include Servo servo; // Maak een servo-object om de servoint eLDRPin =A0 te besturen; // Wijs pinnen toe aan de LDR'sint wLDRPin =A1;int eastLDR =0; // Maak variabelen om op te slaan in LDR-metingen in westLDR =0; int verschil =0; //Maak een variabele om de twee LDR'sint-fout =10 te vergelijken; // Variabele voor is dat er een merkbaar verschil is tussen de LDR'sint servoSet =130; // Variabele voor positie van servo - zal verschillend zijn voor elke devicevoid setup () { servo.attach (9); // hecht het servo-object aan PWM pin 9 Serial.begin (9600); }void loop() { eastLDR =analogRead(eLDRPin); // Lees de LDR-waarden westLDR =analogRead (wLDRPin); if (eastLDR <400 &&westLDR <400) {//Controleer of er weinig licht is op beide LDR's terwijl (servoSet <=140 &&>=15) { // zo ja, stuur panelen terug naar het oosten voor de zonsopgang servoSet ++; servo.schrijven(servoSet); vertraging (100); } } verschil =eastLDR - westLDR; // Controleer het verschil if (verschil> 10) { // Stuur het paneel naar de LDR met een hogere waarde if (servoSet <=140) { servoSet ++; servo.schrijven(servoSet); } } else if (verschil <-10) { if (servoSet>=15) { servoSet --; servo.schrijven(servoSet); } } Serial.print(eastLDR); //Seriële monitor kan handig zijn voor het debuggen/instellen van Serial.print(" - "); //Gebruik het om te zien of uw LDR's merkbaar verschillen wanneer Serial.print(westLDR); //Er schijnt evenveel licht op hen, zo ja, corrigeer met de foutwaarde Serial.print(" - "); Serial.print(verschil); Serieel.print(" - "); Serial.print(servoSet); // Verfijn de servo-instellingen om de beschikbare swing te maximaliseren Serial.print (" - "); Serieel.println("."); vertraging(100);}

Schema's


Productieproces

  1. Zonnecel
  2. Real-time data-acquisitie van zonnepaneel met behulp van Arduino
  3. Solar Tracker V2.0
  4. Internet of things (IoT)-gebaseerde zonne-tracker
  5. Zonnestelsel dat de zon volgt
  6. SmartPostBox
  7. Servogestuurd, lichtvolgend zonnepaneelplatform
  8. Dubbelassig zonne-trackerpaneel met automatische en handmatige modus
  9. Arduino - PV MPPT-zonnelader
  10. Zonnepaneel:kwaliteitsproblemen en belangrijke controlepunten
  11. Productieproces voor zonnepanelen:hoe wordt een zonnepaneel gemaakt?