Schrankbeleuchtung mit Tiny und FETs flackert

Gast #3403926
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
}
Angehängte Dateien:
Gast #3403956
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
Gast #3403963
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.
Gast #3403967
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.
Angehängte Dateien:
Gast #3403968
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
Gast #3403974
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.ä.)
Gast #3403986
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?
Gast #3403999
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?
#3404000
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.
(Firma: matzetronics) #3404080
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.
Gast #3404144
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
Gast #3404283
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.
#3404610
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!"

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren