Hallo Gemeinde, ich bin gerade dabei mir eine Solarnachführung zu bauen. Die Hardware dazu habe ich so gut wie fertig. Sie besteht aus zwei Schrittmotoren für die zweiachsige Nachführung (angesteuert mit den L297/L298-Bausteinen), einer Controllerplatine mit dem ATmega 16 und einem Lichtsensor aus vier Fotodioden. Nun stellt sich mir aber das Problem ein entsprechendes Programm in "C" schreiben zu müssen. Da ich jedoch darin keine Erfahrung habe und ich mich im Netz schon fast zu Tode gesucht habe, wäre es toll, wenn jemand einen Tipp oder Link für mich hätte (evtl. auch mit Quellcode-Beispielen). Ich danke allen recht herzlich im voraus.
Hier kannst du dich bezüglich Schrittmotoren schlaulesen: http://www.mikrocontroller.net/articles/Schrittmotoren
da wärs wohl gut mal deinen wissensstand zu kennen... ist jetzt das C das problem, also hast du schon (mit anderen sprachen) µController programmiert, oder ist das hier dein einstieg in die thematik? in letzterem fall sei dir wohl das avr gcc tutorial hier von der seite empfohlen.
Hallo Derwissel, mein Problem liegt im Umsetzen der C-Befehle auf diese Situation. Bis jetzt ist mein Wissensstand erst beim Setzen von Ausgängen des Atmega16 angekommen. Also ist es für mich noch einen Riesenschritt weit entfernt, eine Auswertung der Helligkeitswerte und daraus folgende Ansteuerung der Schrittmotoren hinzubekommen. Grüße
mh interessante sache.. also, du willst das solarmodul drehen und neigen, nehme ich an.. da werden deine fotosensoren wahrscheinlich kreuzförmig angeordnet sein. du drehst halt bis beide sensoren auf der waagerechten den selben wert (oder zumindest in etwa) aufweisen, und machst dann das gleiche mit dem neigungswinkel.? -> ist mir jetzt nur mal so aus den fingern gesogen, völlig ohne ahnung ob das praktikabel/sinnvoll ist. situation richtig erfasst? MfG
Danke für den Link, aber diese Informationen kantte ich bereits und da liegt auch nicht mein Problem. Grüße
Hallo derwissel, die Situation hast du richtig erkannt. Ich bräuchte jedoch Tipps für die Gestaltung des C-Programms Grüße
Alfred Flöckchen schrieb: > mein Problem liegt im Umsetzen der C-Befehle auf diese Situation. Bis > jetzt ist mein Wissensstand erst beim Setzen von Ausgängen des Atmega16 > angekommen. > Also ist es für mich noch einen Riesenschritt weit entfernt, eine > Auswertung der Helligkeitswerte und daraus folgende Ansteuerung der > Schrittmotoren hinzubekommen. Nuja mit Variablen wirst du ja schon gerechnet haben in C. Musst halt eine AD Wandlung machen und dann mit den entsprechenden gewonnen Werten über einen Regelalgorithmus arbeiten. Solch einen Alogrithmus musst du dir entweder raussuchen oder selbst konstruieren. Das ist allerdings nicht trivial. Ich hatte dazu 2 Semester Vorlesung an der Uni, aber derart dezidierte Kenntniss beraucht man ja nicht für solch eine einfache Regelaufgabe. Bei einem guten Regelalgorithmus sollte in deinem Fall das MPPT in jedem Fall eine Rolle spielen. http://de.wikipedia.org/wiki/Regler schau dir besonders mal PID und seine abgeschwächten Versionen und Konsorten an ...
Hallo ubimbo, danke für deinen Beitrag.Dies hilft mir jedoch leider nicht beim Erstellen des Programms.Ich kenne mich mit Reglern schon aus, das Problem liegt nur am C-Code und dessen Umsetzung. Ich suche eigentlich einen Quellcode, den ich für meine Zwecke abwandeln kann.
Hallo michael_h45, Danke für den Link, kennst du oder jemand anderes hier im Forum vielleicht noch ein C-Programm, das nicht ganz so umfangreich ist (ohne Uhr, ich brauche nur die Helligkeitsauswertung der Fotodioden (4 Stück in Pyramdienform) und die Ansteuerung der Schrittmotoren zur helligkeitsgesteuerten 2 achsigen Nachführung(neigen und drehen)) Grüße
Du hast es vielleicht schon gemerkt: Hier wird dir keiner dein Programm schreiben. Die ungeschriebenen Forenrichtlinien sagen: Du gibst erst mal Quelltext vor und das Forum hilft dir dann deine Fehler auszubügeln und Misverständnisse aufzuklären. ALs erstes würde ich mal den ganzen Komplex Schrittmotoren ignorieren und mich auf die Auswertung der Sensoren konzentrieren. Die werden höchst wahrscheinlich als SPannungsteiler angeschlossen sein, sodass du mit dem ADC die SPannungen messen kannst und aus dem Vergleich der Messwerte eruieren kannst, welcher Sensor stärker beschienen ist. Das ist dein erstes Ziel: 2 Sensoren in Betrieb nehmen und mit einer LED anzeigen welcher davon stärker beschienen ist. Eine LED ansteuern kannst du ja und wie man den ADC auswertet findest du ebenfalls im AVR-GCC-Tutorial inklusive fertiger Auswerteroutinen. Also fang einfach mal mit diesem ersten Zwischenziel an zu programmierern. Lass dich nicht von der vermeintlichen Komplexität der kompletten Aufgabe ins Boxhorn jagen. Kleine Schritte machen, die man überprüfen kann (zb indem eine LED aufleuchtet). Und wenn ein Schritt erledigt ist, dann kommt der nächste Schritt drann. So funktioniert das nun mal. Es ist ja schliesslich DEIN Projekt. Also solltest auch du es durchziehen. In den 3 Tagen seit deiner ersten Fragestellung wäre das auch als Neuling schon alles machbar gewesen.
Ich wuerd einfach beginnen und eine Kommunikation einbauen. Mit der seriellen Schnittstelle zum PC. Dann, nachdem die geht, den ADC, die Sensoren messen lassen und vom PC her abfragen. Dann wenn diese Werte Sinn machen, vom PC her via Kommunikation die Motoren ansteuern. Dann einen Sensoralgorithmus aufsetzen und davon die Motoren ansteuern. Waehrend desssen mit dem PC zuschauen was der Algorithmus so macht.
Und hatten wir nicht erst vor einigen Wochen (wahrscheinlich zum wiederholten Mal) einen Schüler der hier sein "Solarnachführungsprojekt" bauen lassen wollte? Ich erinnere mich da düster an eine langwierige Diskussion über den Anschluss der Sensoren mittels Spannungsteiler. In dem Thread könnten Infos oder gar Quelltexte stecken...
>Dann einen Sensoralgorithmus aufsetzen und davon die Motoren ansteuern. >Waehrend desssen mit dem PC zuschauen was der Algorithmus so macht. Genau. Dann sieht man auch das es wenig Sinn macht das Solarmodul um 12:00 Uhr nach links zu drehen nur weil da mal ne Wolke am Himmel erscheint. Die Sonne wandert konstant nach rechts. Die Daten wo sie am Himmel erscheint sind bekannt. Dafür gibt es Tabellen. Eine analoge Nachführung zur maximalen Helligkeit belastet nur die Mechanik und macht keinen Sinn.
Das müsste er sein: Beitrag "komme mit dem A/D-Wandler vom Atmega8 nicht klar. (Sonnennachführung, Spannungen vergleichen)"
Nimm einen Polarmount-Satellitenmotor. Drehe alle 10 Minuten. Sonnenbahnen sind bekannt, da muß man keine aufwändige Sensorik betreiben.
Erst mal vielen Dank für die ganzen Informationen. Meine Mechanik und Elektronik habe ich bereits entwickelt(Selbst) und bin noch dabei diese fertig zu verdrahten.Also deshalb wird mir der Tipp mit dem Polarmount-Satellitenmotor auch nichts mehr bringen, aber trotzdem vielen Dank dafür. Natürlich habe ich auch niemals verlangt, dass irgend einer hier mir ein Programm schreiben soll. Ich bin nur für jeden Tipp oder Link dankbar, der mir in Sachen C-Programmierung zu meinem Zweck hilfreich erscheint. Ich bin nunmal Elektroniker und kein Programmierer.Als ich noch in der Ausbildung war hatte man so etwas noch nicht gemacht, wobei es heute schon im Lehrplan steht.Das einzigste was ich noch ein wenig behersche ist Java, Abel und SPS 5/7.Aber mit "C" hatte ich bisher noch nichts am Hut. Dennoch werde ich es mal versuchen, da ich das ganze aus Hobby mache und nicht wie der faule Schüler aus dem Link von Zitroneneis. Übrigens, was Moderator "kbuchegg" schrieb:"In den 3 Tagen seit deiner ersten Fragestellung wäre das auch als Neuling schon alles machbar gewesen".Mit dem hat er ganz bestimmt recht, wenn man vielleicht sonst nichts anderes zu tun hat. Als Berufstätiger mit Familie ist dies leider nicht so einfach als manche sich das so denken. Seine Gedankenanregungen zum Projekt hören sich aber gut an, diese werde ich mal so auprobieren. Die restlichen der anderen Mitglieder sind natürlich auch sehr hilfreich. Ich danke euch allen für die Hilfe.
Alfred Flöckchen schrieb: > Meine Mechanik und Elektronik habe ich bereits entwickelt(Selbst) und > bin noch dabei diese fertig zu verdrahten.Also deshalb wird mir der Tipp > mit dem Polarmount-Satellitenmotor auch nichts mehr bringen, aber Diagnose: mindestens leichte Beratungsresistenz. Fuer dieses Problem ist die beschriebene Sensorik nicht geeignet, weil nicht gegen Umwelteinfluesse bestaendig. Du hast Fotodioden als Sensoren. Da reicht der sprichwoertliche Fliegensch.ss und die Messwerte stimmen nicht mehr. citb
>Ich bin nunmal Elektroniker und kein Programmierer.
Wir sind nicht Programmierer, sowas gibt's eigentlich gar nicht. Wir
sind irgendwas und schreiben nebenbei mal auch noch ein Prograemmchen.
Sorry,dann bist du halt "Irgendwas". Hätte ich das nur vorher gewusst :-) Mir fiel halt grad nichts besseres ein.
Danke für dein Angebot, leider suche ich wie schon beschrieben, kein so aufwendiges Programm mit Uhrzeit/Datum und sonstigem Schnick Schnack. Das Programm soll einfach nur die Werte der Fotodioden vergleichen und meine Schrittmotoren für Neigen und Drehen ansteuern.Ich brauche dazu auch keine Einzellizenz oder sonstiges, da ich das nur aus Hobby bastel.Ob das alles Sinn macht oder nicht mit den Fotodioden, ist auch jedem selbst überlassen, da das Teil später nicht effektiv genutzt wird. Andernfalls hätte ich dein Angebot vielleicht angenommen, aber solch ein Programm welches du mir anbietest gibt es doch schon in diesem Forum für umme. Wollte ich dieses, würde ich ja hier nicht um Mithilfe beten. Ich möchte einfach nur ein simples Programm haben bzw. Tipps wie ich dieses erstellen kann.
Dann richte Dich nach dem Vorgehen, was Karl Heinz Buchegger um 20:40 vorgeschlagen hat. citb
Oh, das gibt Reklamationen. Was passiert, wenn (brightness_left == brightness_right)? Also nachbessern!. citb
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.