- Vereiste componenten voor Arduino Solar Tracker:
- Hoe werkt een enkelassige solar tracker?
- Hoe bouw je een roterend zonnepaneel met Arduino:
- Schakelschema en uitleg:
- Eenassige zonnetracker met Arduino-code:
In dit artikel gaan we een Sun Tracking-zonnepaneel maken met Arduino, waarin we twee LDR's (lichtafhankelijke weerstand) gebruiken om het licht te detecteren en een servomotor om het zonnepaneel automatisch in de richting van het zonlicht te laten draaien.. Het voordeel van dit project is dat de zonnepanelen altijd het zonlicht volgen, altijd naar de zon gericht zijn om de hele tijd opgeladen te worden en de levering het maximale vermogen kunnen leveren. Het prototype is heel eenvoudig te bouwen. Hieronder vind je de volledige beschrijving van hoe het werkt en hoe het prototype is gemaakt.
Vereiste componenten voor Arduino Solar Tracker:
Hieronder volgen de componenten die nodig zijn om een zonnevolgsysteem met Arduino te bouwen, de meeste componenten zouden in uw plaatselijke winkel verkrijgbaar moeten zijn.
- Servomotor (sg90)
- Zonnepaneel
- Arduino Uno
- LDR's X 2 (lichtafhankelijke weerstand)
- 10K weerstanden X 2
- Batterij (6 tot 12 V)
Hoe werkt een enkelassige solar tracker?
In dit project werken LDR's als lichtdetectoren. Voordat we in detail treden, zullen we moeten begrijpen hoe de LDR werkt. LDR (Light Dependent Resistor), ook wel fotoresistor genoemd, is het lichtgevoelige apparaat. De weerstand neemt af wanneer het licht erop valt en daarom wordt het vaak gebruikt in donkere of lichtdetectorcircuits. Bekijk hier de verschillende circuits op basis van LDR.
De twee LDR's worden aan de twee zijden van het zonnepaneel geplaatst en de Servomotor wordt gebruikt om het zonnepaneel te draaien. De servo zal het zonnepaneel richting de LDR bewegen waarvan de weerstand laag zal zijn, dus richting de LDR waarop licht valt, op die manier blijft het het licht volgen. En als er wat licht op beide LDR valt, zal de servo niet draaien. De servo zal proberen het zonnepaneel te verplaatsen in de positie waar beide LDR's dezelfde weerstandsmiddelen hebben, waarbij dezelfde hoeveelheid licht op beide weerstanden valt en als de weerstand van een van de LDR verandert, draait het naar een lagere weerstand LDR. Controleer de Demonstratie video aan het einde van dit artikel.
Hoe bouw je een roterend zonnepaneel met Arduino:
Om het prototype te maken, moet u de onderstaande stappen volgen:
Stap 1:
Pak allereerst een klein stukje karton en maak aan een uiteinde een gaatje. We zullen de schroef erin steken om hem later met de servo te bevestigen.
Stap 2:
Plak nu twee kleine stukjes karton in een V-vorm met behulp van lijm of hot gun met elkaar en plaats er zonnepaneel op.
Stap 3:
Bevestig vervolgens de onderkant van de V-vorm aan het andere uiteinde van een klein stukje karton waarin je in de eerste stap een gat hebt gemaakt.
Stap 4:
Steek nu de schroef in het gaatje dat je op karton gemaakt hebt en steek hem door het gaatje in de servo. De schroef wordt bij aanschaf meegeleverd met de servomotor.
Stap 5:
Plaats nu de servo op een ander stuk karton. Het formaat van het karton moet groter genoeg zijn zodat je er een Arduino Uno, een breadboard en een batterij op kunt plaatsen.
Stap 6:
Bevestig de LDR's aan de twee zijden van het zonnepaneel met behulp van lijm. Zorg ervoor dat je de draden met de pootjes van de LDR's hebt gesoldeerd. Deze zul je later met de weerstanden moeten verbinden.
Stap 7:
Plaats nu de Arduino, de batterij en het breadboard op het karton en maak de verbinding zoals beschreven in het gedeelte Schakelschema en uitleg hieronder. Het uiteindelijke prototype wordt hieronder getoond.
Schakelschema en uitleg:
Het volledige schakelschema voor het arduino-project voor het volgen van zonne-energie wordt hieronder weergegeven. Zoals je kunt zien is het circuit erg eenvoudig en kan het gemakkelijk worden gebouwd met behulp van een klein breadboard.
In deze Arduino Solar Panel Tracker wordt Arduino gevoed door de 9V-batterij en worden alle andere onderdelen aangedreven door de Arduino. De door Arduino aanbevolen ingangsspanning is van 7 tot 12 volt, maar je kunt hem voeden binnen het bereik van 6 tot 20 volt, wat de limiet is. Probeer het binnen de aanbevolen ingangsspanning te voeden. Verbind dus de positieve draad van de batterij met de Vin van de Arduino en de negatieve draad van de batterij met de aarde van de Arduino.
Verbind vervolgens de servo met de Arduino. Verbind de positieve draad van de servo met de 5V van Arduino en de aardingsdraad met de aarde van de Arduino en sluit vervolgens de signaaldraad van Servo aan op de digitale pin 9 van Arduino. De servo helpt bij het verplaatsen van het zonnepaneel.
Verbind nu de LDR's met de Arduino. Verbind het ene uiteinde van de LDR met het ene uiteinde van de 10k-weerstand en verbind dit uiteinde ook met de A0 van de Arduino en verbind het andere uiteinde van die weerstand met de aarde en sluit het andere uiteinde van LDR aan op de 5V. Verbind op dezelfde manier het ene uiteinde van de tweede LDR met het ene uiteinde van de andere 10k-weerstand en verbind dat uiteinde ook met de A1 van Arduino en verbind het andere uiteinde van die weerstand met de aarde en verbind het andere uiteinde van LDR met 5V van Arduino.
Eenassige zonnetracker met Arduino-code:
Code voor deze op Arduino gebaseerde zonnepaneel-tracker is eenvoudig en wordt goed uitgelegd door opmerkingen. Allereerst zullen we de bibliotheek voor servomotor opnemen. Vervolgens initialiseren we de variabele voor de beginpositie van de servomotor. Daarna initialiseren we de variabelen die moeten worden gelezen van de LDR-sensoren en Servo.
# omvatten
sg90.atach (servopin) commando zal Servo lezen van pin 9 van Arduino. Vervolgens stellen we de LDR-pinnen in als inputpinnen zodat we de waarden van de sensoren kunnen aflezen en het zonnepaneel daarop kunnen bewegen. Vervolgens zetten we de servomotor op 90 graden, wat de beginpositie is voor de servo.
leegte setup () {sg90.attach (servopin); // bevestigt de servo op pin 9 pinMode (LDR1, INPUT); // De LDR-pin maken als input pinMode (LDR2, INPUT); sg90.write (initiële_positie); // Verplaats servo met een vertraging van 90 graden (2000); // met een vertraging van 2 seconden}
Vervolgens lezen we de waarden uit de LDR's en slaan we op in R1 en R2. Dan zullen we het verschil maken tussen de twee LDR's om de servo dienovereenkomstig te verplaatsen. Als het verschil tussen beide nul is, betekent dit dat dezelfde hoeveelheid licht op beide LDR's valt, zodat het zonnepaneel niet beweegt. We hebben een variabele met de naam error gebruikt en de waarde ervan is 5, het gebruik van deze variabele is dat als het verschil tussen de twee LDR's kleiner is dan 5, de servo niet beweegt. Als we dit niet doen, blijft de servo draaien. En als het verschil groter is dan foutwaarde (5) dan zal de servo het zonnepaneel bewegen richting de LDR, waar licht op valt. Bekijk de volledige code en demovideo hieronder.
int R1 = analogRead (LDR1); // leeswaarde van LDR 1 int R2 = analogRead (LDR2); // leeswaarde van LDR 2 int diff1 = abs (R1 - R2); // Berekening van het verschil tussen de LDR's int diff2 = abs (R2 - R1); if ((diff1 <= error) - (diff2 <= error)) {// als het verschil onder de fout zit, doe dan niets} else {if (R1> R2) {initial_position = --initial_position; // Verplaats de servo naar 0 graden} if (R1 <R2) {initial_position = ++ initial_position; // Verplaats de servo naar 180 graden}}
Zo bouw je dus een simpele Solar Panel Tracker, die als een zonnebloem automatisch naar het licht toe beweegt. Hier hebben we het zonnepaneel met laag vermogen gebruikt om het gewicht te verminderen, als u van plan bent om een hoog vermogen of een zwaar zonnepaneel te gebruiken, moet u de servomotor dienovereenkomstig kiezen.