Hallo, ich möchte anfangen, mit Arduinoboards einfache Steuerungen aufzubauen und habe ein paar Verständnisfragen: Ich würde den Arduino hauptsächlich mit Batterie betreiben. Vergisst der Arduino sein Programm, wenn die Versorgungsspannung kurz unterbrochen wird (z.B. Batteriewechsel)? Muss das Programm dann erneut per USB geuploadet werden? Wenn ja, gibt es Möglichkeiten, das zu umgehen (Programm ins EEPROM speichern, SD-Karte anschließen, ...)? Lassen sich die üblichen Arduinoboards (Uno,Due,...) in einen Sleepmodus schalten, in dem sie batteriebetrieben 1-2 Wochen überleben? Oder gibt es spezielle Boards, die genau dafür ausgelegt sind? Der Arduino soll nur bei einem externen Signal gelegentlich aufwachen, ein paar Daten aufnehmen und dann weiterschlafen. Sind die Steckverbinder eigentlich irgendwie "standardisiert"? Ich bräuchte z.B. in jedem Fall ein LCD- und ein SD-Karten-Shield. Kann ich den Arduino und die Boards von verschiedenen Anbietern kaufen, oder muss ich dann sehr genau auf die Kompatibilät achten? Danke Patrick
Patrick schrieb: > Vergisst der > Arduino sein Programm, wenn die Versorgungsspannung kurz unterbrochen > wird nein. die lebensdauer der batterie hängt davon ab wie leistungsfähig sie ist, ob du entsprechende sleep modi im programm einbauen kannst (siehe datenblatt µc) und welche peripherie du wie angeschlossen hast. weitere infos: http://arduino.cc/ (ff.)
Patrick schrieb: > Ich würde den Arduino hauptsächlich mit Batterie betreiben. Vergisst der > Arduino sein Programm, wenn die Versorgungsspannung kurz unterbrochen > wird (z.B. Batteriewechsel)? Muss das Programm dann erneut per USB > geuploadet werden? Wenn ja, gibt es Möglichkeiten, das zu umgehen > (Programm ins EEPROM speichern, SD-Karte anschließen, ...)? Also der µC vergisst sein Programm nach Spannungsabfall nicht, da du es ja in den Flash geschrieben hast. lediglich der Inhalt des RAM ist nach Spannungsabfall verloren.
c.m. schrieb: > Patrick schrieb: >> Vergisst der >> Arduino sein Programm, wenn die Versorgungsspannung kurz unterbrochen >> wird > > nein. Nenn bitte einen Link, der das belegt. Auf arduino.cc finde ich dazu nichts. Dagegen habe ich hier ein Buch, das besagt, dass der Arduino bei jedem Anschließen der Versorgungsspannung seinen Bootloader startet. > die lebensdauer der batterie hängt davon ab wie leistungsfähig sie ist, > ob du entsprechende sleep modi im programm einbauen kannst (siehe > datenblatt µc) und welche peripherie du wie angeschlossen hast. Es geht mir um die maximale Laufzeit des reinen Arduinos. Der zieht im Leerlauf um die 40mA, das machen Mignonakkus höchstens 2-3 Tage mit. AVRs können ihren Stromverbrauch im Sleepmodus (nicht bloß Leerlauf!) um den Faktor 100-1000 reduzieren. Die Frage ist, ob der Arduino dies unterstützt? Danke Patrick
Patrick schrieb: > c.m. schrieb: >> Patrick schrieb: >>> Vergisst der >>> Arduino sein Programm, wenn die Versorgungsspannung kurz unterbrochen >>> wird >> >> nein. Hä? Was versteh ich an der Frage nicht? Also der Bootloader ist da um es dir sehr bequem zu machen, damit du deine HEX Datei auf den µC brennst. Befindet sich bereits eine Software auf dem µC dann wird diese überschrieben. Wenn du allerdings das Teil startes und KEIN Programm auf den µC laden willst, so startet das normale Programm.
Patrick schrieb: > Dagegen habe ich hier ein Buch, das besagt, dass der Arduino bei > jedem Anschließen der Versorgungsspannung seinen Bootloader startet. Das ist richtig, wenn aber keine Loadsequenz kommt, startet nach wenigen Augenblicken das vorhandene Programm. Wenn du ein Programm über USB in den Arduino laden willst, wird über DTR der Reset ausgelöst der Bootloader startet und der Ladevorgang läuft.
Patrick schrieb: > Es geht mir um die maximale Laufzeit des reinen Arduinos. Der zieht im > Leerlauf um die 40mA, das machen Mignonakkus höchstens 2-3 Tage mit. > AVRs können ihren Stromverbrauch im Sleepmodus (nicht bloß Leerlauf!) um > den Faktor 100-1000 reduzieren. Die Frage ist, ob der Arduino dies > unterstützt? Die Frage ist, ob du akzeptierst, dass das Herz deines Arduinos ein AVR-Prozessor ist. Was der kann oder nicht kann hängt nicht davon ab, auf welche Platine er gelötet ist. Ein Ferrari Motor hat auch dann noch 280PS, wenn man ihn in einen VW Käfer einbaut.
Patrick schrieb: > Nenn bitte einen Link, der das belegt. Guck ins Datenblatt. Da mußt du, unabhängig vom Arduino, beim Hersteller des Prozessors gucken und dir Grundlagen über Flash-Speicher anlesen. http://de.wikipedia.org/wiki/Flash-Speicher Patrick schrieb: > Die Frage ist, ob der Arduino dies unterstützt? Die Frage ist nicht, ob Arduino dies unterstützt, sondern ob du das dem ATmega/SAM ggf. auch ohne Unterstützung durch die Arduino-Libs beigebracht kriegst.
Patrick schrieb: > Die Frage ist, ob der Arduino dies > unterstützt? Glaube ich kaum, du müsstest dazu auch den ATmega16U2, beim UNO, mit schlafen legen.
Patrick schrieb: > c.m. schrieb: >> Patrick schrieb: >>> Vergisst der >>> Arduino sein Programm, wenn die Versorgungsspannung kurz unterbrochen >>> wird >> >> nein. > > Nenn bitte einen Link, der das belegt. ich werde dir die arbeit dir die grundlagen anzueigenen nicht abnehmen. lies dich erstmal ein damit du die richtigen fragen stellen kannst.
Patrick schrieb: > Es geht mir um die maximale Laufzeit des reinen Arduinos. Die maximale Laufzeit hängt nur vom Stromverbrauch und von der Kapazität der verwendeten Batterie ab. > Der zieht im > Leerlauf um die 40mA, das machen Mignonakkus höchstens 2-3 Tage mit. Ja, mindestens 99% aller "fertigen" Arduino-Boards ziehen 45 bis 55 mA Strom, und das ist unvermeidbar wegen dem ganzen Plumpatsch, der auf die Developer-Boards draufgelötet ist: Eine Power-LED, ein Spannungswandler, das USB-Gedöns. > AVRs können ihren Stromverbrauch im Sleepmodus (nicht bloß Leerlauf!) um > den Faktor 100-1000 reduzieren. Die Frage ist, ob der Arduino dies > unterstützt? Ja, die Arduino-Boards enthalten Atmega-Controller, die Atmega-Controller unterstützen das und Du kannst die Stromspar-Sleepmodes auch alle mit der Arduino-Software aktivieren. Der Sleepmodus verringert aber nur den Stromverbrauch des Controllers und NICHT den Stromverbrauch von dem ganzen anderen Plumpatsch auf dem Board. Deshalb nützt Dir der Sleepmodus mit den üblichen Developer-Boards nichts. Rechenbeispiel: Arduino-Board braucht 47 mA, davon der Controller 17 mA. Mal angenommen, Du bringst den Controller auf einen Verbrauch von null, dann zieht das Board immer noch 30 mA Dauerstrom. Für die Power-LED, den Spannungswandler, das USB-Gedöns. Aber mit 30 mA vs. 47 mA hast Du bei Batteriebetrieb noch nicht viel gewonnen. Für Batteriebetrieb mußt Du Dir im Regelfall eine eigene Schaltung mit einem "nackten" Controller aufbauen. Ohne Spannungswandler, ohne Power-LED, ohne USB-Gedöns. Und wenn Du diesen Controller (Verbrauch im Aktiv-Modus 17 mA) dann in den maximalen Sleepmode versetzt (sagen wir mal 0,01 mA), dann kannst Du die Schaltung monatelang mit einer Batterie betreiben, wenn sie zu 99,5% der Zeit im Sleepmode verbringt. Den nackten Controller kannst Du dann mit einem ISP-Programmer programmieren, oder einem richten "Arduino as ISP-Programmer". Oder mit einem TTL-USB-Serialadapter, den Du nur zum Programmieren anschließt und danach wieder aus der Scahltung entfernst. Mit fertig gekauften Arduino "Developer" Boards kannst Du einen längerfristigen Batteriebetrieb fast immer vergessen, die sind alle für Betrieb mit USB-Stromversorgung oder Netzteilbetrieb vorgesehen.
Mike schrieb: > Die Frage ist nicht, ob Arduino dies unterstützt, sondern ob du das dem > ATmega/SAM ggf. auch ohne Unterstützung durch die Arduino-Libs > beigebracht kriegst. Ok. Also meine Frage an die Arduino-Nutzer: Kann ich den Arduino softwaregesteuert schlafen schicken? Ich frage, weil ich nicht weiß, inwieweit die Assemblerbefehle über die Wiring-Sprache erreichbar sind. Jürgen S. schrieb: > Für Batteriebetrieb mußt Du Dir im Regelfall eine eigene Schaltung mit > einem "nackten" Controller aufbauen. Ohne Spannungswandler, ohne > Power-LED, ohne USB-Gedöns. Und wenn Du diesen Controller (Verbrauch im > Aktiv-Modus 17 mA) dann in den maximalen Sleepmode versetzt (sagen wir > mal 0,01 mA), dann kannst Du die Schaltung monatelang mit einer Batterie > betreiben, wenn sie zu 99,5% der Zeit im Sleepmode verbringt. Also müsste ich den Arduino programmieren, Spannungswandler und LED auslöten und meinen eigenen, effizienten Wandler anschließen. Gut. Und es gibt wirklich kein Board, das für diesen Zweck ausgelegt ist? Patrick
@Patrick Das mit dem Programm vergessen und Bootloader ist ja schon geklärt -Programm wird nicht vergessen -Bootloader startet bei neustart kurz und lauscht, wenn nichts für ihn kommt dann startet er das Programm Die üblichen Arduinoboards lassen sich in einen Sleepmodus versetzen aber das betrifft nur den ATMega, die anderen Bauteile ziehen nach wie vor Strom(der Spannungswandler, der FT232) http://hackaday.com/2009/08/13/sleepy-arduino-saves-batteries/ Du könntest entweder einen nackten ATMega328 oder einen Arduino Pro Mini nehmen(da ist das alles nicht drauf, brauchst dann alledings einen ISP Programmer) Die Anschlüsse sind soweit standardisiert das die Shields passen allerdings würde ich dir raten das ganze auf einer Lochrasterplatine aufzubauen. Und du musst berücksichtigen dass dem LCD und der SD Karte der Sleep Modus des Prozessors egal sind und die fleissig weiter Strom verbrauchen.
c.m. schrieb: > ich werde dir die arbeit dir die grundlagen anzueigenen nicht abnehmen. > lies dich erstmal ein damit du die richtigen fragen stellen kannst. Er schreibt "Grundlagenfragen" in den Betreff und du antwortest, dass du ihm nicht hilfst, die Grundlagen anzueignen. Geht's noch dümmer? Wenn du nicht helfen willst, einfach mal die Fresse halten, gelle?
Patrick schrieb: > Also müsste ich den Arduino programmieren, Spannungswandler und LED > auslöten und meinen eigenen, effizienten Wandler anschließen. Gut. Und > es gibt wirklich kein Board, das für diesen Zweck ausgelegt ist? Du könntest einen "Arduino Mini" oder "Arduino Micro" nehmen, wenn du nicht alles von Grund auf selber bauen möchtest. Die haben nur noch das Nötigste darauf. Und so könnten die auch eher mit Batterie versorgt werden. http://arduino.cc/de/Main/ArduinoBoardMini http://arduino.cc/de/uploads/Main/arduino_mini_schematic05.pdf http://arduino.cc/de/Main/ArduinoBoardMicro http://arduino.cc/de/uploads/Main/arduino-micro-schematic.pdf
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.