Show Posts
Pages: 1 ... 60 61 [62] 63 64 ... 207
916  International / Deutsch / Re: MPU 6050 Breakout in Betrieb nehmen on: January 03, 2014, 11:13:47 am
Quote
mein Pendel dreht sich ja um die Motorachse

Ist also eher ein Stab, den du per Motor so drehen willst, dass er "nach oben" zeigt.
Kommt also nicht so sehr auf die Dreh-Geschwindigkeit an.

Da ist das mit der "Regelung" sicher einfacher als ich befürchtet habe, und 2 if's reichen smiley-wink.

Den Sensor einfach so montieren, dass 2 Beschleunigungsrichtungen jeweils 45° geneigt sind.
Wenn beide die gleiche Beschleunigung messen, ist die Wunsch-Richtung erreicht. In diesem Bereich sollte der Sensor auch schön auf kleine Änderungen ansprechen.
917  International / Deutsch / Re: MPU 6050 Breakout in Betrieb nehmen on: January 03, 2014, 09:37:38 am
Quote
Wenn des Pendel nach vorne kipt soll es nach vorne fahren. Angenommen noch vorne kippen gibt eine positive Zahl aus, dann sollte sich der Aufwand mit einer if-Schleife in Grenzen halten. If value > 0 dann nach vorne, sonst nichts... und umgekehrt dasselbe.
Was sagt ihr dazu?

PID Regler smiley-wink

Der Sensor ist die eine Hälfte der Regelung, die andere ist der Motor ( oder woher kommt das "fahren" ?)
Ein "if" im Arduino wird wohl nicht reichen smiley-wink  
918  International / Deutsch / Re: 2 Loops auf einmal. Ist das möglich ??? on: January 03, 2014, 08:42:02 am
???  Protothreads ist sicher toll.
Aber keine Lösung für jemanden, der fragt "2 Loops auf einmal. Ist das möglich ???"

Die eigentliche Antwort hat sth schon gegeben:
- Brauchst du nicht.
  2 Funktionen (Taster und Display mit gemeinsamen Variablen) ist kein Problem.
  Wieso meinst du, 2 Loops zu brauchen?

Und sschultewolter hat eine Lösung gezeigt, die zwar 2 Byte auf dem Stack braucht,
aber sicher weniger Speicher als alles andere smiley-wink
919  International / Deutsch / Re: MPU 6050 Breakout in Betrieb nehmen on: January 03, 2014, 08:19:03 am
Quote
Libraries darfst Du niemals in die Arduino-IDE laden und zu kompilieren versuchen, das ist nicht vorgesehen! In der Arduino-Software werden nur "Sketche" kompiliert.
Einspruch, Euer Ehren! Das ist mindestens missverständlich.
Ein Sketch-Ordner kann neben der .ino Datei gleichen Namens auch andere Dateien, auch mit
mit der Endung .cpp und .h , enthalten. Diese können auch in der IDE in separaten Tabs dargestellt und editiert werden.

Wenn ich beispielsweise im Ordner mySketch die Dateien mySketch.ino, myLib.h, myLib.cpp habe und in mySketch eine Funktion aus myLib aufrufe, sollte ich in mySektch.ino am Anfang
#include "myLib.h"
stehen haben.

Wenn myLib "fertig" und getestet ist, kann ich sie dann immer noch in einen Ordner libraries/myLib packen und dort auch von anderen "Sketchen" verwenden.
Man kann natürlich sagen, vorher sei es noch gar keine Library, aber das sehe ich anders.
Ob myLib.h / myLib.cpp eine Library ist, eigentlich mal als Library gedacht war,
oder eine werden könnte, ist mir egal...
smiley-wink

Edit: s. Anhang LibTest.zip, enthält einen Sketch - Ordner   -- mit myLib
920  International / Deutsch / Re: Arduino Binärzähler on: January 02, 2014, 09:30:35 am
Bei millis() ist zu beachten, dass

Code:
if ( millis() - letztesMal > Zyklus )
{
     letztesMal = millis(); // sonst wird dies immer wieder durchlaufen
     // ...
}

Man muss sich natürlich merken, dass die Aktion nach der Wartezeit gemacht wurde...

Zum Tasten-Entprellen reicht es übrigens meist, wenn ein Wechsel erkannt wurde, einfach 2 .. 10 ms zu warten.
Das ist immer noch schnell für Taster-Reaktionen, aber das Prellen sollte dann vorbei sein.
921  International / Deutsch / Re: wert von Webseite übernehmen on: January 02, 2014, 09:21:12 am
möchte das Thema nochmal aufgreifen.

Leider besitze ich quasi Null C-Kenntnisse und brauche Hilfe.

Bin für jede Hilfe dankbar!

Du fängst hier an: http://arduino.cc/en/Tutorial/WebClient
Oder, falls dir das nichts sagt, bei einem C Tutorial deiner Wahl.

Was haben die bisherigen Antworten hier in diesem Thread mit deinem Problem zu tun ?
Lies evtl. auch mal http://forum.arduino.cc/index.php?topic=149078.0

Quote
Unter'm Strich müssten es am Ende unter 20 Zeilen Code sein?!
Das ist eine interessante Anforderung. Warum ?!

Edit: Dass du einen Webserver verwenden willst, um den Eigenverbrauch deiner Solaranlage hochzumogeln
 ... na ja...  smiley-wink
922  International / Deutsch / Re: Projekt: HeizungsLogger für Öl-Brennwert-Heizungsanlagen on: January 01, 2014, 06:40:13 am
Sehr schön, Reinhardt !
Danke für den interessanten .ino

1. Zum Arduino:
Sehe ich das richtig, dass du ziemlich früh ( bevor was funktioniert hat ) von Uno auf Mega umgestiegen bist ?

2. Zur Brennwert-Technik:
Nutzt du den Brenner auch zum Warmwasser Heizen ?

Alles Gute für 2014 !
923  International / Deutsch / Re: Frage zu Time.h on: January 01, 2014, 06:16:40 am
Quote
Das habe ich jetzt so weit verstanden aber sobald #include <Time.h> da bei ist kommt folgen Fehler Meldung:

C:\Program Files (x86)\Arduino\libraries\Time\DS1307RTC.cpp: In constructor 'DS1307RTC::DS1307RTC()':
C:\Program Files (x86)\Arduino\libraries\Time\DS1307RTC.cpp:32: error: 'Wire' was not declared in this scope

Ich dachte du hast gar keine DS1307 und willst die Zeit von einem ntp Server holen ? ? ?
Wofür ist dann DS1307RTC.cpp gut ?
( Klar, DS1307 bräuchte <Wire.h> )

Ich hab mal kurz auf menue_test_ohne_DS1307.ino geschaut und gesehen, dass das
#include <DS1307.h>
...
DS1307 rtc(24, 25);
enthält.

DS1307.h und DS1307RTC sind auch zwei verschiedene Sachen, oder ?
Bin verwirrt ...
924  International / Deutsch / Re: Frage zum Timer on: December 31, 2013, 07:39:45 am
Quote
Was meinst du mit  b)?
Dass ein loop Durchlauf auch länger als eine ms dauern kann, du also nie sicher sein kannst, dass so was wie
if ( millis() == Start + Dauer) { }
jemals erwischt wird.

Code:
const unsigned long _1sec = 1000;
void loop()
{
  static unsigend long Start;
  unsigned long Dauer = millis() - Start;
  if ( Dauer >= _1sec ) { Start += _1sec; SekundenFunktion(); }
}

Eine Interrupt-Routine könnte sogar noch ein bisschen mehr machen als dein Beispiel smiley-wink
(z.B. die ganze "Regelung" (incl. analogWrite  !) ist kein Problem, wenn die Interrupte nur alle paar msec kommen. Was gar nicht geht ist Serial.print, delay, pulseIn und solche Sachen)
925  International / Deutsch / Re: Frage zu Time.h on: December 31, 2013, 07:22:59 am
Sorry.

Theoretisch ist es egal, praktisch ergeben sich unterschiedliche Feher-Effekte, je nach dem was man macht.
Am einfachsten packst du erstmal alles, was du zusätzlich zu Time.h ( und Time.cpp ) haben willst, in deinen sketch.

Damit erübrigt sich das Problem, ob extra Dateien gefunden werden.
Dann würde ich dir raten, da du <Time.h> verwenden willst, dein eigenes Objekt nicht Time zu nennen, um Verwechslungen zu vermeiden.

Wenn du also deinen sketch so anfängst:

Code:
#include <Time.h>
struct Uhr{byte sec; byte min; byte hour;};

Uhr ZeitschaltuhrAn;
Uhr ZeitschaltuhrAus;

void setup()
{
  ZeitschaltuhrAn.hour = 8;
  ZeitschaltuhrAn.min = 30;
   ZeitschaltuhrAn.sec= 0;
}

void loop() { }

Das sollte fehlerfrei übersetzt werden.
(Benutzt natürlich Time.h gar nicht, und macht auch sonst nichts Sinnvolles)

Die nächste Frage ist dann, was deine "Uhr" ( oder wie du das Ding nennen willst ) genau können soll, ausser dass du eine Uhrzeit einstellst und sie wieder auslesen kannst...

926  International / Deutsch / Re: Frage zu Time.h on: December 31, 2013, 06:08:31 am
Quote
Wo kommt den die class Time Funktion ihn?
Na, auf den Arduino smiley-wink

