INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino UNO und <der> Mathematik
27.04.2014, 18:32
Beitrag #1
Arduino UNO und <der> Mathematik
Hallo, ich habe gerade eine Auseinandersetzung mit meinem UNO und seine Art meine Formeln zu Rechnen.Angel

erstmal zu meinem Vorhaben, ich will die Ephemeriden also die Bildpunktkoordinaten der Sonne im Arduino berechnen lassen um die theoretische Höhe und Azimut für meinen Standort Generieren zu können aber ich scheiter schon an der berrechnung des Julianischen Datums Undecided

ich habe bereits unterschiedliche Datentypen verwendet und die Formeln in einzelne Abschnitte zerlegt,zunächst habe ich noch alles in eine Zeile gepackt doch da kam dann immer die Negative grenze des jeweiligen datentyps.
Mein Taschenrechner bringt völlig andere, und nach gefühlter 1000 facher Kontrolle richtige werte.


die Formel für den JD:
angenommen : 29.11.1998 0Uhr

JD = int(365,25*a)+int(30,6001*(m+1))+B+1720996,5+d+ (UTC/24)

daraus sollte dann z.b für den 2. int :

int a = 1998;
int m = 11;
int d = 27;

int JD2F;

JD2F = (30,6001*(m+1)); // Wird dann=> 6476 und sollte =>367

das nur als Beispiel im Zuge meiner Experimente hatte ich auch noch andere bislang nicht reproduzierbare schoten zum beispiel eine undefinierbare Reihe sinnlos kombinierter ASII Zeichen Huh


mit so etwas schlage ich mich bereits den ganzen Tag rum und komme einfach nicht weiter, ich habe so langsam den Eindruck das ist zu schwer für den kleinen 328 denn da kommen noch einige, teilweise noch umfangreichere Formeln hinzu. Confused

ich habe so etwas ähnliches in Objektive C programmiert, eine Astronavigationsapp , da hatte ich überhaupt keine Probleme dieser art, was läuft da falsch? Undecided

Der endgültige plan ist übrigens eine exakte Sonnennachführung für 4 Solarpanel via Schrittmotoren über ein Schneckenradgetriebe, jedoch werde ich erst ein Modell mir 2 Servos bauen aber das ist ja eine andere Geschichte erst brauch ich die werte Shy

schonmal danke im voraus und einen schönen Abend Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.04.2014, 20:08
Beitrag #2
RE: Arduino UNO und <der> Mathematik
Hallo,
Lies mal aus dem Handbuch die Anweißung int ist nicht geeignet für Kommawerte.
Zitat:int
Integer sind der verbreitetste Datentyp für die Speicherung von ganzzahligen Werten ohne
Dezimalkomma. Sein Wert hat 16 Bit und reicht von -32.767 bis 32.768.
int someVariable = 1500; // deklariert 'someVariable'
// als einen 'integer' Datentyp
Bemerkung: Integer Variablen werden bei Überschreiten der Limits 'überrollen'. Zum Beispiel
wenn x = 32767 und eine Anweisung addiert 1 zu x, x = x + 1 oder x++, wird 'x' dabei
'überrollen' und den Wert -32,768 annehmen.
long
Datentyp für lange Integer mit erweiterer Größe, ohne Dezimalkomma, gespeichert in einem
32-bit Wert in einem Spektrum von -2,147,483,648 bis 2,147,483,647.
long someVariable = 90000; // deklariert 'someVariable'
// als einen 'long' Datentyp
float
Ein Datentyp für Fliesskomma Werte oder Nummern mit Nachkommastelle. Fliesskomma
Nummern haben eine bessere Auflösung als Integer und werden als 32-bit Wert mit einem
Spektrum von -3.4028235E+38 bis 3.4028235E+38.
float someVariable = 3.14; // deklariert 'someVariable'
// als einen 'float' Datentyp
Bemerkung: Flieskomma zahlen sind nicht präzise und führen möglicherweise zu
merkwürdigen Resultaten wenn sie verglichen werden. Ausserdem sind Fliesskomma
berechnungen viel langsamer als mit Integer Datentypen. Berechnungen mit Fliesskomma
Werten sollten nach Möglichkeit vermieden werden.

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.04.2014, 20:14
Beitrag #3
RE: Arduino UNO und <der> Mathematik
Das ist mir bekannt.

ich möchte mir ja auch nur den Wert vor dem Komma zurückgeben lassen, Siehe Formel.

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.04.2014, 05:57
Beitrag #4
RE: Arduino UNO und <der> Mathematik
Hallo,

willst du die Panele in 2 Ebenen steueren oder nur die Sonne von Ost nach West vervolgen?

Würde es nicht reichen sich über den Arduino Monat und Urzeit zu holen dann abzufragen mit If Monat 03 und Uhrzeit 12:00Uhr und dann die Schrittmotoren so auf Position zu bringen?

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.04.2014, 06:40
Beitrag #5
RE: Arduino UNO und <der> Mathematik
Moin kombi90,

Stich73 hatte mit seinem Hinweis auf die Datentypen schon völlig recht.
Beispiel: Aus
Code:
int m = 11;
int JD2F;
JD2F = (30,6001*(m+1));
mache:
Code:
// 4 Nachkommastellen, da auch bei "30.6001". Sonst Rundungsfehler bei komplexen Berechnungen
float m = 11.0000;
int JD2F;
void setup()
{
  JD2F = (int) (30.6001 * (m + 1)); // . vor Nachkommastellen nicht ,
  Serial.begin(9600);
  Serial.print(JD2F);
}
void loop() {}
und schon sagt der Serialmonitor 367 Exclamation

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.04.2014, 22:59 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2014 23:04 von kombi90.)
Beitrag #6
RE: Arduino UNO und <der> Mathematik
Jep, ich will die Panele in 2 Ebenen steuern.

Sonst würde es ja wie gesagt reichen nach Uhrzeit zu steuern. Über sinn und unsinn der Steuerung in 2 Ebenen kann man sich jetzt streiten Big Grin
Aber so bleibt die Relativ genaue Positionierung über Jahre hinweg gewährleistet ohne eingreifen zu müssen da sich der sonnenstand von Jahr zu Jahr geringfügig ändert.

Danke für den Tipp, jetzt funktionierts .

Rundungsfehler habe ich zwar noch immer aber für die ungefäre Höhe und Azimut sollte das genügen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Ethernet mit USB 2 Serial Converter/Welche Einstellungen im Arduino-Sketch lociluke 1 1.115 05.05.2015 13:40
Letzter Beitrag: Bitklopfer
  Arduino Mega-Projekt mit EEPROM auf Arduino Due portieren Foto-Ralf 17 3.144 16.03.2015 12:06
Letzter Beitrag: Foto-Ralf

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste