Show Posts
Pages: 1 ... 199 200 [201] 202 203 ... 234
3001  Forum 2005-2010 (read only) / Deutsch / Re: Transistor und PWM on: January 21, 2010, 12:16:45 pm
Typisch sind eher 0.2 - 0.3 V --> also 0.5W - 1W. Das reicht ein kleiner Kühlkörper. Die Frage ist halt was man unter "gross" versteht smiley
3002  Forum 2005-2010 (read only) / Deutsch / Re: Transistor und PWM on: January 20, 2010, 03:48:25 pm
http://www.elektronik-kompendium.de/sites/bau/0201291.htm

Was den Basisvorwiderstand angeht: gewünschten Basisstrom I aus dem Datenblatt entnehmen, Spannung die anliegen wird 5V abzüglich Spannungsabfall, aber wir rechnen bequemerweise mit 5V --> R = U/I = 5V/I, fertig. Also z.B. I = 10 mA --> R = 5V/0.01 A = 500 ohm

Nicht bis an die Grenze des maximal zulässigen Basisstroms gehen, aber auch nicht ausrechnen was man mindestens braucht. Man will, daß der Transistor voll durchschaltet --> dann fällt da auch kaum Leistung an und er wird entsprechend nicht sehr warm --> kein großer Kühlkörper erforderlich.

Gruß, Udo
3003  Forum 2005-2010 (read only) / Deutsch / Re: Widerstand als "Poti" ? on: January 23, 2010, 06:21:02 am
Zeig mal Deinen Schaltplan. Das macht die Fehleranalyse gleich gewaltig leichter.

Gruß, Udo
3004  Forum 2005-2010 (read only) / Deutsch / Re: Serielle Signale in versch. Variablen speichern on: January 18, 2010, 04:19:30 pm
Ich habe sowas ja noch nie probiert, aber ich befürchte der Code wird am Boden besser funktionieren wie in der Luft. Das Problem ist, daß die Verbindung früher oder später verrauscht sein wird.

Was mir dazu einfällt:
1) Die Steuercodes sollten "out of Band" übertragen werden,

oder besser:

2) Alle Datenpakete sollten mit Prüfsummen und/oder Fehlerkorrektur verschickt werden

Ich denke http://de.wikipedia.org/wiki/Reed-Solomon-Code wäre sicher ein sehr guter Anfang. Für Anfänger aber vieleicht etwas schwierig. Ansonsten CRC: http://de.wikipedia.org/wiki/Zyklische_Redundanzpr%C3%BCfung.

Auf jeden Fall braucht es eine Möglichkeit Übertragungsfehler zu erkenen und danach sobald die Verbindung wieder OK ist den Datenstrom wieder zu synchronisieren.

Gruß, Udo

P.S. Und vieleicht ist es auch noch eine gute Idee mit einer möglichst niedrigen Baudrate zu arbeiten.
3005  Forum 2005-2010 (read only) / Deutsch / Re: Transistoren: NPN oder PNP ?? on: January 11, 2010, 03:44:54 pm
http://de.wikipedia.org/wiki/Transistor
http://www.elektronik-kompendium.de/sites/bau/0201291.htm
3006  Forum 2005-2010 (read only) / Deutsch / Re: Transistoren: NPN oder PNP ?? on: January 07, 2010, 12:48:29 pm
Das ist OK so. Wenn überhaupt gehen da die LEDs oder die Transistoren kaputt. Die sind aber nicht teuer smiley Im Zweifelsfall musst Du im Datenblatt nachschauen was der maximal zulässige Impulsstrom ist. In der Regel ist der aber schon größer als der Dauerstrom.
3007  Forum 2005-2010 (read only) / Deutsch / Re: Transistoren: NPN oder PNP ?? on: January 07, 2010, 12:46:42 pm
Das ist OK so. Wenn überhaupt gehen da die LEDs oder die Transistoren kaputt. Die sind aber nicht teuer smiley Im Zweifelsfall musst Du im Datenblatt nachschauen was der maximal zulässige Impulsstrom ist. In der Regel ist der aber schon größer als der Dauerstrom.
3008  Forum 2005-2010 (read only) / Deutsch / Re: Transistoren: NPN oder PNP ?? on: January 04, 2010, 10:59:18 am
Noch eine Anmerkung. Du willst die Transistoren normalerweise durchschalten (damit sie nicht warm werden). Also muß der Basisstrom möglichst hoch sein. Allerdings darf er den zulässigen Wert nicht überschreiten. --> Die Basiswiderstände dürfen ruhig etwas kleiner ausfallen.

Was PNP und NPN Transistoren angeht: Du willst schalten, nicht verstärken --> das geht auch mit nur einer Sorte Transistoren. Der Vorteil ist, daß man nachher nur eine Sorte Bauteile hat und beim Einlöten keine verwechseln kann.

Was das "vorne" und "hinten anschliessen" angeht. Schau Dir mal "Emitterschaltung" und "Kollektorschaltung" an:

