mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BC548C an ATiny2313 seltsames Verhalten


Autor: Orikson (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich baue gerade an einem kleinem Projekt. Dabei möchte ich über einen 
Transistor (hier der BC548C) ein Signal schalten, wenn ein Taster 
gedrückt wird. Habe dazu die Basis der Transistors direkt an PB5 und 
eine LED zum testen über einen 470 Ohm Widerstand an PB6 angeschlossen. 
Als Taster hängen an PD0 - PD6 und PB0 - PB4 kleine Kupferplätchen (10 x 
10 mm) welche ich als Kapazitive Taster nutzen möchte.

Habe mir jetz zum testen ein kleines Program geschrieben welches einfach 
die LED und den Transistor an- und ausschaltet. Die LED blinkt dabei 
wunderbar, allerdings mag der Transistorausgang nicht! Habe daran eine 
LED mit Vorwiderstand von 470 Ohm und eine Stromquelle mit 5 Volt dran. 
Der Schaltkreis ist logischerweiße durch den Transistor unterbrochen, an 
Collector vom Transistor sind 5 Volt, an Emitter der Widerstand, daran 
Anode der LED und an der Kathode der LED Ground.

Wenn ich die Firmware aufspiele fängt die direkt angeschlossene LED also 
an zu blinken, die am Transistor glimmt nur ganz leicht. Wenn ich jetz 
mit meinem Finger eine Stelle auf der Platine berühre, welche mit Ground 
verbunden ist leuchtet die LED am Transistor schon viel heller und man 
kann auch das blinken erkennen. berühre ich jetz noch gleichzeitig beide 
Füßchen der LED am Transistor blinkt sie, wie sie soll! Auch wenn man in 
die näche der Kupferplätchen kommt (die keinen Kontakt zueinander haben) 
wird die LED etwas heller, aber nur minimal. Habe auch schon dem BC548 
nen Basiswiderstand von 1kOhm verpasst mit der Ergebnis, dass die LED 
daran gar nicht mehr leuchtet...

Woran kann das liegen? Habe auch schon die internen Pull-Up Widerstände 
für die Eingangspins aktiviert und die Taktrate runtergestellt, ohne 
Erfolg.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

der Transistor braucht natürlich einen Basisvorwiderstand, ca. 10kOhm.

Also so:
                +5V
                Last mit Vorwiderstand
               /C
PB5 ---10k---B|   BC548
               \E---GND


J.

Autor: Orikson (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habs mal umgeklemmt und nen größeren Basiswiderstand (1k Ohm) rein => 
keine Besserung.

Wenn ich mit dem Finger auf Ground (z.B. vom 7805) lang und mit einem 
anderen die Beinchen der LED seh ich mit 1kOhm Basiswiderstand die nur 
ganz leicht blinken. Ohne Basiswiderstand wäre die immerhin schon etwas 
heller!

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bitte mal jetzigen Aufbau als Bild posten. Das macht die Fehlersuche 
einfacher.

J.

Autor: Orikson (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, hier ein paar Bilder:
http://pic.leech.it/images/2024771.jpg
http://pic.leech.it/images/14547dc167b2.jpg
Wie man sieht ist nur das wichtigste enthalten. Der ATiny2313 läuft mit 
den internen 1 MHz, da ich keinen so exakten Takt brauch.

http://pic.leech.it/images/baabcfa26b3.png
http://pic.leech.it/images/811317bddec4.png
Und das sind die Schaltpläne und das Layout. Wie oben zu sehen hab ich 
probehalber den Transistor und den Basiswiderstand unten rangemacht.

Autor: Gast #2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der dicke C muss aber zw. Spannungsregler und Gleichrichter

Autor: Orikson (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ändert leider auch nichts dran. Hier mal ein Video, da wird es eher 
ersichtlich, wie das Problem aussieht:
Youtube-Video "LED problem Atmel ATiny 2313"

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich sehe im Video eine blaue und eine rote LED blinken. Und einen dicken 
Finger an einem schwarzen Teil links rummachen. Und irgendwann schliesst 
ein anderer dicker Finger die Beinchen der roten LED kurz. Es sieht so 
aus, als ob eine Bewegung des schwarzen Teils die rote LED beeinflusst 
und die blaue LED nicht. Die rote LED ist mit einer "fliegenden" 
Verdrahtung aufgebaut.Möglicherweise spielt ein schlechter Kontakt eine 
Rolle, wenn die rote LED zeitweise länger aussetzt...

Aus deinem Schaltplan (http://pic.leech.it/images/811317bddec4.png) 
werde ich auch nicht schlau. Mir würde es helfen, wenn du das genauer 
zeichnen würdest. Z.B. so, dass man erkennt wo sich welche LEDs befinden 
und wo welche Vorwiderstände sitzen.

"Der BC548C ist ein universeller NPN-Transistor für Verstärkungs- und 
Schaltanwendungen."

d.h. man geht so vor wie von Gast gezeichnet oder wie im linken 
Halbbbild von 
http://www.mikrocontroller.net/articles/Transistor...

Deine Beschreibung

> an Collector vom Transistor sind 5 Volt, an Emitter der Widerstand, daran
> Anode der LED und an der Kathode der LED Ground.

ist anders. Bei deiner Schaltung geht auch der Basisstrom durch den 
Vorwiderstand und die LED. Dadurch bekommst du eine Beeinflussung des 
Eingangs deiner Steuerung (Basis) durch den Ausgang (Emitter).

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie lange willst Du bei diesem Aufbau eigentlich so leben?

Kriechstrecken bei 230V sind mindestens 6-7mmm. Jeder Dreckfussel 
zwischen Trafoanschlüssen und GND-Fläche legt die Netzspannung an die 
restliche Schaltung! Zusammen mit einer Berührungsgeschichte also die 
µC-gesteuerte Version des elektrischen Stuhls?

Mit der Schaltung kann ich nicht allzuviel anfangen, weil ich nicht so 
richtig verstehe, wie der Kram überhaupt verbunden ist.

Der Transistor hängt für mich völlig in der Luft, ich kann weder I noch 
O zuordnen, an der Basis steht wohl MISO, daß liegt aber überhaupt nicht 
am Bus?

Wie sind denn die Eingänge des AVR nun überhaupt beschaltet? Offen geht 
sowieso nicht, das gibt keinen definierten Zustand, nur die Chance, sie 
mit statischen Ladungen abzuschießen.

Gruß aus Berlin
Michael

Autor: Orikson (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, dann eins nach dem anderen...

Zuerst zum Video: Der eine Finger auf der linken Seite berührt die 
Befestigungslasche vom 7805 (also Ground) wenn die rote LED heller wird. 
Das hat aber nichts mit einem Wackelkontakt zu tun, wenn ich einfach die 
Groundfläche auf der Platine berühre ist es das selbe! Und durch das 
kurzschließen der beiden Beinchen der roten LED blinkt die wie sie soll 
(nein, auch hier kein Wackler, ist alles fester verbunden als es 
aussieht). Achte im Video mal darauf: Immer wenn ich oben auf "das 
schwarze Teil" (eigentlich auf den 7805 dahinter) drücke wird die LED 
heller! Die blaue LED ist nur als Vergleich und so soll es sein! Die hab 
ich provisorisch zwischen Pin 17 vom AVR und Ground gelötet.

Die LEDs sind jetz wie folgt angeschlossen:
- Blau:
Pin 16 AVR => Kathode LED => Anode LED => Vorwiderstand => Ground
- Rot:
+ 5 Volt => Vorwiderstand => Anode LED => Kathode LED => BC548 Kollektor 
(I wie In im Schaltplan) => BC548 Emitter (O wie Out) => Ground

Die sind aber eigentlich nur temporär bis das Problem gelöst ist und die 
Schaltung läuft.

Das MOSI nicht am Bus mit dran ist stimmt, aber die hängen zusammen. Der 
BC548 ist also über einen Basiswiderstand (nicht im Schaltplan!) an Pin 
17 vom Tiny2313 angeschlossen.

Die Schaltung orientiert sich an der hier:
http://elm-chan.org/works/capsens/report_e.html
Ich möchte das Tasterprinzip übernehmen um das hinter einer Folie zu 
verstauen und beim drücken einer gewissen Kombination den Transistor 
durchschalten, quasi als Codeschloss.

Der Quellcode sieht zur Zeit übrigens so aus:
#ifndef F_CPU
#define F_CPU 1000000UL
#endif

#include <avr/io.h>
#include <util/delay.h> 

int main(void)
{
 // Ausgänge für Transistor (PB5) und Status LED (PB6)
DDRB  = (1 << PB5) | (1 << PB6);

// internen Pull-Ups anschalten
PORTB |= (1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB4);
PORTD |= (1 << PD0) | (1 << PD1) | (1 << PD2) | (1 << PD3) | (1 << PD4) | (1 << PD5) | (1 << PD6);

// als Eingänge beschalten
DDRB &= ~( (1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB4) );
DDRD  &= ~( (1 << PD0) | (1 << PD1) | (1 << PD2) | (1 << PD3) | (1 << PD4) | (1 << PD5) | (1 << PD6) );

  while(1)
  {
    // LED an
    PORTB = (1 << PB5) | (1 << PB6);
    _delay_ms(50);
    // LED aus
    PORTB &= ~( (1 << PB5) | (1 << PB6) );
    _delay_ms(50);
  };
}

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verbinde die Masse/Minus deiner "Stromquelle" (welche in Wirklichkeit 
eine Spannungsquelle ist) mit Masse/Minus deiner Schaltung, und alles 
wird gut...

Gruß,
Magnetus

Autor: Orikson (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry für die späte Antwort, aber das wars! Danke für eure Hilfe!

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und kratz die Massefläche rings um die 230V Anschlüsse des Trafos auf 
mindestens 5mm rings um die Anschlüsse ab. Das ist sonst 
Lebensgefährlich!!

Und an den 7805 gehören sowohl am Eingang als auch am Ausgang je ein 
100nF Kondensator möglichst dicht an die Pins des 7805. Der kann sonst 
Anfangen zu schwingen und du bekommst wieder neue Probleme.

Der 1000µ gehört vor den 7805. Bei deinem Aufbau kann der 7805 zerstört 
werden, wenn du deine Schaltung ausschaltest (ein Strom, welcher 
rückwärts durch den Regler fließt zerstört den in kürzester Zeit). 
Hinter den Regler kannst du dann noch einen 100µ setzen. Muss aber nicht 
sein.

Sven

Autor: Kurt Bindl (kurt-b)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven Stefan wrote:
> Und kratz die Massefläche rings um die 230V Anschlüsse des Trafos auf
> mindestens 5mm rings um die Anschlüsse ab. Das ist sonst
> Lebensgefährlich!!

Ich weiss was von 8 mm Luft/Kriechstrecken.

Der Hinweis auf die Gefährlichkeit kann nicht hoch genug eingestuft 
werden.
Ausserdem ist Berührungssicherheit und Schutz gegen abfallende Kabel zu 
gewährleisten.


> Und an den 7805 gehören sowohl am Eingang als auch am Ausgang je ein
> 100nF Kondensator möglichst dicht an die Pins des 7805. Der kann sonst
> Anfangen zu schwingen und du bekommst wieder neue Probleme.
>
> Der 1000µ gehört vor den 7805. Bei deinem Aufbau kann der 7805 zerstört
> werden, wenn du deine Schaltung ausschaltest (ein Strom, welcher
> rückwärts durch den Regler fließt zerstört den in kürzester Zeit).
> Hinter den Regler kannst du dann noch einen 100µ setzen. Muss aber nicht
> sein.

Eine Diode über den Regler (Kondensatorspannung zum Eingang legen) wär 
sicherlich nicht verkehrt.


Kurt

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kurt Bindl wrote:
>
> Ich weiss was von 8 mm Luft/Kriechstrecken.
>

Ich halt mich da immer an angehängtes Dokument. Also 3mm wenn Gerät 
einen Schutzleiter bekommt und 6mm wenn Schutzisoliert.

>
> Eine Diode über den Regler (Kondensatorspannung zum Eingang legen) wär
> sicherlich nicht verkehrt.

Stimmt. Habe ich bisher auch immer eingebaut. Sicher ist sicher.

Sven

Autor: Kurt Bindl (kurt-b)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven Stefan wrote:
> Kurt Bindl wrote:
>>
>> Ich weiss was von 8 mm Luft/Kriechstrecken.
>>
>
> Ich halt mich da immer an angehängtes Dokument. Also 3mm wenn Gerät
> einen Schutzleiter bekommt und 6mm wenn Schutzisoliert.
>

Danke für den Link.

Was noch nicht angesprochen wurde ist die ev. notwendige Sicherung auf 
der Netzseite des Trafos.
Vielleicht ist er kurzschluss- und übertemperaturfest und braucht keine.


Kurt

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich halt mich da immer an angehängtes Dokument. Also 3mm wenn Gerät
>einen Schutzleiter bekommt und 6mm wenn Schutzisoliert.
Das angehängte Dokument ist nicht die EN 60950 oder ein VDE-Papier!

Notwendige Sicherheitsabstände hängen auch davon ob, bei welchem 
Verschmutzungsgrad, in welcher Höhe über NN usw. das Gerät betrieben 
werden wird.
Ich würde dem TO raten, die Massefläche gleich nach den Sekundärpins des 
Trafos zu beenden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.