Ich verstehe deine Frage wohl nicht.
Du kannst alles entweder in den Ordner deines Sketches, oder in den Libraries Ordner in einen Unter-Ordner names Time, damit es für alle sketche zu verwenden ist.


 
  
 
927  International / Deutsch / Re: Frage zum Timer on: December 31, 2013, 06:07:31 am
Quote
So  wie ich das verstehe gibt millis () die Zeit, die seit dem Start des Programms verstrichen wurde.  Für die initialisierung   und setup() wird doch Einiges auch an millisekunden benötigt oder?  Das kann doch zu Ungenauigkeiten führen in der Bedienung  1 und 2.

Das einzige was an millis() interessiert, ist die Differenz zu einem vorangegangenen Wert.

Ob setup() meher oder weniger als 1 ms braucht, sollte egal sein.
Du solltest auch in loop damit rechnen, dass
a) zwei loop - Durchläufe den gleichen millis() Wert haben *)
b) nicht jeder millis() Wert erwischt wird.

400 Upm sind übigens 150 ms / Umdrehung ...
Interrupt-Behandlung kann das Ganze bequemer machen, erforderlich ist es wohl nicht.
Bei jedem Interrupt kannst du feststellen, ob seit dem letzten Mal mehr oder weniger als deine Soll-Zeit
(150 ms) verstrichen ist und entsprechend evtl. den PWM Wert für deinen Motor ändern.



*) loop() sollte in der Regel nur erkennen, dass nichts zu tun ist. Das dauert weit weniger als 1 ms.
928  International / Deutsch / Re: Frage zu Time.h on: December 31, 2013, 05:16:10 am
Quote
ob es die Möglichkeit auch bei der Time.h gibt
"Möglichkeit" hat das Problem, dass die Antwort immer Ja ist.
Ist so in diesert Time.h natürlich nicht drin und passt auch nicht so ganz...
Du kannst einfach
struct Time { byte sec; byte min; byte hour; byte day; byte mon; byte year;};
in deiner Version von Time.h dazuschreiben.
Dann brauchst du noch eine Funktion, die aus einer time_t eine Time machen.
In C++ nennt man das dann

Code:
class Time
{
 public:   // damit du wie gewünscht myTime.min lesend und schreibend verwenden kannst
 byte sec; byte min; byte hour; byte day; byte mon; byte year;
 Time ( time_t t); // um aus einer time_t Variablen ein Time Objekt zu erzeugen.
 time_t Get(); // liefert die time_t zurück
}

Aber : deinem Beispiel nach brauchst du das Datum gar nicht ?
Falls das stimmt, stört es sogar eher.
Und du brauchst weder diese Time.h, noch DS1307.h, sondern einen eigenen 24hWecker oder eine
class Zeitschaltuhr, die du der Arduino-Gemeinde schenkst ...

929  International / Deutsch / Re: Echtzeitfähiges Arduino Projekt Frage on: December 31, 2013, 02:46:00 am
Quote
Dazu kommt noch die Lebensdauer von Consumer SD Karten bzgl. Anzahl der Schreib-Lesevorgänge. Ich weiss auch nicht, wie die SD Karten Treiber Library mit Wear-Leveling und anderen Eigenheiten von SD Karten umgeht.
Die Lebensdauer beschränkt eigentlich nur die Anzahl der Schreib-Vorgänge, oder?
Und Wear-Leveling sollte für den SD-Zugriff über SPI und FAT - formatierte Karten transparent sein, d.h. das macht die Karte selbst und ist von aussen nicht bemerkbar.
Oder kann ich da noch was lernen ?

Quote
Ich könnte mir auch vorstellen,, das die Verwendung von vielen Dateien das System ausbremst. Ich würde bei einem PC nie so programmieren.

Ich würde bei einem Arduino immer nur eine Datei gleichzeitig offen haben und mir keine Gedanken machen, wie schnell ein Block von 512 Byte bearbeitet werden kann. Der RAM ist der Engpass beim Arduino. Das ist beim PC etwas anders smiley-wink

Da der Arduino jeweils nur 1 Tag verarbeitet, passt eine Datei dieses Namens schon.
Man hat allerdings nur 8+3 Buchastaben für den Dateinamen.

Und wenn man schon die RFID in eine 8-Buchstaben-Kombi umrechnet, kann man sie auch gleich in einer Liste suchen.
930  International / Deutsch / Re: Frage zu Usage on: December 30, 2013, 11:43:36 am
Versteht wohl ausser mir auch sonst nicht jeder.

Welche Time.h meinst du ?  Und welche DS1307.h ? Diese ?

Diese Time.h  z.B.
verwendet den Datentyp time_t, und keine Klasse Time

Was bedeutet
Usage in deiner Zeile ?
Pages: 1 ... 60 61 [62] 63 64 ... 207