PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nachführung Solarzelle mittels Servo



dr_Bal
15.07.2009, 03:13
Hi,

Ich arbeite mich gerade in die Atmega Controller ein und hier ist mal ein kleines Testprojekt. :-)

Ich fand ne alte Solarzelle und nen Servo in der Bastelkiste, also warum nicht mal ne Solarzelle mittels Servo und 2 LDRs der Sonne nachführen.

Gesagt getan und losgebaut, hier das Ergebniss:

2 LDR, einer links und einer rechts von der Solarzelle messen das Licht und der Atmega wertet es aus. Der Atmega bewegt dann das Servo in die Richtung wo es heller ist. das ganze macht er solange bis beide in etwa gleich Hell sind.
Mann kann im Code einen Puffer einstellen, wieviel Abstand zwischen den beiden Messergebnissen sein darf bis der Atmega reagiert.

Hier ein kleines Video davon:
http://www.youtube.com/watch?v=qcufMahoQEQ

Werde es wohl Morgen (heute) noch so abändern, das nur aller 10min gemessen wird um Strom zu sparen. Evtl. werde ich dann auch einen Attiny26 verwenden.

Das ganze soll, nicht hundertprozentig eine Funktion erfüllen, es geht mir nur darum mich in die Atmegas einzuarbeiten.


hier noch der Code:


'************************************************* *********
'* TEST Solarnachführung mittels Servo *
'* Ronny Drbal *
'* Email: ronny at ronbal de *
'* *
'* Servo am PORTD.5 LDR an ADC0 & ADC1 *
'* *
'************************************************* *********


$regfile = "m16def.dat" ' specify the used micro

$crystal = 8000000 ' used crystal frequency

$baud = 9600 ' use baud rate

$hwstack = 32 ' default use 32 for the hardware stack

$swstack = 10 ' default use 10 for the SW stack

$framesize = 40 ' default use 40 for the frame space



Config Servos = 1 , Servo1 = Portd.5 , Reload = 10 'Servo Konfigurieren
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'ADC Konfigurieren
Enable Interrupts
Start Adc
Dim Linkerldr As Word
Dim Rechterldr As Word
Dim Serv1 As Byte
Dim Rechts1 As Word
Dim Rechts2 As Word

Serv1 = 45 'Startposition des Servos
Servo(1) = Serv1 'Servo setzen

Do
Messen: 'Wert vom linken LDR einlesen
Linkerldr = Getadc(0) 'Wert vom rechten LDR einlesen
Rechterldr = Getadc(1) 'Werte ausgeben an die Serielle Schnittstelle
Print "links: " ; Linkerldr ;
Print " rechts: " ; Rechterldr ;
Print " SERVO POS: " ; Serv1

Rechts1 = Rechterldr + 1 'hier werden die AD Werte etwas gelättet :-)
Rechts2 = Rechterldr - 1
If Linkerldr > Rechts1 Then 'prüfen wo es heller ist
If Serv1 > 144 Then 'prüfen ob Servo schon an der Max pos ist
Goto Messen
End If
Serv1 = Serv1 + 1 'Servo eine position weiter
Servo(1) = Serv1
Waitms 50
Goto Messen

End If

If Linkerldr < Rechts2 Then
If Serv1 < 45 Then
Goto Messen
End If
Serv1 = Serv1 - 1
Servo(1) = Serv1
Waitms 50
Goto Messen

End If

Loop


End

Gebt doch mal feedback was ihr davon haltet.

VG
dr_bal

vohopri
15.07.2009, 09:37
Hallo Ronny,

interessantes Miniprojekt. Gefällt mir gut. Habe auch schon 4 Stück von diesen Zellen.

Leider kann ich die LDRs auf dem Video nicht erkennen. Dazu wollt ich nur sagen, dass sie nur dann gut funktionieren, wenn man etwas hat, das bei einer Abweichung Schatten wirft.

Aus meiner Erfahrung mit Solaranlagen würd ich sagen, dass 10 Minuten immer noch zu kurz bemessen ist. Auch da kostet die Nachführung mehr Energie als die Abweichung. Ich würde eher 15 - 30 Minuten schätzen, aber wirklich kann man das erst mit Kontrollmessungen sagen.

Nur zur Ergänzung und als Anregung für weitere Experimente:
Optimal ist eine Montage der Nachführachse parallel zur Erdachse. Wenn man dann 1x in der Woche den Höhenwinkel der Zelle nachjustiert ist die Angelegenheit schon sehr gut optimiert.

Weiter so und poste uns auch weiterhin deine Ergebnisse.

grüsse,
Hannes

MeckPommER
15.07.2009, 11:40
Nice :-)

Interressehalber: warum LDRs und nicht die Spannung der Solarzellen messen?

Gruß MeckPommER

Zachso
15.07.2009, 12:27
wenn du die spannung misst dann weißte ja nicht wo es heller ist und wo nicht, da du nur ein messergebnis hast, halt nur von deiner solarzelle. möchtest du jetzt die optimale position einstellen und nachführen dann müsste man durch probieren herausfinden wie die optimale position ist und das würde zu viel energie verbrauchen, darum ein lrd links und rechts.

ciao, Zachso

Thomas$
15.07.2009, 12:39
aber wenn man mehr solarzellen zur verfügung hat kann man das über die spannung machen

dr_Bal
15.07.2009, 12:52
danke für die Blumen :-)

@hannes

das mit dem Schatten dachte ich mir auch und wollte eigentlich nen Röhrchen (Schrumpfschlauch) über die LDRs machen damit sie etwas abgeschottet sind.
Jetzt beim Testen bei Tageslicht funktiniert es eigentlich sehr gut.
Die ADC werden ja mit 10bit gemessen und die 1024 Schritte ergeben schon ein gutes Messergebniss bei den unterschieden der beiden Sensoren.

Angeschlossen habe ich die LDRs mittels Spannungsteiler an den Atmega.

So ich habe jetzt mal noch die Spannung an der Zelle an den Atmega gelegt und lasse die mir auch über die Serielle Schnittstelle schicken.

dr_Bal
15.07.2009, 13:18
So ich nochmal.

Ich habe mal den Schaltplan gezeichnet (mein erster).

Könntet ihr mal drüberschauen ob das mit der Solarzelle und dem Akku klappt.
Wahrscheinlich eher nicht oder ? Zumindest wird es nicht effizient mit dem 7805 sein.

Also ich habe nen altes Akkupack aus einer Taschenlampe NIMH 3,6V 1800mah.
Ich habe die Solarzelle, welche bei vollen Sonnenschein um die 10V bringt.

Mein gedanke ich reduziere die Spannung auf 5V mit dem 7805, dahinter ne diode falls der Akku mal mehr Spannung als die Solarzelle hat.
Habe es auch mal so angeschlossen und der Akku läd auch, die frage ist nur wie lange er das so überlegen kann?

Da der Akku eh nicht gebraucht wird ist es jetzt mal nicht so schlimm wenn er drauf geht.

Aber wie würde man es richtig machen ?

Rofo88
15.07.2009, 13:50
Wie viel Strom bringt denn deine Solarzelle?

dr_Bal
15.07.2009, 14:04
die sollte 0,085A bringen und 0,190 Kurzschlusstrom haben, zumindest wenn es diese Version ist:

http://www.conrad.de/goto.php?artikel=112240


es könnte auch diese gewesen sein, da ich ja über 10V bei Sonne gemessen habe:

http://www.conrad.de/goto.php?artikel=112232

Rofo88
15.07.2009, 14:19
Den 7805 brauchst Du nicht, die höhere Spannung stört den Akku nicht. Der Strom ist für den Akku für ne Dauerladung zu groß also brauchst Du ne Ladeenderkennung. Ist für NiCd und NiMh leider nicht ganz so einfach.

p.s. Conrad-Links funktionieren nicht

dr_Bal
15.07.2009, 14:27
ok, die links gehen aber bei mir ??

Rofo88
15.07.2009, 14:31
Ja, aber nur bei Dir.
Auf jeder Artikelseite gibts den Link : Link auf diesen Artikel
Diesen musst Du dann reinstellen!

dr_Bal
15.07.2009, 14:51
so links sind geändert