Show Posts
Pages: [1] 2
1  International / Deutsch / Re: ARDUINO PRO MINI BOARD LED on: January 30, 2011, 02:08:28 pm
Hallo Marco,

das hört sich doch schon mal super an!

Das mit den 8 Sekunden verstehe ich nicht ganz, da ich mich selbst mit der Sleep-Funktion noch nicht wirklich auseinadergesetzt habe. Hast Du die LED schon deaktiviert? Damit solltest Du sogar auf ca. die Hälfte der 0,9mA herunterkommen. Das wären dann 500µA, damit kommt man mit einer Batterie schon recht weit...so 80 Tage pro 1000mAh Kapazität :-)

Ich würde die Zeit zwischen zwei Mess-/Sendeintervallen so lang wie möglich wählen, damit wirst Du letztendlich am weitesten kommen.

Gruß
dreamy1
2  International / Deutsch / Re: ARDUINO PRO MINI BOARD LED on: January 29, 2011, 09:35:33 am
@Dollhouse: Gern geschehen!

@Webmeister: Hat es einen besonderen Grund, dass Du die Postings Deiner Vorposter nochmal wiederholst, ohne dass neue Erkenntnisse hinzukommen?
3  International / Deutsch / Re: ARDUINO PRO MINI BOARD LED on: January 28, 2011, 11:16:28 am
Ja, mein Ansatz war additiv zur ersten Lösung mit der LED zu sehen und nicht alternativ...hätte ich aber auch dazuschreiben können :-)
4  International / Deutsch / Re: ARDUINO PRO MINI BOARD LED on: January 27, 2011, 02:18:04 pm
Schon ok :-)

Anderer Ansatz:
Wie oft musst Du denn einen neuen Messwert senden? Bei Applikationen mit Akku/Batterie wäre die sleep-Funktion vielleicht ganz interessant...dabei schläft der kleine Racker im Normalfall (Stromaufnahme im µA-Bereich) und wird nur kurz aufgeweckt, um zu messen und den neuen Messwert zu senden (dabei wird das Funkmodul über den Arduino ein- und ausgeschaltet).

Damit kannst Du im Mittel sehr kleine Stromaufnahmen realsisieren. Ich hatte mal eine ähnliche Idee für einen Fensterkontaktmelder mit Xbee-Funk und einer Lithium-Zelle und bin auf ein paar Jahre mit einer Batterie gekommen....was für ein Funkmodul verwendest Du?

Schau mal hier:
http://hackaday.com/2009/08/13/sleepy-arduino-saves-batteries/
http://interface.khm.de/index.php/lab/experiments/sleep_watchdog_battery/
5  International / Deutsch / Re: ARDUINO PRO MINI BOARD LED on: January 27, 2011, 12:26:53 pm
Gern geschehen.
6  International / Deutsch / Re: ARDUINO PRO MINI BOARD LED on: January 26, 2011, 03:54:37 pm
...Die braucht kaum 5mA....          ...gegen eine normale Diode ersetzen...

Sorry, das ist leider absoluter Unfug!

- die verbaute LED ist eine sog. Low-Current-LED, die bei normaler Beschaltung mit rund 1-2mA betrieben wird. Auf dem Pro Mini wird diese mit einem 10k-Widerstand betrieben, so dass der Strom zur weiteren Energieeinsparung auf ca. 0,3 mA begrenzt wird. Deshalb leuchtet die LED auch nur sehr schwach.

- die LED durch eine Diode zu ersetzen führt dazu, dass die Energie nicht in Licht+Wärme, sondern nur noch in Wärme umgesetzt wird. Da eine normale Siliziumdiode bereits bei geringerer Spannung leitet, wird mit Deinem Vorschlag sogar noch mehr Energie als mit der LED "verbraten". Also absolut kontraproduktiv.

Also: 10k-Widerstand oder die LED selbst auslöten, damit dieser Zweig stromlos wird. Die dadurch eingesparte Leistung sind bei VCC=5V ca. 1,5mW, die sonst an Widerstand und LED umgesetzt werden.
7  Forum 2005-2010 (read only) / Deutsch / Re: Wartezeit in einer FOR()-Schleife ohne delay() on: January 22, 2011, 11:18:07 am
Alles klar, vielen lieben Dank!
8  Forum 2005-2010 (read only) / Deutsch / Re: Wartezeit in einer FOR()-Schleife ohne delay() on: January 22, 2011, 05:03:16 am
Hallo MaFu,

danke für die Rückmeldung!

Ich meinte den Code aus Beitrag #4, meinst Du das funktioniert dort auch?

Vielen Dank vorab!

Gruß
dreamy1
9  Forum 2005-2010 (read only) / Deutsch / Re: Wartezeit in einer FOR()-Schleife ohne delay() on: January 19, 2011, 05:04:59 pm
Hmm,

