Forum: Mikrocontroller und Digitale Elektronik Schrankbeleuchtung mit Tiny und FETs flackert


von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Community,

ich "musste" eine Schrankbeleuchtung für den Kleiderschrank meiner 
Freundin bauen. Sie funktioniert nach folgendem Prinzip:

Schrank --> Reedkontakt
Tür --> Magnet

Ist die Tür geöffnet, bekommt der Tiny über den internen Pullup ein 
High-Signal und steuert den FET an. Am FET hängt ca. 1m LED Stripe 
(12V).

PROBLEM:

Sind beide Türen geöffnet sind beide Stripes an. Bis hierhin super.
Schließe ich eine Tür, geht der entsprechende Stripe aus. Der andere 
Stripe (des zweiten Schranks) geht allerdings auch für ca. 200ms aus. 
Also ein kurzes blitzen. Woran kann das liegen? Mein Code ist denkbar 
simpel. Die Schaltung habe ich angehängt. Danke für eure Ratschläge
1
#include <avr/io.h>
2
3
int main()
4
{
5
6
  DDRB  = 0b00011100; // Pin 2 Pin 3 und 4 sind Ausgänge.
7
  PORTB = 0b00000011; // PullUp für PIN 0 und PIN 1 (Reedschalter)
8
9
  while (1)
10
    {
11
    //---------------------------------------------------------
12
    // Abfrage Channel 1 
13
    //---------------------------------------------------------
14
      if (bit_is_clear(PINB,0)) 
15
       {
16
        PORTB &= ~(1<<4);
17
       }
18
      else
19
       {
20
        PORTB |= (1<<4);  
21
       }
22
23
    //---------------------------------------------------------
24
    // Abfrage Channel 2 
25
    //---------------------------------------------------------
26
27
      if (bit_is_clear(PINB,1)) 
28
       {
29
        PORTB &= ~(1<<3); 
30
       }
31
      else
32
       {
33
        PORTB |= (1<<3);  
34
       }
35
36
    }
37
38
}

von Sven Neust (Gast)


Lesenswert?

Der Reed prellt!

von Steffen (Gast)


Lesenswert?

Sven Neust schrieb:
> Der Reed prellt!

Deswegen flackerts im anderen Schrank? Halte ich für unwahrscheinlich...

von Nico (nico123)


Lesenswert?

Wieviel Strom ziehen denn die LED-Streifen?
Schafft dein Netzteil genügend Strom zu liefern?
Poste mal ein Foto von dem Schaltungsaufbau!
Wie groß ist R1? Wie nach sitzt C5 am Controller?

von Radiostar (Gast)


Lesenswert?

Wozu eigentlich der Controller?  Der hat doch überhaupt keine Funktion, 
die Reedkontakte kann man auch direkt mit den Transistoren verbinden. 
Soll da noch mehr draus werden?

von Otto (Gast)


Lesenswert?

Vermutlich koppelt im Anschlusskabel eine Spitze der gerade 
abgeschalteten Leitung in den anderen Eingang ein,  da du keinen 
EMV-Kondensator  zwischen Eingang und GND hadt.

von Steffen (Gast)


Lesenswert?

Nico ... schrieb:
> Wieviel Strom ziehen denn die LED-Streifen?
> Schafft dein Netzteil genügend Strom zu liefern?
> Poste mal ein Foto von dem Schaltungsaufbau!
> Wie groß ist R1? Wie nach sitzt C5 am Controller?

Die Stripes ziehen etwa 1A.
Das Netzteil ist für 12V 2,5A ausgelegt. Ich habe das gleiche  NT mit 
etwa 5m (etwa 2A) Stripe seit ewiger Zeit im Einsatz. Das läuft.

R1 = 10k
C5 = direkt am Controller

von Jens A. (nepi)


Lesenswert?

Versuch mal die Zykluszeit zu erhöhen gegen Prellen mit einem Delay.
Ergänze einen Pull-Down Widerstand zwischen Gate und Source an den FETs. 
Vielleicht ein Masseproblem?
Mach doch mal ein Foto von der Platine.

von Steffen (Gast)


Lesenswert?

Radiostar schrieb:
> Wozu eigentlich der Controller?  Der hat doch überhaupt keine Funktion,
> die Reedkontakte kann man auch direkt mit den Transistoren verbinden.
> Soll da noch mehr draus werden?

nein... Reeds, die 1A aushalten sind teuer...

Otto schrieb:
> Vermutlich koppelt im Anschlusskabel eine Spitze der gerade
> abgeschalteten Leitung in den anderen Eingang ein,  da du keinen
> EMV-Kondensator  zwischen Eingang und GND hadt.

Wenn eine Spitze einkoppeln würde, dann würde der Stripe doch nicht 
ausgehen.

