- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 10

Thema: Leistungsschalter und µC

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    08.03.2010
    Beiträge
    66

    Leistungsschalter und µC

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    ich möchte gerne 12Volt mit einem µC schalten. Das Problem ist, das ich nicht weiß welches FET ich dafür nehmen sollte.

    Ich hatte bereits Erfolge mit einem BTS660P. Diesen habe ich mit einem BC547 Transtistor angesteuert. Der BTS660P hat eine Ladepumpe und er wird aktiviert wenn man das Gate gegen GND schaltet. Dazu der BC547 Transistor. Das hat supi funktioniert. Nur leider gibts den BTS660P nicht mehr.

    Dann habe ich einen IRF3205 ausprobiert. Das ist ein N-Kanal Anreicherungstyp. Der Plan war die 5Volt auf das Gate zu geben und gut ist. Leider hört das Ding nicht mehr auf durchzuschalten. Selbst wenn man die 5Volt komplett vom Gate abklemmt. Der FET ist nicht defekt, ein zweiter den ich zum Testen probiert hatte, macht das auch. Seltsamer Weise hört er auf Durchzuschalten wenn man GND und Gate Brückt. Egal ob mit Finger oder Kabel. Keine Ahnung ob das so sein soll.

    So, jetzt würde mich mal interessieren wie ihr das so macht. Interessant wäre für mich ein FET der vom µC aus angesteuert werden kann. Gerne auch mit Hillfstransistor. Mittlerweile habe ich mich so sehr damit herumgeärgert das es einfach nur noch laufen soll. Ich möchte keine SMD-Bausteine verwenden.

    Gruß, Andreas

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    33
    Beiträge
    1.192
    Leider hört das Ding nicht mehr auf durchzuschalten. Selbst wenn man die 5Volt komplett vom Gate abklemmt. Der FET ist nicht defekt, ein zweiter den ich zum Testen probiert hatte, macht das auch. Seltsamer Weise hört er auf Durchzuschalten wenn man GND und Gate Brückt. Egal ob mit Finger oder Kabel. Keine Ahnung ob das so sein soll.
    Ja, dass muss so sein Das kommt daher, dass das Gate eine Kapazität gegenüber Source hat. Einmal aufgeladen, leitet der FET dann ständig. Zum ausschalten musst du das Gate wieder entladen (mit GND verbinden).
    Den Pin vom Mikrocontroller einfach hochohmig zu schalten reicht nicht.
    Siehe auch http://b-kainka.de/bastel12.htm

    Wenn dem FET 5V am Gate reichen, kannst du ihn direkt an einen Pin vom Mikrocontroller hängen (evtl. noch ein Widerstand dazwischen um den Mikrocontrollerpin beim Auf/Entladen der Gate-Kapazität nicht zu überlasten).
    Einschalten: 5V am Pin ausgeben
    Ausschalten: 0V am Pin ausgeben
    Falls 5V am Gate nicht reichen sollten, Suche mal nach logic-level-FETs.

    Siehe auch:
    http://www.mikrocontroller.net/artic...ntroller_an.3F

    Grüße,
    Bernhard

  3. #3
    Moderator Roboter Genie
    Registriert seit
    26.08.2004
    Beiträge
    1.228
    Hallo!
    Zitat Zitat von MechMac
    Seltsamer Weise hört er auf Durchzuschalten wenn man GND und Gate Brückt.
    Das ist vollkommen normal für einen FET.
    Im Gegensatz zu einem bipolar Transistor wie dem BC547 ist ein FET nicht Stromgesteuert sondern Spannungsgesteuert. Dazu kommt, dass das Gate des FET wie ein kleiner Kondensator wirkt.
    Gibst du 5V auf das Gate, so steuert der FET durch. Nimmst du die 5V weg (z.B. µC Pin in Tristate), so speichert dieser kleine Kondensator die Spannung und der FET bleibt durchgeschaltet. Bei einem bipolar Transistor wäre das nicht passiert, da Tristate = Hochohmig = kein Strom durch die Basis bedeutet.

    Du solltest folgendes tun:
    Den entsprechenden Pin des µC über etwa 470Ohm an das Gate des FET anschließen. Zwischen Gate und 470Ohm Widerstand setzt du einen Pull-down Widerstand mit etwa 10k gegen Masse (das verhindert die "Finger-Effekte")
    Beim ansteuern den µC-Pin nicht in den Tristate-Mode steuern sondern gegen Masse.

    Mehr Details zu den FETs findest du im RN-Wiki bzw. bei Wikipedia.

    Möchtest du trotzdem nicht auf die Vorteile des BTS verzichten, könntest du einen BTS141 von Reichelt verwenden.

    Gruß
    Basti

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    08.03.2010
    Beiträge
    66
    Hallo,


    wenn ich den 10K widerstand wie beschrieben einbaue, schaltet der FET gar nicht mehr.

    Wie gebe ich denn 0 Volt aus, bzw. wie schalte ich einen Pin gegen Masse?
    Ich habe leider keine Infos dazu gefunden.

    Oder ist das so gemeint das man den Pin als Eingang setzt? Wenn ja, mit, oder ohne internen Pull-Up?

    Gruß, Andreas

  5. #5
    Moderator Roboter Genie
    Registriert seit
    26.08.2004
    Beiträge
    1.228
    Hey!
    Poste bitte, welchen Controller du verwendest, das Programm und am besten noch einen Schaltplan.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    08.03.2010
    Beiträge
    66
    Hallo,

    ich verwende einen Atmega 644.

    Das Testprogramm ist ein wenig durcheinander weil ich da allen möglichen Kram mit teste, also nicht wundern wenn da Zeugs drin ist, was nicht benötigt wird.


    Code:
    #include <avr/io.h>
    #ifndef F_CPU
    /* Definiere F_CPU, wenn F_CPU nicht bereits vorher definiert 
       (z.B. durch Übergabe als Parameter zum Compiler innerhalb 
       des Makefiles). Zusätzlich Ausgabe einer Warnung, die auf die
       "nachträgliche" Definition hinweist */
    #warning "F_CPU war noch nicht definiert, wird nun mit 16000000 definiert"
    #define F_CPU 16000000UL     /* Quarz mit 16.0000 Mhz */
    #endif
    #include <util/delay.h>
    #include "i2cmaster.h"
    #include <util/delay.h>
    #include <inttypes.h>
    #include <stdlib.h>
    #include <avr/interrupt.h>
    #include <string.h>
    #define Dev24C02  0xA2
    #define UART_BAUD_RATE 19200L
    #define UART_BAUD_CALC(UART_BAUD_RATE,F_CPU) ((F_CPU)/((UART_BAUD_RATE)*16L)-1L) 
    
    
    int main( void )
    {
    while(1)
    	{
            PORTD ^= ( 1 << PD2 );  // Toggle 
            for(int i=0; i < 7 ; i++) 
    	    {
                _delay_ms(1000);
                }
    	}
    	
    }


    Gruß, Andreas
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken schaltung-neu.jpg  

  7. #7
    Moderator Roboter Genie
    Registriert seit
    26.08.2004
    Beiträge
    1.228
    Hi!
    Dein Schaltplan ist etwas "unleserlich"...wo ist der µC angeschlossen? Gehen die 10k nach GND?

    Die 450 Ohm sollten an den µC-Pin gehen, die 10k nach GND. Das Gate kommt nicht mit VCC in Berührung.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    08.03.2010
    Beiträge
    66
    Ups, das war ein Tippfehler von mir. Da wo Vcc steht, ist natürlich der Portpin vom µc. Sorry.

    Gruß, Andreas

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    33
    Beiträge
    1.192
    Mit dem Programm bin ich noch nicht einverstanden.
    Du hast nirgends DDRD (Data Direction Register) definiert, d.h. der PD2 ist noch als Eingang geschaltet. Wenn du dann PORTD ansprichst, wird lediglich der Pull-up gesetzt / gelöscht.
    Da der integrierte Pullup aber auch so im Bereich 10kOhm aufwärts hat, wirkt das mit den äußeren Widerständen als Spannungsteiler, die Spannung am Gate ist dann wohl zu niedrig für den FET.

    Du musst das entsprechende Bit in DDRD auf 1 setzen, um PD2 als Ausgang zu schalten (siehe Tabelle im Anhang). Also
    Code:
    DDRD=0b00000100;
    noch vor die while-Schleife. Dann ist der Pin ein "echter" Push-Pull-Treiber und kann genug Strom liefern.

    Nebenbei: Du hast die delay.h 2x eingebunden

    Grüße,
    Bernhard
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken ddrx_portx_pinx.png  

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    08.03.2010
    Beiträge
    66
    Super, habt vielen Dank! Es funktioniert.
    Mit dem R 10K läuft es auch, es lag an dem falsch gesetzten Pin.


    Gruß, Andreas

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen