Forum: Mikrocontroller und Digitale Elektronik 24 Relais über 3 I²C-Portexpander


von hans m. (hans-mueller)


Lesenswert?

Guten Tag,
Können 24 Relais über 3 I²C-Portexpander zum Beispiel PCF8574 schalten ? 
wenn ja. wie werden die mit Atmega verbunden und wie wird das Programm 
aussehen?
 MfG
 SB

: Verschoben durch Moderator
von Oliver (Gast)


Lesenswert?

hans müller schrieb:
> Können 24 Relais über 3 I²C-Portexpander zum Beispiel PCF8574 schalten ?

Hm. Die Frage mag ja grammatikalisch korrekt sein, sinnvoll ist sie 
nicht.

> wenn ja. wie werden die mit Atmega verbunden

In der Regel mit Leitungen oder Leiterbahnen aus Kupfer.

> und wie wird das Programm
> aussehen?

Als Ausruck werden das viele Zeichen sein, meistens schwarz auf weiß.

Ernsthaft:

Konkrete Fragen zu konkreten Problemen kann man beantworten. Solche 
Anfragen wie deine eher nicht.

Oben links im Menu gibt es Tutorials und eine Artikelsammlung, die 
solltest du dir mal ansehen.

Oliver

von Karl H. (kbuchegg)


Lesenswert?

hans müller schrieb:
> Guten Tag,
> Können 24 Relais über 3 I²C-Portexpander zum Beispiel PCF8574 schalten ?

Ich sehe jetzt keinen Grund, warum das nicht gehen sollte.
Je nach Relais muss man an den Port-Expander noch eine Treiberstufe 
drann hängen, um die Spannung bzw. den Strom zur Verfügung zu haben, die 
sich das Relais so vorstellt. Aber prinzipiell hat man mit 3 derartigen 
Bausteinen 24 AUsgänge zur Verfügung, die man gezielt auch 0 bzw. 1 
setzen kann. Und das reicht dann schon.

> wenn ja. wie werden die mit Atmega verbunden und wie wird das Programm
> aussehen?

Genauso wie jede andere I2C Kommunikation auch. Jeder PCF hat seine 
eigene Adresse (an den A0-A2 Pins eingestellt), über die er addressiert 
wird.

Sorry. Aber für mich klingt das alles wieder mal nach:
Ich hab zwar keine Ahnung, aber ich will das alles mal heute Abend schon 
fertig haben.

von Falk B. (falk)


Lesenswert?


von Falk B. (falk)


Lesenswert?


von hans m. (hans-mueller)


Lesenswert?

Karl Heinz Buchegger schrieb:
> hans müller schrieb:
>> Guten Tag,
>> Können 24 Relais über 3 I²C-Portexpander zum Beispiel PCF8574 schalten ?
>
> Ich sehe jetzt keinen Grund, warum das nicht gehen sollte.
> Je nach Relais muss man an den Port-Expander noch eine Treiberstufe
> drann hängen, um die Spannung bzw. den Strom zur Verfügung zu haben, die
> sich das Relais so vorstellt. Aber prinzipiell hat man mit 3 derartigen
> Bausteinen 24 AUsgänge zur Verfügung, die man gezielt auch 0 bzw. 1
> setzen kann. Und das reicht dann schon.
>

Die Treiberstufe wird mit PCF geliefert ?

von Falk B. (falk)


Lesenswert?

@ hans müller (hans-mueller)

>Die Treiberstufe wird mit PCF geliefert ?

Nein, die ist extra. ULN2803 & Co.

von spontan (Gast)


Lesenswert?

Was brauchen denn die Relais so an Strom und Spannung? Was liefert der 
I2C-Expander?

Danach entscheidet sich, ob eine Treiberstufe nötig ist.

von hans m. (hans-mueller)


Lesenswert?

Falk Brunner schrieb:
> @ hans müller (hans-mueller)
>
>>Die Treiberstufe wird mit PCF geliefert ?
>
> Nein, die ist extra. ULN2803 & Co.

danke für schnelle Antwort.

was für µC würde damit funktionieren? (mit einer Auflösung von
mindestens 10 bis 12 Bit)

von oszi40 (Gast)


Lesenswert?

>zum Beispiel PCF8574 schalten
Das zugehörige DB sagt max. 50mA im Dauerbetrieb.
Nun überlege selbst. http://de.rs-online.com/web/c/relais/

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

hans müller schrieb:
> was für µC würde damit funktionieren?

Jeder.