Vermutung: Aus irgendeinem Grund muss die Gatespannung kurz einbrechen 
oder der Controller schaltet kurz ab.

von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

Jens A. schrieb:
> Versuch mal die Zykluszeit zu erhöhen gegen Prellen mit einem
> Delay.
> Ergänze einen Pull-Down Widerstand zwischen Gate und Source an den FETs.
> Vielleicht ein Masseproblem?
> Mach doch mal ein Foto von der Platine.

Ein Foto kann ich grad nicht liefern. Aber das Boardlayout der neuen 
Revision mit drei Kanälen.

von Bauteiltöter (Gast)


Lesenswert?

Steffen schrieb:
> nein... Reeds, die 1A aushalten sind teuer...

Deswegen sollst du mit den Reedrelais ja auch nicht die LED-Streifen 
schalten, sondern die Gates der MOSFETs. Die brauchen keinen Strom und 
sind damit perfekt geeignet.
Außerdem: Was ein Reedrelais nicht schalten kann, dass schafft ein 
Controller mit seinen +-20mA erst recht nicht.

lg
Bauteiltöter

von Maik M. (myco)


Lesenswert?

Eine weitere Möglichkeit: Wenn sich das Gate des Mosfets entläd, fließt 
kurzzeitig ein sehr hoher Strom durch den Tiny, dadurch wird er zum 
Neustart gebracht. Ein kleiner Widerstand zwischen Tiny und den Mosfets 
könnte helfen.

von Steffen (Gast)


Lesenswert?

Maik M. schrieb:
> Eine weitere Möglichkeit: Wenn sich das Gate des Mosfets entläd, fließt
> kurzzeitig ein sehr hoher Strom durch den Tiny, dadurch wird er zum
> Neustart gebracht. Ein kleiner Widerstand zwischen Tiny und den Mosfets
> könnte helfen.

Ja. Das ist wahrscheinlich. Das werd ich mal ausprobieren.

Bauteiltöter schrieb:
> Deswegen sollst du mit den Reedrelais ja auch nicht die LED-Streifen
> schalten, sondern die Gates der MOSFETs. Die brauchen keinen Strom und
> sind damit perfekt geeignet.

Habe bei Farnell keine entsprechenden Reeds gefunden. Die schließen 
alle, wenn der Magnet "da ist". D.h. für meine Anwendung: Licht an, wenn 
Tür zu...

Evtl. wird der Controller auch noch mehr übernehmen müssen (evtl. dimmen 
o.ä.)

von Steffen (Gast)


Lesenswert?

Maik M. schrieb:
> Eine weitere Möglichkeit: Wenn sich das Gate des Mosfets entläd, fließt
> kurzzeitig ein sehr hoher Strom durch den Tiny, dadurch wird er zum
> Neustart gebracht. Ein kleiner Widerstand zwischen Tiny und den Mosfets
> könnte helfen.

BTW:

Was bedeutet klein? 100 Ohm zwischen PIN und Gate?

von F. F. (foldi)


Lesenswert?

Jens A. schrieb:
> Ergänze einen Pull-Down Widerstand zwischen Gate und Source an den FETs.

Da verschwinden dann die merkwürdigsten Erscheinungen.

von Maik M. (myco)


Lesenswert?

ja, 100 Ohm müssten noch gehen. Sicherer wäre aber alles größer 250 Ohm. 
Wenn ich mich recht erinnere waren bei den AVR immer 20mA pro Pin 
angegeben.

PS: C3 ist an der ungünstigsten Stelle platziert. Er sollte näher an den 
Regulator.

von Steffen (Gast)


Lesenswert?

Maik M. schrieb:
> Wenn ich mich recht erinnere waren bei den AVR immer 20mA pro Pin
> angegeben.

Ja... Mit welcher Spannung muss ich rechnen? Ich denke 5V, oder? Dann 
sinds

333 Ohm (5V/15mA)

Oder gibts da auch eine Spannungsspitze?

von Steffen (Gast)


Lesenswert?

F. Fo schrieb:
> Jens A. schrieb:
>> Ergänze einen Pull-Down Widerstand zwischen Gate und Source an den FETs.
>
> Da verschwinden dann die merkwürdigsten Erscheinungen.

hmm... Jetzt nen Pulldown? Ok.

Ich würde jetzt 470 Ohm zwischen Gate und PIN schalten. Zusätzlich 10k 
Gate gegen Source?

von Maik M. (myco)


Lesenswert?

Steffen schrieb:
> Maik M. schrieb:
>> Wenn ich mich recht erinnere waren bei den AVR immer 20mA pro Pin
>> angegeben.
>
> Ja... Mit welcher Spannung muss ich rechnen? Ich denke 5V, oder? Dann
> sinds
>
> 333 Ohm (5V/15mA)
>
> Oder gibts da auch eine Spannungsspitze?

