Forum: Mikrocontroller und Digitale Elektronik wie sage ich Microcontroller soll werte speichern (c++ basic


von Lucky (Gast)


Lesenswert?

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?

von Severino R. (severino)


Lesenswert?

Was hast Du für Vorkenntnisse?

Was ist vorgegeben (Mikrocontroller, Programmiersprache, ...)?

von Wolfram (Gast)


Lesenswert?

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.

von Lucky (Gast)


Lesenswert?

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?

von Gast (Gast)


Lesenswert?

> Volt, für den Strom oder?

??

von Lucky (Gast)


Lesenswert?

Jaha, ärger mich nicht. :(

von Gast123 (Gast)


Lesenswert?

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 :-)

von Wegstabenverbuchsler (Gast)


Lesenswert?

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

von Wegstabenverbuchsler (Gast)


Lesenswert?

> Da kommen in der

nein, es kommen keine Inder. Der Text hing einfach noch irgendwo unten 
am Bildschirm und hat sich versteckt ...

von Lucky (Gast)


Lesenswert?

OK, ich meld mich wieder. Ich informier mich mal ein bisschen über Strom 
und spannung und so :\

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mit "PC-Programmierung" hat das hier ja rein gar nichts zu tun, daher -> 
verschoben.

von Karl H. (kbuchegg)


Lesenswert?

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.

von STK500-Besitzer (Gast)


Lesenswert?

>CC BASIC

Klingt nach C-Control...

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
Noch kein Account? Hier anmelden.