Ist das eine Hausaufgabe? Sicherlich können wir dir einen
Portexpander konstruieren und Stück für Stück die dafür notwendigen
Details aus der Nase ziehen. Aber was ist eigentlich dein Anteil
hier?

von Karl H. (kbuchegg)


Lesenswert?

hans müller schrieb:

>> Nein, die ist extra. ULN2803 & Co.
>
> danke für schnelle Antwort.
>
> was für µC würde damit funktionieren? (mit einer Auflösung von
> mindestens 10 bis 12 Bit)

Diese Frage ergibt keinen Sinn.
I2C ist einfach nur ein Protokoll, welches regelt in welcher Reihenfolge 
gewisse Pins 0/1 wackeln müssen, damit das Gegenüber die Botschaft 
versteht. D.h. man kann im Prinzip jeden µC nehmen. Hat man einen µC mit 
eingebauter I2C Hardware, dann vereinfacht sich die Sache. Hat man sie 
nicht, dann muss man eben in Software nachbilden. Aber prinzipiell 
möglich ist das mit jedem.
Und die Sache mit den 10 bis 12 Bits ergibt schon überhaupt keinen Sinn 
mehr. Wenn es 24 Relais sind, dann sind das 24 Relais, die anzusteuern 
sind.

Jetzt wird es immer skurriler.
Daher: Was ist deine eigentliche Aufgabenstellung? Welche Vorkenntnisse 
hast du? Und was bringt dich auf die Idee, du könntest das mit deinen 
Vorkenntnissen selber bauen?

von hans m. (hans-mueller)


Lesenswert?

Jörg Wunsch schrieb:
> hans müller schrieb:
>> was für µC würde damit funktionieren?
>
> Jeder.
>
> Ist das eine Hausaufgabe? Sicherlich können wir dir einen
> Portexpander konstruieren und Stück für Stück die dafür notwendigen
> Details aus der Nase ziehen. Aber was ist eigentlich dein Anteil
> hier?
Für eine Hausaufgabe bin ich dafür zu alt.
ich bastle eine 6 Dekade.

Kurz und knapp handelt es sich dabei um eine Widerstandekade, die 
beispielsweise mittels PC geschaltet werden kann.

von Klaus Dieter (Gast)


Lesenswert?

Und was soll dann die Auflösung von 10 bis 12 Bit dazu beitragen? Ein 
geübter Bastler kann mit 10 bis 12 Bit intus noch ein DIL Gehäuse löten, 
bei SMD wird das möglicherweise schon knapp.

von hans m. (hans-mueller)


Lesenswert?

Hat jemand schon mal so eine Dekade, die mittels geschaltet werden kann 
?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

hans müller schrieb:
> Für eine Hausaufgabe bin ich dafür zu alt.

Dann scheinst du dir einfach zu viel vorgenommen zu haben, deutlich
mehr, als dein derzeitiger Wissensstand hergibt. Deine Fragestellungen
wirken allesamt völlig zusammenhanglos.

Es ist nichts dagegen einzuwenden, auch im fortgeschrittenen Alter
(:-==, gehöre auch dazu ;) mal Neuland zu betreten, aber so, wie man
Autofahren nicht lernt, indem man sich sofort in einen 12-Tonner
setzt, so fängt man bei Mikrocontrollern mit der berühmten blinkenden
LED an. Damit wird man als erstes mal mit der Programmierumgebung
vertraut und bekommt zugleich eine Idee, wie das entsprechende
Programm (die so genannte „Firmware“) grundlegend funktioniert.

Dafür gibt's Tutorials, beispielsweise hier im Wiki („Artikelsammlung“
auf der linken Seite).

Wenn du das durch hast und beliebige Ausgänge deines Controllers
schalten kannst, dann kannst du wieder auf diesen Thread zurück
kommen und dir zusammen mit uns Gedanken machen, wie man deine
I²C-Portexpander ansteuert. Oder auch was ganz anderes. Wenn du sowieso
noch Treiber einbauen musst, dann kann man die Steuerung auch gleich
mit einer Kaskade aus 74HC595 erledigen. Ist in der Firmware einfacher
zu erledigen.

von Karl H. (kbuchegg)


Lesenswert?

Hans, gib dir dich bitte ein bischen mehr Mühe in verständlichen 
deutschen Sätzen zu schreiben. Wenn deine Sätze dann nicht auch noch 
völlig zusammenhanglos hervorgebracht werden, dann wäre das der Sache 
äusserst dienlich.


