Hallo! Ich muss mich mit C Programmierarbeiten und I2C auseinander setzen. Ansteuern möchte ich bistabile Relais mit einem coil. Am Ausgang des Bistabilen Relais soll eine LED. Wenn ich recht gesehen habe, könnte ich mit einem L293 4 bistabile Relais schalten? Für den Schaltimpuls am L293 würde ich noch einen I2C Bauteil benötigen, das ich an einem Mikrocontroller anschließe. Kann mir jemand eine Bauteileliste geben, die ich nutzen soll um einen Testaufbau zu machen? Möchte gerne auf einem Board das aufbauen und die Steuerung aus Linux üben. Ich muss mich mit der Hardware etwas auseinandersetzen ... Software ist eigentlich mein Kern. Vielen Dank! Georg
die Info hierzu habe ich hier gefunden: http://www.mikrocontroller.net/attachment/preview/108012.jpg Danke!
Was du suchst, sind I2C Port Expander. zb sowas hier http://www.mikrocontroller.net/articles/Port-Expander_PCF8574
>Möchte gerne auf einem Board das aufbauen und die Steuerung aus Linux
üben.
Einen I2C von einem controller ansteuern ist eine Sache, von einem
Betriebssystem her eine andere Sache.
Lass das Betriebssystem mal weg zum Beginnen.
Sind die Relais Pflicht? Denn wenn nicht: lass sie weg. verkompliziert nur alles, weil du dann einen Treiber für die Relais brauchst, wie zb den von dir erwähnten L293, der den Strom für die Relais aufbringt. Ein PCF8574 kann 25mA gegen GND schalten. Das reicht für ein paar LED.
Hallo! Perfekt, danke! Dann habe ich auch gleich die Eingänge für die Rückmeldung. Mit dem I2C Port Expander schalte ich den L293 welches wiederum das Relais schaltet(?) Nun würde ich noch neben dem Mikrocontroller das selbe Relais mit einem "normalen" Taster schalten. Diese soll aber nicht über den Mikrocontroller laufen. Zwischen I2C Port Expander und L293 bräuchte ich also ein "ODER" Glied (wie man in der Software sagen würde). Einfach parallel schalten? Danke!
Hallo! Danke für die Antworten! Ja, Relais muss "leider" sein, da dadurch die Rückmeldung wieder kommt die ich in den Mikrocontroller einlesen muss. Ich würde das Carambola 2 Board nehmen ... Beispiele findet man. Meine Aufgabe ist eben aus Linux die Relais zu schalten und den Status darzustellen. Laut einigen Seiten in Linux mittelschwer. "Leider" benötige ich eine Minimumhardware um es zu testen. Danke für Eure Hilfe(!)
Georg schrieb: > Nun würde ich noch neben dem Mikrocontroller das selbe Relais mit einem > "normalen" Taster schalten. Diese soll aber nicht über den > Mikrocontroller laufen. Normalerweise eine ganz schlechte Idee. Wenn möglich, lass alles über den µC laufen! Der µC hat die Relais unter seiner Kontrolle. Er und nur er darf da drann schalten. Das heisst ja nicht, dass man extern dem µC nicht seinen Wunsch vortragen kann, dass das Relais zu schalten ist. Aber am Computer vorbei, ist bis auf den Fall einer Notabschaltung, meistens schlecht. Denn wie heisst es so schön: Viele Köche verderben den Brei. Und dieses 'viele' beginnt bereits bei 2.
@Georg Ich habe Dir in diesem Thread: Beitrag "Bistabiles Relais mit I2C und externen Taster" bereits mehrfach geschrieben, dass das bistabile Relais für diese Aufgabe ungeeignet ist. Weiterhin hatte ich Dir den ULN2003 als Treiber empfohlen. Willst du trollen? Georg hat folgendes vor: Über acht Taster möchte er acht Verbraucher im 230V Netz ein und aus schalten. Einmal drücken -> ein, nochmal drücken -> aus. Zusätzlich möchte er die Schaltimpulse über einen I²C Bus auslösen und den aktuellen Status zurück melden. Der Status soll auch per LED angezeigt werden. Ich habe ihm dazu Stromstoß-Schalter empfohlen. Die wollte er nicht, weil er keine mit Rückmeldekontakt gefunden hat. Daraufhin habe ich ihm gezeigt, wie er welche mit Rückmeldekontakt über Google findet. Die wollte er dann wieder nicht, weil nicht für Printmontage gedacht sind. Daraufhin habe ich ihm ein Stromstroß-Relais für Printmontage (von Conrad) empfohlen. Außerdem habe ich ihm eine Optokoppler + LED Schaltung gegegen, mit der er den Status zurück melden kann.
Stefan us schrieb: > @Georg > Ich habe Dir in diesem Thread: > Beitrag "Bistabiles Relais mit I2C und externen Taster" Ach, der war das! Ich bin trotzdem immer noch der Meinung, dass dieses ganze 'ich will am Computer vorbei schalten können' der falsche Ansatz ist. Macht alles nur unnötig kompliziert. Direkt an den Relais sitzt ein µC der die Oberaufsicht über die Relais hat. Er und nur er ist befugt, die Relais zu schalten (egal was das dann konkret für Relais sind). Ob der dann seine Kommandos von externen Tastern, Schaltern oder auch anderen Computern (per Netzwerk, WLAN, I2C, RS2332, ... wie auch immer) kriegt, ist dann wurscht. Bei Bedarf gibt der auch Auskunft darüber, wie die Relais gerade stehen und macht dann auch noch die Anzeige des Relais-Zustandes an den LED. Aber dieser ganze Kram mit 'externe Schalter können auch so die Relais schalten und deswegen braucht es dann wieder eine Rückmeldung' ist doch ausser kompliziert nur noch kompliziert. 'Geradlinige' Systeme, bei der es eine zentrale Stelle gibt über die alles läuft haben sich nicht nur in Software bewährt. Nicht ohne Grund gibt es in Firmen zb Lagerverwalter und die Parole, dass sich nicht einfach jeder am Lager bedienen kann wie er lustig ist sondern über den Lagerverwalter als zentrale Stelle laufen muss. Die Relais als diese zentrale Stelle anzusehen, sorry, da sind mir die Relais nicht 'intelligent' genug und zu unflexibel. Meine Meinung.
:
Bearbeitet durch User
Hallo Stefan! Du hast natürlich recht und bitte denk nicht das ich deine Hilfe nicht sehr schätzen würde(!) Da ich auf dem Gebiet kompletter Laie bin freue ich mich für jede Hilfe. Vermutlich habe ich es selbst noch nicht erkannt, warum es mit den 2 Bauteilen kein bistabiles Relay schalten kann. In dem Beitrag wird ja explizit dies so genannt. Was passiert mit deinem Vorschlag, wenn keine AC Spannung am Relay anliegt? Erhalte ich dann ein Feedback zum einlesen? Gerne trage ich deinen Vorschlag weiter. Ich habe auch schon TE Connectivity angeschrieben/gerufen um ein Stromstossrelais zu bekommen. Möchte aber nicht nur Conrad als Lieferant haben. Bei Bistabilen Relais ist eben die Auswahl und Anbieter entsprechend höher! Nochmals sorry falls du denkst, ich ignoriere deine Hilfe oder schätze dies nicht. So soll das nicht hier stehen bleiben!
Hallo Karl Heinz! Ich möchte dir erstmal Recht geben. Als zweites muss ich noch eine Info nachreichen: Den externen Taster über das Carambola Board zu machen geht nicht, weil: a) Bootzeit des Board viel zu lang. Man muss sofort nach Betriebsspannung schalten können b) Fehlerhafte Software von mir würde den Ausgang nicht mehr schalten lassen. Gerne kann der Taster in der Elektronik soweit nach hinten rutschen wie möglich. Aber nicht am Mikrocontrollerboard. Liebe Grüße!
Georg schrieb: > Hallo Karl Heinz! > > Ich möchte dir erstmal Recht geben. > Als zweites muss ich noch eine Info nachreichen: > Den externen Taster über das Carambola Board zu machen geht nicht Ich hab ja zum Schluss gar nicht mehr darüber gesprochen, dass das der Carambola machen soll. Der Leib und Magenprozessor des Forums hier, ein AVR, macht das bereitwillig und der ist ein paar Tausendstel Sekunden nach Anlegen der Spannung da. > b) Fehlerhafte Software von mir würde den Ausgang nicht mehr schalten > lassen. :-) Dagegen lässt sich aber was tun.
:
Bearbeitet durch User
Karl Heinz schrieb: > Ich hab ja zum Schluss gar nicht mehr darüber gesprochen, dass das der > Carambola machen soll. Der Leib und Magenprozessor des Forums hier, ein > AVR, macht das bereitwillig und der ist ein paar Tausendstel Sekunden > nach Anlegen der Spannung da. Aus welchem Grund gibt es eigentlich diesen Carambola? Man kann ihn natürlich nehmen, keine Frage. Aber für das Schalten von 8 Verbraucher eine 2.4Ghz CPU einsetzen? Ok, wenn du das Teil schon hast und zb WLAN brauchst, sieht die Sache etwas anders aus, aber das könnte ein Arduino mit WLAN Shield genauso und bei dem musst du dich nicht erst mit Linux rumschlagen und so ganz nebenbei wäre dann auch I2C damit obsolet geworden :-) Es ist nicht immer schlau, da einen derartigen Boliden einzusetzen, wenn es ein Schubkarren auch tut.
:
Bearbeitet durch User
Hallo Karl Heinz! Tja, AVR ist hier sicher besser, jedoch spielen andere Faktoren noch eine Rolle: a) 2x Ethernet b) IPv6 c) SNMP Protokoll Daher der Kompromiss für mich ein Carambola zu nehmen. Einschränkungen eben bei Boot und anderen Dingen, aber kann ich selber machen. Einen AVR Netzwerkfähig mit IPv6 und SNMP zu bekommen würde mich einige Tausend Euro kosten, da ich dann Software nicht selber machen kann :-( Bei b) :-) ... tja Software kann mal Probleme machen.
Ja, Arduino habe ich auch geprüft. Es gibt IPv6 mit einem passenden Ethernet Chip ... einen 5-Port "China" Switch habe ich schon bei mir liegen der eigentlich funktioniert. Wlan ist nice to have ... aber nicht wichtig. Arduino mit IPv6 und SNMP habe ich mich nicht drüber getraut.
Andererseits könnte ich mit Arduino einen UDP Server bauen, der nur einen Teil von SNMP unterstützt. Ich muss ja nur die Relais schalten und den Status rück melden. Du würdest dann Arduino mittels I2C die Tasten anhängen und den Arduino die Schaltung machen lassen? Muss ich nochmal suchen ob ich für Arduino die IPv6 schaffe.
Hallo, ich bin auch für die Lösung der Zentralen Steuerung und gegen "parallele" Schaltwege. Schnapp dir einen AVR der als Gehirn den Zustand deiner Aktoren überwacht und bei Bedarf jedem der will Auskunft gibt. Bus ------> |AVR| ---> Relais Schalter -> |___| Gruß deathfun
Ahhh vergessen: Wenn du Ethernet brauchst: Pollin AVR NET IO ca. 20€ mit Ethernet und Atmega32 Gruß deathfun
Hallo! Welcher AVR wäre als Laie passend? In Summe sollten: 8x Relais geschaltet werden 8x der Status der Relais zurückgemeldet werden 2x normale LED als Status 8x Taster für die Relais 2x "externe" 12V Relais (Monostabil) Danke!
> 2x normale LED als Status Ich dachte, die LED's sollen den Status der Relais anzeigen. Brauchst du dann nicht 8 oder 16 LED's? Erkläre doch mal, warum du monostabile Relais verwenden willst. > 2x "externe" 12V Relais (Monostabil) Zusätzlich zu den 8 Relais? Also insgesamt 10 relais, aber nur 8 davon mit Rückmeldung und Taster?
Hallo Georg, da hier keine wirkliche Arbeit durch den uC geleistet werden muss (insgesamt 28EAs) würde bereits die kleinsten Modelle mit Expander reichen. Empfehlen würde ich dir jedoch das Pollin Board mit Portexpander. Grund: -Günstig -Ethernet onBoard -kleiner Webserver schon dabei -Bereits fertig Montiert zu bekommen -Fertiges, öfters schon verbessertes, Board -Atmega32 zur not gegen 644 oder 1284 aufrüstbar -Communityprojekte (zb. von Ulrich oder Ethersex) Gruß deathfun
Um auf deine ursprüngliche Frage in diesem Thread nochmal zurück zu kommen: Als ich I²C programmierung lernte, benutzte ich zuerst einen PCF8574 mit LED's, den ich an den Parallel-Port meines PC angeschlossen hatte. Das I²C Protokoll hatte ich dann per Software emuliert (Bit-Banging). Danach hatte ich einen EEPROM-Chip mit I²C Bus angeschlossen, da funktioniert die Adressierung etwas anders. Ich denke, es ist beim Lernen hilfreich, die beiden Leitungen SCL und SDA man ganz "zu Fuß" anzusteuern.
> Empfehlen würde ich dir jedoch das Pollin Board Das Pollin Board hat kein IPv6 und nur einen Ethernet Port. Er will zwei Ports, mit Switch und IPv6. Ich denke, der PCF8574 ist keine schlechte Wahl. Und wenn er wirklich bistabile Relais mit nur einer Spule verwendet, ist die Idee, einen Motortreiber zu verwenden gar nicht dumm. Es geht auch mit einfacher Spannungsversorgung (ohne negative Spannung) :
1 | _________ |
2 | | | 470µF Relais |
3 | µC oder PCf8574 o---| Treiber |---||----XXXX---- GND |
4 | |_________| + - |
Hallo Stefan! Sorry für die Verwirrung. In Summe und als Erklärung: 8x Bistabile oder Stromstossrelais mit 8A 230V~ Grund: Die Position muss bei Spannungsabfall der Spule erhalten bleiben 8x Taster für oben Grund: Manuelle Notbedienung 8x LED für oben Grund: Damit man weiß ob der Ausgang (Relais) ein oder aus ist. 2x 12V= Ausgang für externe Relais Grund: Ich möchte optional externe Hutschienen Relais (Beispiel Finder mit 16A) dranhängen. LED Anzeige benötige ich nicht. Auch keine Notfallbedienung 1x Power LED Grund: System wird mit Spannung versorgt 1x Running LED Grund: Connect an übergeordneter Sender ist vorhanden (Netzwerk) Alles soll über SNMP geschalten und gemeldet werden. IPv6 ist als Grundlage zu sehen (Der Grund dahinter ist komplexer und muss denk ich auch nicht weiter erklärt werden :-) ) Ich benötige also einen UDP (SNMP) Server/Client der die Befehle aus dem Netzwerk entgegen nimmt und an die Hardware "weiterreicht". Ich möchte also eine kleine Applikation schreiben, der diese genannte Hardware steuert. Da ich selbst kein Engineer bin, dachte ich, mit einem fertigen Board die Software schreiben zu können und jemand baut mir die Elektronik. Jedoch benötige ich für die Software eine Minimal Hardware zum üben. Natürlich vorteilhaft wenn der Aufbau dem Endprodukt ähnelt. Jedoch vor allem zum üben!
> Grund: Manuelle Notbedienung Das spricht ja wiederum für die Stromstoßschalter, denn dann funktionieren die Taster weiterhin, wenn die Steuerung defekt ist. Meine Rückmledeschaltung mit Optokoppler und LED würde den Status an der LED auch anzeigen, wenn der Mikrocontroller ausgefallen oder gar Stromlos ist. Vielleicht finde ich die Variante mit Stromstroßschalter auch nur deswegen so attraktiv, weil ich das schon zweimal in realen Licht-Schalt-Anlagen so umgesetzt habe.
Stefan us schrieb: > Das Pollin Board hat kein IPv6 und nur einen Ethernet Port. Er will zwei > Ports, mit Switch und IPv6. Ich habe für Arduino das gefunden: https://sites.google.com/site/ghoelzl/ipv6ethershield Das Pollin Board hätte zwar den selben Chip, aber dann muss ich noch einen Switch dahinterhängen. Wobei die 2 Eth Ports vom Carambola auch einen Kompromiss darstellen: Linux Bridge und kein echter Switch. @deathfun Welchen Portexpander meinst du?
Aber zusammenfassend: 1. PCF8574 mit nachfolgend 2x L293 wäre zum schalten der Relais möglich(?) bzw. 2. AVR mit nachfolgend 2x L293 als Alternative? ZU 1. Dann müsste ich mehrere PCF8574 zusammenhängen um auf die Anzahl zu kommen: 10x out (8x Relais, 2x LED) Hinweis: Die LED für die Relais Anzeige würde ich wie hier erfahren habe, mit einem 2 poligen Schließer Relais machen und die LED über den 2. Kontakt führen. So muss ich die nicht auch noch steuern. 8x in (8x Handschalter für Relais) Arduino mit I2C oder Carambola mit I2C wäre dann am Anfang zu setzen für IP ZU 2. Sofern der AVR mit IPv6 zu betreiben ist, wäre es eine Alternative
Gerade gefunden: http://www.ethersex.de/index.php/Ethersex_(Deutsch) Auszug: unterstützt Atmega 8,16,32,64,128,644 und viele mehr nutzt den Ethernet-Controller ENC28J60 leicht anzupassen und zu erweitern um deine Anforderungen zu erfüllen Protokolle: TCP/IP IPv4/IPv6 OpenVPN Software USB stack RFM12 / RFM12B (433 MHz / 868 MHz) i²c Master (Untersützung zahlreicher Chips) / Slave onewire http server kann mit dem Ethersex Command Protocol (ECMD) ferngesteuert werden Wenn ich also das Board hole und einen ATmega644-20PU draufstecke, wäre ich meinem Ziel schon näher? Danke!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.