Nein, die 5V kannst du zum Rechnen nehmen. Die 20mA Angabe ist für 
Dauerbelastung... der max. Strom fließt allerdings nur ganz kurz, daher 
kann man da auch leicht drüber gehen, vorrausgesetzt die 
Spannungsversorgung ist stabil.

von Steffen (Gast)


Lesenswert?

Maik M. schrieb:
> vorrausgesetzt die
> Spannungsversorgung ist stabil.

Sollte stabil sein (7805 12V --> 5V)

von Michael (Gast)


Lesenswert?

Maik M. schrieb:
> PS: C3 ist an der ungünstigsten Stelle platziert. Er sollte näher an den
> Regulator.

Alle Kondensatoren sind ungünstig platziert. Kondensatoren immer 
zwischen Versorgung und zu versorgendes Bauteil platzieren.

von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe die Widerstände mal mit eingeplant und die C´s neu platziert. 
Ich hoffe das passt so.

von Marius S. (lupin) Benutzerseite


Lesenswert?

Reedschalter -> NPN oder Fet mit Pullup am Kollektor -> Gate vom 
Leistungstransistor

Tür zu -> Reed offen -> aus
Tür auf -> Reed geschlossen -> an
Aber muss ja mit controller sein...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Sorry, ich verstehe auch nicht, was der Tiny da nun macht. Entweder 
lässt du die Reeds einseitig an Masse und schaltest gegen Pullups am 
Gate des MOSFet, oder du hängst die Reeds einseitig an Vcc und hast 
Pulldowns und Gatewiderstände an den FET.
Damit sparst du dir die gesamte Tiny-Regler-Kondensator Anordnung. Die 
einzig sinnvolle Anwendung für den MC wäre, wenn jemand vergisst die 
Schranktür zu schliessen, das dann nach einer Weile die LED 
ausgeschaltet werden. Aber das kann ich im Programm nicht entdecken.

von Otto (Gast)


Lesenswert?

Dreh C3 um 90°, dann wird die Leiterbahn kürzer, verpass der 
Spannungsversorgung noch eine Verpolschutzdiode umd jedem Eingang einen 
47n gegenGNS.

von Otto (Gast)


Lesenswert?

Entschuldigung: gegen GND

von FET Ansteuerer (Gast)


Lesenswert?

RTFDS irfz24n

Vgs = 20 V,
schaltet voll durch ab 10V
ATtiny liefert 5V Steuerspannung,
Fet schaltet nie voll durch -> das Licht flackert

versuchs mal mit IRLML6246, der schaltet ab 3,3V voll durch
auch im SOT-23-3 Gehäuse ausreichend um 12V/1A zu schalten

Alternativ mit nem Transistor das Gate auf GND ziehen und per Pullup an 
+12V den FET durchschalten

von Steffen (Gast)


Lesenswert?

FET Ansteuerer schrieb:
> gs = 20 V,
> schaltet voll durch ab 10V
> ATtiny liefert 5V Steuerspannung,
> Fet schaltet nie voll durch -> das Licht flackert
>
> versuchs mal mit IRLML6246, der schaltet ab 3,3V voll durch
> auch im SOT-23-3 Gehäuse ausreichend um 12V/1A zu schalten
>
> Alternativ mit nem Transistor das Gate auf GND ziehen und per Pullup an
> +12V den FET durchschalten

Oh Sorry. Ich nutze den IRLZ24N. Den gabs nur grad in lib nicht.

von F. F. (foldi)


Lesenswert?

Matthias Sch. schrieb:
> Sorry, ich verstehe auch nicht, was der Tiny da nun macht. Entweder
> lässt du die Reeds einseitig an Masse und schaltest gegen Pullups am
> Gate des MOSFet, oder du hängst die Reeds einseitig an Vcc und hast
> Pulldowns und Gatewiderstände an den FET.
> Damit sparst du dir die gesamte Tiny-Regler-Kondensator Anordnung. Die
> einzig sinnvolle Anwendung für den MC wäre, wenn jemand vergisst die
> Schranktür zu schliessen, das dann nach einer Weile die LED
> ausgeschaltet werden. Aber das kann ich im Programm nicht entdecken.

Matthias, wenn man doch einen µC hat, dann MUSS man alles damit 
machen.;-)


"Ist die Tür zu, Schatz?"
"Moment, ich gehe mal eben ins Netz mit dem iPad und schaue nach, doch, 
wo ist denn nur das verdammte Tablet geblieben ... "

"Ach, bleib sitzen, ich hab gerade selbst nachgesehen - an der Tür 
selbst, sie ist zu!"

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
Noch kein Account? Hier anmelden.