Deine '24 Relais' erinnern mich ganz stark an diese Schaltung
http://www.dieelektronikerseite.de/Projects/Widerstandsdekade.htm
bei der du hoffst durch Austausch der Schalter durch Relais, das ganze 
per PC fernsteuerbar zu bekommen.

Ja, das ist möglich. Für jemanden, der ein bischen mit µC umgehen kann, 
ist das noch nicht einmal besonders schwer. Zur Not kriegt man das 
durchaus auch ohne µC hin, allerdings wird es dann etwas schwerer in der 
Umsetzung, da das Hauptproblem darin besteht, eine Schnittstelle zu 
finden, die man mit einfachen Mitteln vom PC aus ansteuern kann.

Wobei sich natürlich die Frage erhebt, warum das überhaupt ein PC sein 
muss. So wie ich das sehe, wäre ein eigenständiges Gerät, bei dem man zb 
über eine Zehner-Tastatur den einzustellenden Widerstand vorgeben kann 
um einiges praktischer, aber das soll dann jeder machen wie er will und 
seinen Fähigkeiten entsprechend. Noch sehe ich keinen Vorteil in der 
Verwendung eines PC als Frontend zu Einstellungszwecken, zumal die 
Kaskade ja auch nicht besonders klein sein wird und daher am Gehäuse 
mehr als genug Platz für eine Tastatur und ein paar Anzeigeelemente zur 
Verfügung steht. Hat man im Gerät sowieso schon einen µC am laufen, dann 
kann der diesen Teil auch noch (aus Sicht der Leistungsfähigkeit) 
übernehmen. Ob du das Programmieren kannst, ist allerdings eine davon 
getrennte Frage.

Das ist die eine Frage. Die andere Frage ist es, warum man da überhaupt 
I2C benutzen soll. Für etwas simples, wie eine Anzahl an Relais 
anzusteuern gibt es auch andere Möglichkeiten, die gerade für einen 
Anfänger einfacher sind.

von oszi40 (Gast)


Lesenswert?

> es sich dabei um eine Widerstandekade, die
> beispielsweise mittels PC geschaltet werden kann.

Relaisfriedhof? Schon die Verdrahtung und die Kontaktzuverlässigkeit 
wird wohl eine interessante Angelegenheit. 
Beitrag "Relais bleibt hängen"

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

oszi40 schrieb:

> Relaisfriedhof? Schon die Verdrahtung und die Kontaktzuverlässigkeit
> wird wohl eine interessante Angelegenheit.
> Beitrag "Relais bleibt hängen"

Ist aber 'ne andere Liga.  In einer Widerstandsdekade fließen
normalerweise keine Kiloampere. ;)

Reed-Relais dürften dafür gar nicht so schlecht geeignet sein, und
es gibt sie in Ausführungen, in denen man sie direkt mit einem
CMOS-Ausgang geschaltet bekommt.

von Chris D. (xportdus)


Angehängte Dateien:

Lesenswert?

Hallo,

schau dir mal den TPIC6C595 bei ebay oder farnel an. Du brauchst dann 
keine extra Treiber mehr für die Relais. Ist aber kein I2C sonder eine 
SPI Verbindung die man Prima auch per Software erzeugen kann. Die IC's 
kannste einfach hinteinanderschalten und die 3*8 Bit durchschieben und 
dann an die Ausgänge weiterreichen.

Chris

von hans m. (hans-mueller)


Lesenswert?

>
> Wenn du das durch hast und beliebige Ausgänge deines Controllers
> schalten kannst, dann kannst du wieder auf diesen Thread zurück
> kommen und dir zusammen mit uns Gedanken machen, wie man deine
> I²C-Portexpander ansteuert. Oder auch was ganz anderes. Wenn du sowieso
> noch Treiber einbauen musst, dann kann man die Steuerung auch gleich
> mit einer Kaskade aus 74HC595 erledigen. Ist in der Firmware einfacher
> zu erledigen.

alles klar Chef , aber bis jetzt haben Sie keinen Type wie die andren 
geschrieben. Ich dachte so eine Aufgabe ist ganz einfach für Leute wie 
Sie.

von oszi40 (Gast)


Lesenswert?

> Ist aber 'ne andere Liga.  In einer Widerstandsdekade fließen
> normalerweise keine Kiloampere. ;)

Den Zweck seiner Dekade hat der TS bisher nicht genannt. Ob er Akkus 
entladen möchte oder HF-Experimente machen möchte? Wer weiß das?

von Karl H. (kbuchegg)


Lesenswert?

