- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 43

Thema: PCF8574 + UDN2981 + Relais

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.01.2007
    Beiträge
    134

    PCF8574 + UDN2981 + Relais

    Anzeige

    Praxistest und DIY Projekte
    Hallo, bin neu hier

    Ich arbeite gerade an einem Projekt, das ich später noch vorstellen will.
    Nun bräuchte ich so etwas wie eine Relaisplatine, um verschiedene Verbraucher zu steuernm und zwar mit mehreren I²C Busbausteinen (PCF857), die von einem Atmega32 kontrolliert werden. Die Relais sind einfache 12V Relais.

    Um mir die ganze Löterei etwas zu vereinfachen habe ich div. Foren durchsucht und folgende Lösung ausgearbeitet:
    Bild hier  

    Dabei sind mir folgende Fragen eingefallen:

    A) Wenn man die Spannung einschaltet, ist ja das Problem beim PCF8574 dass dieser die Portausgänge auf HIGH schaltet, und somit bei einer normalen Transistor-Relaisschaltung das Relais anziehen würde. Das ist aber auf keinen Fall erwünscht und somit bin ich auf den ULN2803 gekommen.
    Da dieser aber genau das gleiche wie ein normaler Transistor macht hab ich den UDN2981 gefunden, der nicht invertiert ist, dafür aber statt der Masse die Spannung (12V) schaltet.
    In der oben gezeigten Schaltung dürfte somit beim Einschalten der Versorgung kein Relais anziehen, erst wenn man im PCF8574 ein Bit auf '0' setzt zieht das entsprechende Relais an. Stimmt das so?

    B) Das die restliche Schaltung mit 5V arbeitet und die Relais mit 12 stört weiter nicht, muss ja so funktionieren oder nicht?

    Schönen Dank auch und Grüsse, Stefan

    PS: Datenblatt des UDN: http://www.reichelt.de/?SID=202zJ5m6...81%2523ALG.pdf

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Hallo

    und sorry, aber vielleicht habe ich nicht genau hingesehen:
    Wo siehst du, daß die Treiber bei 'low' schalten???

    Tido

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.01.2007
    Beiträge
    134
    Tun sie das nicht? Dachte ich zumindest weil das Symbol im Datenblatt nicht invertiert zeigt und beim ULN es aber so ist.

    Wie kann ich sonst das Problem mit dem Einschalten beseitigen, gibt es da vielleicht einen passenden Treiberbaustein?

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Ja,das sehe ich auch nicht.


    Die Stufe ist schon vom Symbol her nicht invertierend und wenn man ins Datenblatt schaut dann sieht eine Stufe so aus.

    Bild hier  

    Recht Simpel oder ?


    @Geronet

    Der ULN2803 ist ein Invertierender Lowside Treiber und der UDN 2981 ein nichtinvertierender Highsidetreiber.
    Der Effekt ist der gleiche.
    Beide schalten bei High am Eingang durch.


    Was du brauchst ist entweder einen nichtinvertierenden Lowsidetreiber oder einen invertierenden Highsidetreiber.

    Wenn du da nix findest dann tuts auch ein einfacher Inverter zwischen 2803/2981.



    Tun sie das nicht? Dachte ich zumindest weil das Symbol im Datenblatt nicht invertiert zeigt und beim ULN es aber so ist.
    Das Symbol ist schon richtig.
    Denk mal ganz genau nach.

    Der 2803 ist invertierend dargestellt und das Ausgangssignal geht ja auch nach Masse (Low) wenn der Eingang "High" ist.

    Beim 2981 das gleiche nur umgekehrt.
    Der Ausgang wird High wenn derEingang High ist.
    Er ist nicht invertierend.

    Den Rest hab ich ja schon gesagt.
    Gruß
    Ratber

  5. #5
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Hallo,

    du könntest z.B. einen pnp-Transistor in die gemeinsame Masseleitung der Relais zum GND-Anschluß schalten.
    Dieser sperrt beim Einschalten (sofern der Port, an dem er am mC angeschlossen ist, beim Einschalten auch High ist) und nachdem der 8574 initialisiert (und damit alle Ausgänge 'low') ist schaltest du den Transistor durch.

    Tido

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.01.2007
    Beiträge
    134
    Danke für die Antworten, jetzt habe ich das Prinzip vom ULN verstanden

    Die Transistorlösung ist aber eher ein workaround um das eigentliche Problem herum...

    Könnte man denn die Ausgänge vom PCF mit Pulldown-Widerständen am Start auf Low-Pegel herunterziehen oder ziehen die dann zuviel Strom bzw. kriegt er den Pegel nicht mehr hoch genug?

    Andere Lösungsmöglichkeit:

    Der MAX7300 z.B. hat beim Starten alle Ausgangsports auf Input ohne Pullup gestellt (im Shutdown mode), würde der ULN mit diesem (undefiniertem?) Pegel durchschalten? Würden Pulldowns in diesem Fall helfen?

    Grüsse, Stefan

    Datenblatt MAX7300: http://datasheets.maxim-ic.com/en/ds/MAX7300.pdf

  7. #7
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Zitat Zitat von geronet
    Danke für die Antworten, jetzt habe ich das Prinzip vom ULN verstanden

    Die Transistorlösung ist aber eher ein workaround um das eigentliche Problem herum...

    Könnte man denn die Ausgänge vom PCF mit Pulldown-Widerständen am Start auf Low-Pegel herunterziehen oder ziehen die dann zuviel Strom bzw. kriegt er den Pegel nicht mehr hoch genug?
    Nein, das würde nur funktionieren, wenn der Pulldown-Widerstand sehr viel kleiner wäre als der Widerstand des PCF-Ausgangs und ein so kleiner Widerstand würde den Port zerstören.
    Wenn du z.B. einen 10K-Pulldown nimmst, so liegt beim Einschalten der Betriebsspannung nach wie vor +5V am Ausgang und damit am ULN (und am Widerstand. Der Widerstand ist dann nur ein parallelgeschalteter 'Verbraucher'.

    Den MAX hab' ich mir nicht angeschaut.

    MfG
    Tido

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    74
    Beiträge
    2.063
    Die logische Konsequenz ist, das Signal, welches nach dem Einschalten vorliegt, so anzupassen, daß es für den ULN2803 / UDN2981 paßt, also zu invertieren.
    Dazu verwende ich den 74??540, 8 invertierende Leitungstreiber. Der 540 ist pin-kompatibel mit dem 541, der 8 nicht-invertierende Treiber hat.
    Um sicher ein High-Signal zu haben, setze ich noch 8 PullUp-Widerstände an die I/O-Pins (SIL9-8 10k).
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Zitat Zitat von geronet
    Könnte man denn die Ausgänge vom PCF mit Pulldown-Widerständen am Start auf Low-Pegel herunterziehen oder ziehen die dann zuviel Strom bzw. kriegt er den Pegel nicht mehr hoch genug?

    Andere Lösungsmöglichkeit:

    Der MAX7300 z.B. hat beim Starten alle Ausgangsports auf Input ohne Pullup gestellt (im Shutdown mode), würde der ULN mit diesem (undefiniertem?) Pegel durchschalten? Würden Pulldowns in diesem Fall helfen?

    Denk mal genau nach was du da gerade vorschlägst.

    Du willst einen Ausgang der beim Powerup auf High steh mit gewalt auf Low ziehen.
    Und wie soll er dann je wieder High werden ?


    Mach es doch wie viele andere auch.

    Zwischen PCF8574 und dem folgenden Baustein einen Inverter (zb .74HCT240/540 etc.) dann sind deine Relais beim Einschalten "Aus".

    Im Programm arbeitest du dann einfach mit Inverser logik



    Edit: Kalle war schneller
    Gruß
    Ratber

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,
    es gibt da doch das RN-Relais Board, da ist auch ein PCF8574 und danach ein UDN2981, dort is es so, das nach dem UDN2981 Pulldowns (10k) an den Ausgängen sind.
    Ich hab dieses Board nicht, kann deshalb nicht sagen wie es sich verhält.

    zum Board:
    http://www.shop.robotikhardware.de/s...products_id=22

Seite 1 von 5 123 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen