Hier scheint es ja einige zu geben, die sich recht gut auskennen mit programmieren und so. Vielleicht kann mir ja jemand helfen: Für eine Prüfung müssen wir nämlich bei einer Solarzelle messen, wie viel Strom sie erzeugt, das soll aber den ganzen Tag über regelmäßig von alleine passieren. Wir haben einen Microcontroller, der soll die Werte ablesen und speichern. Nun müsssen wir aber ein Programm schreiben, welches dem Microcontroller sagt er soll eben diese Werte(den Ertrag den die Solarzelle bringt) regelmäßig speichern. Meine frage: Wie programmiere ich so was?
Was hast Du für Vorkenntnisse? Was ist vorgegeben (Mikrocontroller, Programmiersprache, ...)?
An einer Stelle sagst du , du willst den Strom messen, an einer anderen du willst den "Ertrag" (was ist das für eine physikalische Größe?) messen/speichern. Werde dir erst einmal über deine Ziele klar. Solange du diese nicht genau formulieren kannst, bist du weit davon entfernt ein Programm zur Lösung zu schreiben. Ein Ansatz könnte sein: Zur Lösung einer Schulaufgabe müssen wir (ausfüllen welche phys. Größe du Messen willst) über einen Zeitraum von (ausfüllen) x(ausfüllen) -mal messen. Daraus soll berechnet werden Größe x,y,z. (Die Gleichungen zur Berechnung solltest du eigentlich selbst wissen...) Mir stehen zur Verfügung (Hardwarebeschreibung) und Entwicklungsumgebung (Softwarebeschreibung). (Es macht einen wesentlich besseren Eindruck wenn du noch folgendes anhängst.) Soweit bin ich schon gekommen (angehängtes Programm) Ich habe Probleme weil das, das und das passiert. Es soll aber das das und das passieren.
Entschuldigung...Ich bin noch ziemlicher Anfänger in diesen Sachen( ich bin ja auch erst 16). Ehrlich gesagt ist das das erste programm, das ich schreibe. Wir haben uns schon einige beispielprogramme angeguckt und die gesamte Anleitung über den Microcontroller gelesen und versucht zu verstehen. Also: Programmiersprache ist CC BASIC - Ich kann euch auch noch genau sagen was das für ein Microcontroller ist, wenn es wichtig ist, ich müsste nur mal meine Freundinn fragen. Wir wollen die Solarzelle in die Sonne stellen, von Sonnenaufgang bis Sonnenuntergang,also etwa 12 h. Währe es nicht möglich, das der Microcontroller jede halbe Stunde oder jede Stunde speichert wie viel Strom in der letzten Stunde durch die Solarzelle erzeugt wurde. Wenn das nicht möglich sein sollte, dann reicht es uns sicher auch wenn der Microcontroller jede halbe Stunde speichert, wie viel Strom gerade erzeugt wird. Wir wollen hinterher eine Kurve oder ein Diagramm zeichen, bei dem man sieht, zu welcher Uhrzeit am Tag am meisten Strom erzeugt wurde, wann am wenigsten usw. Was für eine physikalische Größe?...ich würde sagen: Volt, für den Strom oder?
Die Einheit des el. Stroms ist Ampere [A]. Volt [V] ist die Einheit der el. Spannung. Du kannst zum einen den aktuellen Strom messen, der durch die Solarzelle fließt (in Ampere), oder das ganze über die Zeit integrieren* und damit wohl in etwa "den erzeugten Strom in einem gewissen Zeitraum" erhalten (in Amperestunden [Ah]). * Das Integrieren wird auf dem Mikrocontroller letztendlich zu einer Aufsummierung führen. Beispielsweise jede Minute den Strom messen (und unterstellen, dass er sich innerhalb der Minute nicht (stark) verändert hat. Pro Minute fließt bei einem Strom von einem Ampere also eine Ladung (nichts anderes ist Strom * Zeit) von 1 Ampereminute bzw. 1/60 Amperestunde. Du hättest also eine Variable als "Stromzähler" (eigentlich: Ladungszähler). Du misst jede Minute den aktuellen Strom und addierst jede Minute zur Stromzählervariable aktueller_strom * 1 minute hinzu. Über den Tag hin wird der Wert der Variable also immer größer und entspricht der "erzeugten" Ladung der Solarzelle. Ich weiss nicht ob es mir gelungen ist, ein bisschen Licht ins Einheitendurcheinander zu bringen. Werde dir bitte ersteinmal klar, was du eigentlich messen willst. Stelle dann konkrete Fragen und dir wird wahrscheinlich geholfen. (Und belies dich bitte etwas zum Thema. Es muss ja nicht gleich das komplette Datenblatt zum Mikrocontroller sein, vielleicht hätte Wikipedia zum Thema Strom/Spannung/Ladung oder so auch schon etwas geholfen :-) Nicht so gern wird hier gesehen "ich hab ein Projekt. Wie mach ich das (kaut mir die Lösung vor)". Worauf meist eine konstruktive Antwort kommt ist "Ich hab hier ein Projekt (genaue Beschreibung..). Ich möchte das und das machen. Das und das hab ich probiert, aber es funktioniert nicht. Stattdessen passiert das und das. Wo liegt mein Denkfehler?") So, das war nun aber wirklich genug Offtopic von mir :-)
Ich schätze mal, daß der Orginalposter überhaupt erst mal einen Ansatz sucht, sein Thema zu strukturieren und algorithmisch zu artikulieren. Hardware und Software ist da vermutlich noch etwas weiter weg. Wobei - er schrub ja er hätte einen Microcontroller. @Lucky: Wie Wolfram schrieb, mußt du dir erst mal über grundlegende Dinge Gedanken machen: Eine Solarzelle erzeugt von sich aus Spannung wenn die Sonne drauf scheint. Die entnehmbare Energiemenge (dein "Ertrag") hängt ab von der zugeführten Energiemenge multipliziert mit einem Wirkungsgrad. Wenn die Solarzelle 100 Watt an Solarenergie zugeführt bekommmt, und einen Wirkungsgrad von 10% hat, kann ihr also 10 Watt entnommen werden. Ganz schnell wirst du merken, daß eine zeitliche Berücksichtigung notwendig ist. Also 1 Sekunde lang 10 Watt aus dem Teil rausgesaugt, dann hast du 10 Wattsekunden an Energie abgezapft (Wieviele Kilo-Watt-Stunden das sind kannst du selbst ausrechnen, auch wieviel die kontinuierliche Entnahme von 10 Watt über eine Stunde ergibt) Jetzt kommen 2 Dinge in die Überlegung: 1. Du wirst vielleicht nicht immer das maximum an elektrischer Energie aus der Solarzelle rausholen können oder wollen (wechselnder Verbraucher). Wenn du nur 1 Watt anforderst, wird auch nur 1 Watt geliefert) 2. Du wirst vielleicht nicht kontinuierlich gleichartige Sonneneinstrahlung haben (nachts ist ziemlich dunkel) --> Um deine Energie zu messen, brauchst du regelmäßig Info (Meßwerte) über Spannung (U), entnommenen Strom (I) und Zeittakt, und mit P=U*I kannst du Leistung bzw. Energiemenge (P*t) errechnen z.B. 01. Sek. U=12,01 V I=1,02 A P=12,2502 Ws 02. Sek. U=12,02 V I=1,01 A P=12,1402 Ws etc. Jetzt kommt es drauf an was du speichern möchtest bzw. was du wegwerfen möchtest an Information. Wenn du es einfach machen willst, dann multiplizierst du einfach die Werte, und addierst auf, stellst z.B. die Werte in einem Display dar. Du läßt das solange laufen bis ein Überlauf auftritt oder du den Stecker ziehst. In der Anzeige stünde also in etwa: nach 1 Sekunde: "in 1 sek erzeugt: 12,2502 Wattsekunden" nach 2 Sekunde: "in 2 sek erzeugt: 24,3904 Wattsekunden" etc. Vielleicht möchtest du es ja aber komfortabler haben und noch weitere Infos behalten oder hinzufügen, oder die Werte "nach außen" weiterleiten, damit man eine tolle Energie-Entnahme-Grafik damit erstellen kann? Da ist deiner Fantasie freien Lauf gelassen ... Da kommen in der
> Da kommen in der
nein, es kommen keine Inder. Der Text hing einfach noch irgendwo unten
am Bildschirm und hat sich versteckt ...
OK, ich meld mich wieder. Ich informier mich mal ein bisschen über Strom und spannung und so :\
Mit "PC-Programmierung" hat das hier ja rein gar nichts zu tun, daher -> verschoben.
Und ja. Prinzipiell kann man das schon speichern. Auf einem AVR zb. kann man das wunderbar in ein EEPROM speichern. Einmal am Tag wird dann der PC mit deinem µC verbunden (zb. über eine serielle Schnittstelle) und schickt dem µC ein Kommando, so dass der µC die gespeicherten Daten über die Schnittstelle rausrückt. Ist eine Möglichkeit. Eine andere Möglichkeit wäre es, dem µC einen SD Karten Slot zu verpassen und den µC seine Daten auf eine SD Karte schreiben zu lassen. Auf dem PC gibt es dann ein Programm, das diese Daten lesen kann und auswertet. Oder .... Es gibt noch viele Möglichkeiten was man machen könnte. Aber ich denke erst mal solltest du mit den Grundlagen anfangen und dir deine ersten Sporen in der µC Programmiererei verdienen. Vom Einfachen zum Komplexen.
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.