hans müller schrieb:

> alles klar Chef , aber bis jetzt haben Sie keinen Type wie die andren
> geschrieben. Ich dachte so eine Aufgabe ist ganz einfach für Leute wie
> Sie.

Ist es auch.
Die meisten der hier mitlesenden Stammmannschaft baut sowas, wenn alle 
Teile vorhanden sind, innerhalb 1 Stunde auf - und da ist die 
Programmierung schon mit drinnen.

Das ist aber nicht die Problemstellung.
Denn wir sind hier kein kostenloses Ingenieurs-Entwicklungsbüro.
D.h. Du (Sie?) bauen die Schaltung und wir helfen bei Details aus.
Das war, ist, und wird auch in Zukunft das Credo des Forums sein: Hilfe 
zur Selbsthilfe. Dazu muss der Frager aber schon eine gewisse 
Vorkenntnis mitbringen. Nach dem Muster: "Ich habe eine Idee - macht ihr 
mal" hat dieses Forum noch nie funktioniert und es wird auch nie nach 
diesem Muster funktionieren.

von hans m. (hans-mueller)


Lesenswert?

Karl Heinz Buchegger schrieb:
>
> Das ist die eine Frage. Die andere Frage ist es, warum man da überhaupt
> I2C benutzen soll. Für etwas simples, wie eine Anzahl an Relais
> anzusteuern gibt es auch andere Möglichkeiten, die gerade für einen
> Anfänger einfacher sind.

was Für Möglichkeiten gibt es noch ?

von hans m. (hans-mueller)


Lesenswert?

Karl Heinz Buchegger schrieb:
> hans müller schrieb:
>
>> alles klar Chef , aber bis jetzt haben Sie keinen Type wie die andren
>> geschrieben. Ich dachte so eine Aufgabe ist ganz einfach für Leute wie
>> Sie.
>
> Ist es auch.
> Die meisten der hier mitlesenden Stammmannschaft baut sowas, wenn alle
> Teile vorhanden sind, innerhalb 1 Stunde auf - und da ist die
> Programmierung schon mit drinnen.
>


ok Sorry es hat sich erledigt.

von Karl H. (kbuchegg)


Lesenswert?

hans müller schrieb:
> Karl Heinz Buchegger schrieb:
>>
>> Das ist die eine Frage. Die andere Frage ist es, warum man da überhaupt
>> I2C benutzen soll. Für etwas simples, wie eine Anzahl an Relais
>> anzusteuern gibt es auch andere Möglichkeiten, die gerade für einen
>> Anfänger einfacher sind.
>
> was Für Möglichkeiten gibt es noch ?

Wurde schon genannt:
74HC595 oder sein größerer Bruder TPIC6C595, der mehr Strom kann.

Wenn man sich dann auch noch mit sich einig ist, welche Aufgaben der µC 
sonst noch übernehmen kann/soll, dann würde auch ein µC mit entsprechend 
vielen Portpins kein Problem darstellen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

hans müller schrieb:
> was Für Möglichkeiten gibt es noch ?

Die offensichtliche: einen Controller mit genügend freien Portpins
zu benutzen.  24 Pins ist ja nun nicht gerade viel, selbst zusammen
mit einer RS-232-Ansteuerung als Eingangsseite erledigt das noch
ein simpler uralter ATmega8515 oder ATmega16.

von oszi40 (Gast)


Lesenswert?

hans müller schrieb:
> was Für Möglichkeiten gibt es noch ?
... fang erst mal mit kleinen Schritten an und nimm 1 zum Test.
http://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern

von Karl H. (kbuchegg)


Lesenswert?

oszi40 schrieb:
> hans müller schrieb:
>> was Für Möglichkeiten gibt es noch ?
> ... fang erst mal mit kleinen Schritten an und nimm 1 zum Test.
> http://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern

Ich werde das Gefühl nicht los, dass man da noch weiter zurückgehen 
muss. Und das beginnt mit: wie wird ein µC programmiert, wie 
funktioniert das mit den I/O Leitungen, etc. etc. Also dort wo das 
AVR-Tutorial einsetzt.

Und selbst wenn man auf den µC verzichtet, und sich Hardware kauft, mit 
der man vom PC aus direkt auf einen I2C Bus zugreifen kann, bleibt ja 
immer noch das 'Problem', dass man dann ein Programm benötigt. Diesmal 
für den PC und nicht für einen µC. Was je nach Fähigkeiten die Sache 
nicht unbedingt einfacher macht.

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.