Show Posts
|
|
Pages: 1 2 3 [4] 5 6
|
|
47
|
International / Deutsch / Re: Arduino Leonardo 12V
|
on: February 08, 2013, 02:02:06 am
|
|
stimmt, du hast natürlich Recht. War ja auch nur "schematisch" gedacht. Mir ging es eher um die Unterscheidung "Schalter ein/aus" oder "Lampe brennt/brennt nicht". Das hab ich aus dem Originalpost des Threaderstellers nicht ganz klar erkannt ...
Dirk
|
|
|
|
|
49
|
International / Deutsch / Re: Arduino Leonardo 12V
|
on: February 05, 2013, 05:55:41 am
|
|
Soll der Arduino den Zustand des Schalters anzeigen? Also Schalter an = Lampe an, Schalter aus = Lampe aus? Das geht einfacher mit einer kleinen LED mit Vorwiderstand parrallel zur Lampe. Dann brauchst du den Arduino (ausser vielleicht zu Lernzwecken) eigentlich gar nicht. Oder willst du wissen, *ob* die Lampe wirklich brennt? Dann müsstest du den Stromfluss durch die Lampe messen ... Einfacher Weg wäre dann ein kleiner Lastwiderstand in Reihe zur Lampe und den Spannungsabfall an selbigem messen und mit Arduino auswerten. Sollte über einen Optokoppler gehen, also im Prinzip (stark vereinfacht) so:
12V <--Lampe-| |----| |------> Arduino PIN Widerstand | | O-/ Optokoppler |----| |------> Arduino GND Schalter \ | Masse <---------
Dirk
|
|
|
|
|
50
|
International / Deutsch / Re: Datentypen und Verwendung von Funktionen zur Manipulation von Bits in int/long
|
on: February 04, 2013, 01:01:29 pm
|
|
Ah OK, dann hab ich das jetzt verstanden, prima. Ich war mir nicht sicher, ob die Maskierung, ähnlich einer Netmask, komplett sein sollte, also alle Stellen mit "0" oder "1" in Form von "nicht nutzen" oder "nutzen" angegeben werden müssen. Aber jetzt hab ich das begriffen, fein, ich danke für eure Hilfe.
Dirk
|
|
|
|
|
51
|
International / Deutsch / Re: Datentypen und Verwendung von Funktionen zur Manipulation von Bits in int/long
|
on: February 04, 2013, 10:12:15 am
|
|
Hi und danke für die Antwort. Stimmt, bitshift ist eine Idee. Aber die Maske ist mir noch unklar. wenn ich 0101 1010 0011 habe ergibt "& 0x00F" richtig "0011" -> wenn das in eine "Byte"-Variable geht sind die nicht gesetzten Stellen automatisch "0" oder werden sie nur nicht verändert, muss ich also "byte a" zuvor wieder "a = 0" resetten?
Und wenn die Maske kürzer ist als die Variable, ist das egal? Bei u_int habe ich ja je nach Prozessor 16 bzw. 32 bit, bei u_long sowieso 32. Müsste ich dann nicht "0x000F" oder "0x0000000F" nehmen?
Danke
Dirk
|
|
|
|
|
52
|
International / Deutsch / Re: Kalender mit Erinnerungsfunktion und Temperaturanzeige
|
on: February 03, 2013, 04:11:02 pm
|
Wenn die Daten statisch genug sind (geburtstage sollen sich nicht so häufig ändern hörte ich) kann man das auch in den EEPROM schreiben -> dort bleiben sie erhalten auch nach Reset / Stromausfall und sind recht einfach auslesbar, je 2 Werte (Datum und Info), dann schauen, ob day() und month() von aktuell mit einem gespeicherten Wert übereinstimmen (evtl auch 1-2 Tage in der Zukunft?) und dann entsprechend anzeigen. Dann könnte man sogar über year()-Vergleich das Alter mit anzeigen lassen, nichts inst peinlicher als eine gute Freundin älter zu machen  Dirk
|
|
|
|
|
53
|
International / Deutsch / Datentypen und Verwendung von Funktionen zur Manipulation von Bits in int/long
|
on: February 03, 2013, 02:20:11 pm
|
|
Hallo alle,
ich habe hier eine Variable x (sei sie u_long, u_int oder was auch immer), die genau 12 Bit mit Werten hat, alle höherwertigen sind "0", also habe ich einen Wert 0-4095. Diese 12 Bit sind genau genommen 3x 4 Bit, die ich dann separat weiter verarbeiten möchte / muss. Jetzt könnte ich natürlich mit mathematischen Operationen da ran gehen und das aufdröseln:
byte a; byte b; byte c; a = x/256; // Wert der 4 höchsten Bit x = x-(a*256); // Es bleiben nur noch 8 Bit übrig b = x/64; // Wert der "mittleren" 4 Bit c = x-(b*64); // Wert der niedrigen 4 Bit
Setzen kann man ja mit
byte d = B00101010;
und ausgeben mit
print(d, BIN);
Daraus stellt sich mir die Frage, ob ich nicht auch anders auf die jeweiligen Daten zugreifen kann, um das Ganze etwas eleganter und "sauberer" zu lösen? Das wäre dann auch nett, wenn man in einer Variable den "Schaltzustand" mehrere Parameter ablegen möchte.
Danke
Dirk
|
|
|
|
|
54
|
International / Deutsch / Re: testbericht zum WS2812
|
on: February 03, 2013, 06:18:35 am
|
|
Naja, Eisebaer hat schon recht. Wenn er mehrere "Einheiten" oder Räume beschicken will, sollte er nicht alle LED mitlaufen lassen, sonst frisst sich der Stromvorteil irgendwann auf. Aber Multiplexen sollte gehen, im einfachsten Fall über eine Interruptroutine im Arduino? Also den Ausgabepin auf einen InterruptPin legen, den Interrupt auslesen und mittels einer Variable direkt an einem anderen Port wieder ausgeben lassen?
Also mal schematisch so gedacht: define AusgabePin 0; //irgenein Port, der Interruptfähig ist byte Channel = 0; // Variable für späteren Ausgabeport
setup() { }
loop() { => Ausgabe definieren, Channel mit Wert belegen => mit fastspi auf AusgabePin ausgeben }
interrupthandler() { Wenn Interrupt an Port AusgabePin, dann AusgabePin lesen und direkt an Channel wieder ausgeben; }
Wäre das ein denkbarer Ansatz? Die Idee mit dem AusgabePin, der gleichzeitig wieder Interrupt-Eingang ist, habe ich aus einem DCF77-Filter-Projekt (auch hier im Forum) entliehen.
Liebe Grüße
Dirk
|
|
|
|
|
56
|
International / Deutsch / Re: Brauche Hilfe mit i2c Display
|
on: February 03, 2013, 06:06:28 am
|
Die LCD-Bibliothek gibt ähnlich aus wie Serial auch, also mit lcd.print("Hallo Welt"); kannst du etwas anzeigen. Ebenso geht lcd.println("Eine Zeile"); um eine Zeile mit Zeilenumbruch zu schreiben. Die statischen Daten, also z.B. dein "Celsius: ", kannst du "stehen lassen", indem du die Position angibst, an der ausgegeben werden soll: lcd.setCursor(col,row); wobei 0,0 die obere linke Ecke angibt. Die Angabe ist in Zeichen, nicht in Punkten bei der LCDLibrary. Und alles zum nachlesen in den Beispielen der LCDLibrary. Liebe Grüße und viel Erfolg Dirk
|
|
|
|
|
58
|
International / Deutsch / Re: Schaltung abspecken
|
on: February 02, 2013, 08:01:22 am
|
|
Die Rasterplatine verkabelst du so, wie du es schon selbst sagtest: durchstecken und verlöten. Ansonsten Verkabelung wie auf einem Breadboard halt, da muss man nicht extra mit irgendwas vorplanen, wenn es nicht zu komplex wird.
Dirk
|
|
|
|
|
59
|
International / Deutsch / Re: 24C08 Wiring & Sketch
|
on: February 02, 2013, 06:56:56 am
|
Danke für die Infos. Im Datenblatt für den 24C65 (hat den schon mal jemand mit einem Arduino genutzt?) ist folgendes angegeben: Endurance: - 10,000,000 E/W cycles guaranteed for High Endurance Block - 100,000 E/W cycles guaranteed for a Standard Endurance Block
Kann mir das mit dem "High Endurance Block" und dem "Standard Endurance Block" bitte mal jemand erklären? Dirk
|
|
|
|
|
60
|
International / Deutsch / Re: Schaltung abspecken
|
on: February 02, 2013, 06:42:45 am
|
|
Danke schön für die Links. Klingt spannend für kleinere Projekte. Der ATTiny braucht nix weiter an Randbeschaltung außer Betriebsspannung und evtl. Pullups? Der IC ist angegeben mit 2,7V - 5,6V, hat jemand Erfahrungswerte für Optimum? So 2x AA (=3V) stabil? Oder lieber 5V?
Dirk
|
|
|
|
|