http://www.elektronik-kompendium.de/sites/slt/0203111.htm

So und jetzt zu der Frage warum diese Emitterschaltungen keinen Basiswiderstand brauchen. Der Basisstrom ist grob I_B = I_C / B mit B die Gleichstromverstärkung. Da I_C ja aber schon für die Dioden auf ein paar Milliampere begrenzt wird (durch den Widerstand), fällt der Basisstrom entsprechend klein aus --> man braucht ausnahmsweise keinen Basiswiderstand.

Der Grund dafür ist, daß mit steigendem Basistrom der Transistor weiter durchschaltet. Deshalb geht die Spannung am Emitter Richtung Versorgungsspannung hoch. Das führt zu einer Gegenkopplung der Basisspannung und damit des Basisstroms.

Gruß, Udo
3009  Forum 2005-2010 (read only) / Deutsch / Re: Transistor und PWM gedimmte LEDs. (flackern) on: December 29, 2009, 03:49:56 am
Naja, die Idee wäre die PWM an der Kathode wirklich durchlaufen zu lassen und nur die LEDs an und aus zu schalten. Meine Vermutung wäre, daß Du die LEDs eher im Bereich von <= 10 Hz umschalten würdest (d.h. ein gedimmtes Lauflicht). Damit wären dann alle Schwebungseffekte mehr oder weniger weg.

Vieleicht verstehe ich ja aber auch einfach nicht genau was das Ziel ist. Kannst Du das mal detailiert breit treten? Dann wird's mit den Tipps auch leichter. Allerdings: wenn es jetzt geht ist ja alles OK smiley

Ich würde mir übrigens nicht soviel Aufwand machen. Ein Seeduino Mega kostet nicht soviel und hat 14 PWM Ausgänge. Da kann man sich da Multiplexen gleich sparen. Für 2die 0 Euro mehr die das im Vergleich zum Arduino kostet ist es den Zeitaufwand nicht wert. Ausserdem gibt es auch billige Alternativen:

http://www.futurlec.com/ET-AVR_Stamp_Technical.shtml

Gruß, Udo
3010  Forum 2005-2010 (read only) / Deutsch / Re: Transistor und PWM gedimmte LEDs. (flackern) on: December 28, 2009, 03:59:18 pm
Die Arduino Prescaler stehen normalerweise auf 64 --> die PWM Frequenzen sind dann etwa 500 und 250 Hz.

Jetzt wird durch die äußere Schleife nochmal eine Art PWM drübergelegt die in der Nähe von n Millisekunden liegt.

Das Ergebnis nennt sich je nachdem in welchem Umfeld man es beobachtet mal Schwebung http://de.wikipedia.org/wiki/Schwebung
mal Moiree Effekt http://de.wikipedia.org/wiki/Moir%C3%A9-Effekt.

Nanosekunden Delay auf einem 16 MhZ Chip geht nicht. Mikrosekunden schon (delayMicroseconds()).

Vermutlich wäre es aber besser das ganze Konzept zu überdenken. Was genau willst Du erreichen? Die LEDs unabhängig voneinander dimmen oder alle gemeinsam? Im zweiten Fall wäre es erheblich leichter die Kathoden zu Modulieren und die Anoden zu schalten.

Ansonsten wäre es sinnvoll die beiden Frequenzen möglichst weit auseinander zu bringen. D.h. PWM hochdrehen. Das ist nicht weiter schwierig, bringt aber das Timingverhalten von von delay() durcheinander.

In wiring.c steht:

Code:
#include "wiring_private.h"

// the prescaler is set so that timer0 ticks every 64 clock cycles, and the
// the overflow handler is called every 256 ticks.
#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(64 * 256))

// the whole number of milliseconds per timer0 overflow
#define MILLIS_INC (MICROSECONDS_PER_TIMER0_OVERFLOW / 1000)

// the fractional number of milliseconds per timer0 overflow. we shift right
// by three to fit these numbers into a byte. (for the clock speeds we care
// about - 8 and 16 MHz - this doesn't lose precision.)
#define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3)
#define FRACT_MAX (1000 >> 3)

volatile unsigned long timer0_overflow_count = 0;
volatile unsigned long timer0_millis = 0;
static unsigned char timer0_fract = 0;

SIGNAL(TIMER0_OVF_vect)
{
      // copy these to local variables so they can be stored in registers
      // (volatile variables must be read from memory on every access)
      unsigned long m = timer0_millis;
      unsigned char f = timer0_fract;

      m += MILLIS_INC;
      f += FRACT_INC;
      if (f >= FRACT_MAX) {
            f -= FRACT_MAX;
            m += 1;
      }

      timer0_fract = f;
      timer0_millis = m;
      timer0_overflow_count++;
}

Wenn Du also den Prescaler auf 1 stellst, dann wird die ISR 64 mal so oft durchlaufen. Also etwa alle 16 Mikrosekunden. --> es wäre sinnvoll die ISR gleich ganz abzustellen. Ansonsten wird Dein Arduino nur noch in der ISR rumgammeln.

Am bequemsten geht das mit "cli()".

Gruß, Udo
3011  Forum 2005-2010 (read only) / Deutsch / Re: Handelsübliches Infrarotthermometer anschließen on: January 05, 2010, 02:11:27 pm
Die Spannungen wirst Du wohl mit einem externen Netzteil versorgen müssen. Zum Verstärken nimmst Du bequemerweise einen Operationsverstärker. Das Signal vom Infrarotsensor wird vermutlich eher niederfrequent sein, also wird so ziemlich jeder OP tun.

Die Schaltung die Du brauchst wird z.B. hier beschrieben:

http://www.elektronik-kompendium.de/sites/slt/0210141.htm

oder alternativ auch so:

http://www.elektronik-kompendium.de/sites/slt/0210151.htm

Ein typischer OPAmp ist z.B. µA 741 DIP, der kostet bei Reichelt 17 Cent. Aber wie gesaagt: für das was Du vor hast geht vermutlich so ziemlich jedes Modell.

Gruß, Udo

3012  Forum 2005-2010 (read only) / Deutsch / Re: ontime bei PWM messen on: January 05, 2010, 05:19:00 am
Die laufen schon weiter, auch ohne detach. Sie laufen nur nicht weiter so lange Du in Deinem Interrupt bist. D.h. solange Deine Interrupts sehr schnell abgearbeitet werden kannst Du die schon nutzen.

Seeduino Mega ist eine gute Wahl smiley
3013  Forum 2005-2010 (read only) / Deutsch / Re: ontime bei PWM messen on: January 04, 2010, 04:58:58 pm
Nur so ein Gedanke: angenommen man bekommt die Signale auf einem Pin rein (und der Pin bleibt bei stehendem Motor auf low), dann könnte man ja grob so loslegen:

1) warten bis pin auf high geht
2) microsekunden Zähler auf merken (t0)
3) warten bis pin auf low geht
4) Zählerstand merken (t1)
5) warten bis pin auf high geht (oder t1-t0 > 1s)
6) Zählerstand merken t2
7) Verhältnis ausrechnen (t2-t1) zu (t1-t0) (bzw: bei Timeout von 5 Verhältnis auf 100% setzen); aufpassen, daß hier nicht durch 0 dividiert wird.
smiley-cool Bei Bedarf den Ladedruck runternehmen
9) wieder bei 1 weitermachen

Geht bei 200 Hz locker ohne Interrupts

Mikrosekunden liest man mit micros() aus.

Sollte nicht so schwierig sein smiley
3014  Forum 2005-2010 (read only) / Deutsch / Re: ontime bei PWM messen on: January 04, 2010, 04:43:12 pm
Klar geht das. Guckst Du hier:

http://www.arduino.cc/en/Reference/AttachInterrupt

Was die maximale Frequenz angeht: das hängt davon ab was Du im IRQ Handler so alles treibt. Ich habe hier einen sehr schlanken für mein Projekt und der läuft mit 10 kHz (und verbraucht dann aber auch schon satte 10% der Gesamtrechenleistung). Aber bei 200 Hz hast Du pro Periode 50000 Zyklen zur Verfügung, da kann man schon was rechnen.

Wenn Du statt den Arduino Libs direkt auf die Ports losgehts (Atmel Datenblatt beachten), dann kannst Du vermutlich sogar noch bei 100kHz (also 160 Zyklen pro Periode) noch was brauchbares machen.

Es ist also genug Luft da.

Andererseits: bei 200 Hz brauchst Du vermutlich überhaupt keine Interrupts. Da kannst Du auch Pollen. Daß Du den Arduino dann nicht schlafen schicken kannst sondern dauern Strom verbrauchst sollte ja kein Problem sein wenn das Ding im Auto läuft. Da sind die 100-200 mW ja wohl kein Problem.

Gruß, Udo
3015  Forum 2005-2010 (read only) / Deutsch / Re: Newbie Frage: Bauteile Übersicht/Cheatsheet on: December 28, 2009, 10:51:03 am
Schwierig zu sagen wo man anfangen soll. Also:

http://www.elektronik-kompendium.de/

ist schon mal nicht schlecht. Dann gibt es diese Linksammlung:

http://www.mikrocontroller.net/articles/Linksammlung.

Ansonsten mußt Du Dir eben einen Katalog (Reichelt, Conrad, ...) besorgen und nachschauen was Du willst. Als Anfänger wirst Du wohl oder übel etwas länger brauchen. Elektronik ist auch nicht schwerer zu lernen als Gitarre ... da braucht man auch Jahre bis man es richtig gut kann. Nicht umsonst kann man beides auch studieren smiley-wink
Pages: 1 ... 199 200 [201] 202 203 ... 234