Loading...
  Show Posts
Pages: 1 2 3 [4] 5 6 ... 214
46  International / Deutsch / Re: Strom sparen Batteriebtrieb Leonardo on: March 25, 2013, 12:11:43 pm
Eins der Standardbeispiele ist das hier:
http://interface.khm.de/index.php/lab/experiments/sleep_watchdog_battery/

Grundsätzlich gilt:
1) Frequenz runter auf 1 MHz, dann kannst Du mit der Betriebsspannung ziemlich weit runter, d.h. die Batterien können auch wirklich leer gelutscht werden
2) Nur Schaltregler verwenden, auf keinen Fall Linearregler. Besser gar kein Regler als ein Linearregler
3) Solange wie möglich sleep einsetzen und dabei auch den Oszillator stoppen
4) Zeit besser per RTC fortschreiben und ggf. einmal pro Sekunde ***kurz*** aufwachen
5) bessere Performance = weniger Zyklen wach = weniger Stromverbrauch --> "teure Befehle" durch "billige Befehle" ersetzen, also keine float operationen, kein digitalRead/Write (sondern direkte Portmanipulation) usw.
6) Nichts was Strom zieht lange an lassen (LEDs!!!)
7) Keine Eingänge frei schweben lassen, insbesondere alle unbenutzten Eingägen immer schön mit Pullups terminieren.
47  International / Deutsch / Re: Pen-Plotter Arduino on: March 24, 2013, 10:10:51 am
Unglaublich was es alles gibt. Ich wäre nicht einmal auf die Idee gekommen sowas zu schreiben. Stattdessen hätte ich (genauso wie die Arduino IDE) einfach AVRDude für  den Upload genommen. Wenn man die IDE auf "verbose" stellt kann man sich die dazu nötigen Kommandos einfach anschauen.
48  International / Deutsch / Re: In die Robotik einsteigen - Arduino gute wahl? (Programmierkenntnisse vorhanden on: March 24, 2013, 08:08:01 am
Wenn Du Informatiker bist / werden willst, dann schau mal in die Communties rein die mehr wissen haben. D.h.

http://www.roboternetz.de/ und http://www.mikrocontroller.net/. Dort kennt man sich mit Robotern und Mikrocontrollern besser aus. Die Arduino Community ist sehr auf den Arduino eingeschworen.
49  International / Deutsch / Re: pinMode in loop() on: March 21, 2013, 11:57:05 am
Oder in der 20 LED Version hier: http://blog.blinkenlight.net/experiments/measurements/led-camera/.
50  International / Deutsch / Re: bessere Zufallszahlen erzeugen on: March 19, 2013, 12:31:11 pm
Ich würde gar nicht erst mit Interrupts anfangen sondern einfach wie folgt vorgehen:

Code:
while (!digitalRead(TasterPin)) {
    // Zufallszahlengenerator "bewegen" solange Taste gedrückt
    random();
}
result = random ...

D.h. solange jemand drückt wird gewürfelt und dann ist gut.

Wenn jemand sein Würfeln so gut timen kann, daß das nicht zufällig ist, dann hat er Computerunterstützung --> dann kannst Du alle einfachen Methoden sowieso gleich vergessen.
51  International / Deutsch / Re: Viele fragen von einem Anfänger! on: March 16, 2013, 08:56:33 am
Das Teil ist sowas wie ein Spoiler früher am Opel Manta???

Wenn Du schon C++ kannst, dann bekommst Du das locker hin. Wenn Deine Arbeitszeit nichts kostet, dann auch billiger. Ansonsten könntest Du auch auf die Idee kommen Zeitungen auszutragen statt zu entwickeln, das würde schneller und sicherer zum Ziel führen, nur wirst Du dann dabei nichts lernen.

Schritt 1: schau mal im Playground rein. Da steht schon viel beschrieben von dem was Du brauchst.
Schritt 2: einfach loslegen, immer nur eine Funktion nach der anderen. Immer erst eine Funktion komplett aufbauen und dann testen bis sie sauber funktioniert, dann weitermachen.
52  International / Deutsch / Re: Funktion mit Wertrückgabe ? on: March 16, 2013, 08:51:45 am
Fast jede moderne Sprache hat so ein Konzept. Manche mehr manche weniger smiley-wink Namespaces wirken sich bei kompilierten Sprachen eher wenig bis gar nicht auf den Speicherverbrauch aus. Was die Verwendung in C++ angeht guckst Du hier: http://www.cplusplus.com/doc/tutorial/namespaces/
53  International / Deutsch / Re: Funktion mit Wertrückgabe ? on: March 16, 2013, 06:14:52 am
1) Wie schon erwähnt wurde kann C Referenzen in den Aufrufparametern verwenden.
2) Man kann sich ja beliebige Strukturen für die Rückgabeparameter definieren. Problem dabei ist nicht C sondern die schlecht gemachte Arduino IDE die meint Prototypen definieren zu müssen aber dabei typedefs nicht berücksichtigt. Ein Workaround ist TRICK17 http://blog.blinkenlight.net/2012/09/01/trick-17/, die andere Lösung die Verwendung von Namespaces, also so:

Code:
namespace example {
    typedef struct {
        int a;
        int b;
        int c;
    } triple;
        
    triple test(const int x, const int y, const int z) {
        triple value;
        value.a = x;
        value.b = y;
        value.c = z;
        return value;
    }
    
    triple test2(const int x, const int y, const int z) {
        return triple {x, y, z};
    }
}


void setup() {
    using namespace example;
    
    const triple result = test(1,2,3);
    
    const int x = result.a;
    const int y = result.b;
    const int z = result.c;
}

void loop() {}