Uwe hatte oben Code gepostet, da war die Deklaration als unsigned long schon mit drin...trotzdem schrieb er, dass die Lösung bei einem Überlauf nicht funktionieren würde.

Bin ratlos...@Uwe, kannst Du das nochmal näher erklären warum es nicht richtig funktionieren wird?

Vielen Dank schon einmal vorab!

Gruß
dreamy1
10  Forum 2005-2010 (read only) / Deutsch / Re: Wartezeit in einer FOR()-Schleife ohne delay() on: January 18, 2011, 03:07:07 pm
Hallo,

ich würde meinen letzten Post gerne noch einmal "aufleben" lassen :-)

Hat jemand eine Idee, wie man ein Handling des 49-Tage-Überlaufes hinbekommen könnte?

Vielen lieben Dank vorab!

Gruß
dreamy1
11  Forum 2005-2010 (read only) / Deutsch / Re: Wartezeit in einer FOR()-Schleife ohne delay() on: January 16, 2011, 09:13:46 am
Vielen Dank für die Info!

Die If-Schleife gefällt mir besser als die FOR-Schleife, ich glaube ich bleibe dabei :-)

Für das Handling des Überlaufes habe ich einen Codeschnipsel gefunden...ob das so funktionieren würde?

Code:
currentMillis = millis();
//........
if(currentMillis < previousMillis)
{
VergangeneZeit = 4294967295 + previousMillis - currentMillis; // Für korrekten Überlauf
}
else
{
VergangeneZeit = previousMillis - currentMillis;
}
//........
previousMillis = currentMillis;
12  Forum 2005-2010 (read only) / Deutsch / Re: Wartezeit in einer FOR()-Schleife ohne delay() on: January 16, 2011, 05:53:27 am
Habs ausprobiert - funktioniert hervorragend!!!

Vielen herzlichen Dank für Deine -wieder einmal- kompetente und zielführende Lösung!

Interessehalber: warum funktioniert das innerhalb einer FOR-Schliefe nicht?

Gruß
dreamy1
13  Forum 2005-2010 (read only) / Deutsch / Re: Wartezeit in einer FOR()-Schleife ohne delay() on: January 16, 2011, 04:54:02 am
Hallo Uwe,

vielen Dank, ich probiere Deinen Code mal aus und melde mich wieder!

Viele Grüße und einen schönen Sonntag,
dreamy1
14  Forum 2005-2010 (read only) / Deutsch / Re: Wartezeit in einer FOR()-Schleife ohne delay() on: January 15, 2011, 10:43:45 am
Vielen Dank für die Tipps!

Die Conditions wurden in Deinem Code zwar angenommen, aber es hat leider nicht geholfen. Die Pulsbreite wird immer direkt auf den neuen Wert gesetzt, also ohne langsames "hinfahren" auf den neuen Wert.

Habt Ihr noch Ideen, woran das liegen könnte?

@Sebastian:
Dafür habe ich doch die If-Schleife in der For-Schleife mit eingebaut. Das Hochzählen der For-Schleife soll dabei erst weitergehen, wenn die Wartezeit vorüber ist. Erst mit Ablauf der Wartezeit in der If-Schleife wird der neue Wert gesetzt...so isses zumindest geplant :-)
15  Forum 2005-2010 (read only) / Deutsch / Wartezeit in einer FOR()-Schleife ohne delay() on: January 15, 2011, 09:40:10 am
Hallo,

ich tüftle gerade an einer speziellen Funktion und bekomme es nicht hin...hat jemand einen Tipp für mich?

Problem:
Ich möchte in einer FOR()-Schleife zwischen den einzelnen Hochzählphasen eine kurze Wartezeit einbauen, die ohne Delay() auskommt. Dabei wird die Pulsbreite eines PWM-Signals langsam auf einen Endwert gefahren.

Mit delay() klappt es:
Code:
if (Neuerwert > Alterwert)
      {
          for (int Schrittweite = Alterwert; Schrittweite <=Endwert; Schrittweite +=1) {  
          analogWrite(analogOutPin, Schrittweite);            
          delay(Wartezeit);
          }
      }

Mit der millis()-Funktion leider nicht:
Code:
     if (Neuerwert > Alterwert)
      {
          for (int Schrittweite = Alterwert; Schrittweite <=Endwert; Schrittweite +=1) {  
          unsigned long currentMillis = millis();
          if (currentMillis - previousMillis > Wartezeit) {
          analogWrite(analogOutPin, Schrittweite);
          previousMillis = currentMillis;        
          }
          }

Habt Ihr eine Idee?

Vielen lieben Dank vorab!

Gruß
dreamy1
Pages: [1] 2