test() und test2() haben das gleiche Verhalten sind aber einmal ausführlich und einmal kurz hingeschrieben.

Stattdessen globale Variablen zu verwenden ist nicht wirklich Stand der Technik.
54  International / Deutsch / Re: Arduino und TVOut on: March 14, 2013, 01:11:27 pm
Ich habe mal gerade in die Lib reingeschaut. C garniert mit Inline Assembler. Sehr nett. Aber sicher nicht für Anfänger. Leute die sowas studieren nehmen aber garantiert keinen Schaden wenn sie sowas trotzdem durchanalysieren. Von sowas lernt man mehr als von einer Anfängervorlesung smiley-wink Mit Google kann man ja recht schnell rausbekommen was die eher esoterischen Teile bedeuten smiley
55  International / Deutsch / Re: Warum hat digitalWrite disassembly so viel Overhead? on: March 14, 2013, 01:04:48 pm
Quote
Um ein AusgangsPin zu setzen muß zuerst der Port gelesen werden, dann modifiziert und dann zurückgeschrieben werden um nur ein Bit zu ändern. Liest man den aktuellen Status nicht ein verändert man den Zustand möglicherweise für alle 6-8 Pins eines Ports.
Das ist nicht in 4 Taktzyklen zu machen.

Einspruch Euer Ehren. Das geht in 4 Takten. Der Grund warum digitalWrite das nicht schafft liegt daran, daß digitalWrite es erlaubt den Pin dynamisch zu bestimmen. In der genannten Library kann man sich jedoch sicher sein, daß immer der gleiche Pin angesprochen wird. Ob ein Bit auf High oder Low gesetzt wird beeinflusst die Ausführungszeit ebenfalls nicht. Wenn das allerdings nicht vorher bekannt ist, dann schon.

Mit anderen Worten: hart codierte Zugriffe sind schneller als etwas das erst zur Laufzeit bekannt ist. Auswege gibt es viele, nur bei der Arduino Zielgruppe ist Performance nicht wirklich sooo wichtig. Wenn es das wirklich wäre, dann würde man ja einen schnelleren Prozessor nehmen bzw. wenigstens den Takt hochdrehen.
56  International / Deutsch / Re: Arduino mit 4 Tastern on: March 13, 2013, 04:38:56 pm
Du könntest "die Arbeit" auch in einem Interrupt erledigen lassen (ich empfehle die msTimer2 Library) und die Taster im Loop auswerten. So was Ähnliches mache ich hier: http://blog.blinkenlight.net/experiments/measurements/flexible-sweep/. Im Loop lese und parse ich die serielle Schnittstelle und in der Interruptroutine steuere ich die LEDs an.
57  International / Deutsch / Re: Welchen Bootloader verwenden? on: March 13, 2013, 04:14:53 pm
Wenn Du einen Bootloader flashen kannst, dann hast Du einen ISP. Wer einen ISP hat braucht aber gar keinen Bootloader mehr. Laß den Bootloader doch einfach weg.

Wenn Du unbedingt einen Bootloader drauf willst probier erst einmal den des Uno. Wenn Du damit nicht zufrieden bist kannst Du immer noch den alten Bootloader flashen.
58  International / Deutsch / Re: 230V Erkennung / Detektierung für Arduino und andere Microkontroller on: March 12, 2013, 12:31:52 pm
@erni-berni: Du hast einen Tiefpass vergessen. Deine Schaltung funktioniert nur wenn man bei der Auswertung mit 100 Hz Flackern fertig wird.

@michael-x: erni-berni's Schaltung hat dann Vorteile wenn er sich auf eine existierende Leuchte aufklemmt. Dann muß er kein Gehäuse öffnen und hat folglich keine Isolationsprobleme.

@edvler: was Deine Meßgeräte messen und was man durch Nachrechnen rausbekommt liegen anscheinend etwas auseinander. Ich traue der Theorie an der Stelle mehr. Man kann statt Widerständen auch Kondensatoren verwenden oder einen LC Kombination. Das hat deutlich weniger Verluste ist aber ein bischen schwerer zu dimensionieren und auch teurer im Aufbau. Es gibt einen Grund warum soviele Geräte einen hohen Standby Verbrauch haben.
59  International / Deutsch / Re: Offtopic - Renesas wird frech - Konkurrenz für Arduino on: March 11, 2013, 01:02:28 pm
Was heißt frech? Es ist ein Angebot und wem es gefällt der hat mehr Auswahl. Ob es sich durchsetzt wage ich aber auch zu bezweifeln. Wenn der Arduino nicht reicht ist die naheliegende Erweiterung einen Raspi zu nehmen (und ggf. n-Stück Arduinos als IO Extender).
60  International / Deutsch / Re: 230V Erkennung / Detektierung für Arduino und andere Microkontroller on: March 11, 2013, 01:00:43 pm
Noch ein Nachtrag: die gezeigte Schaltung zieht über 1W.

Eine Alternative wäre einfach ein billiges Steckernetzteil zu nehmen um den Schaltzustand zu erkennen:

http://www.pollin.de/shop/dt/OTYyOTQ2OTk-/Stromversorgung/Netzgeraete/Steckernetzgeraete/Steckernetzteil_TY18.html

Wenn man das nicht parallel zum Verbraucher schalten kann, dann kann man das Netzteil auch über eine Master Slave Steckdose ansteuern:

http://www.pollin.de/shop/dt/MjkyOTQ1OTk-/Haustechnik/Installationsmaterial/Steckdosenleisten/Master_Slave_Steckdosenleiste_TDZ_5PM4.html

Damit hat man für 12,50 eine Lösung die korrekt isoliert ist und schon ein Gehäuse besitzt.
Pages: 1 2 3 [4] 5 6 ... 214