Hallo habe mal eine Frage bezüglich der Realisierung folgendes Umstandes. Habe aktuelle meine Beleuchtung in meinem Haus per Berührungsschalter mit ein PIC realisiert. Ist also als "Schalter" einfach 2 Kontaktflächen und funktioniert bisher problemlos. Leider hat der bloß 8 Kanäle und ich nun mehr Schaltaufgaben die ich über dieses System abbilden möchte. Nun suche ich nach Realisierungsmöglichkeiten wie man mit einem Atmel min 24 Eingangskanäle analog + 16 Eingangskanäle digital und entsprechend 40 + Ausgänge schaltungstechnisch gestaltet damit auch noch ein gutes Antwort/zeitverhalten abfällt. I2C, Ports Multiplexen etc ?? In Atmel bin ich noch unbedarft und hätte da gern ein paar Erläuterungen zu Vor und Nachteilen der vorschläge. Denke mal das ist mit einer kleinen SPS Vergleichbar. Da gabs wohl auch schon Atmel projekte zu ?? Vielen Dank und viele Grüße Andy
Da brauchst Du mehrere Analogschalter, zum Beispiel CD4067 oder 74HC4067, beides kaskadierbare 16 zu 1 Analog-Multiplexer, BCD kodiert.
Hallo Danke erstmal für die Antwort. Du meinst also eine bcd Zähler auf einem port programmerien und den dann entsprechend die Kanäle am multiplexer durch ackern lassen und den ausgang dann auf einen analogen eingang des atmel legen. Da ist die Frage wie man die kaskadiert. Möglichkeit 1 wäre alle IC parallel zählen lassen und den ausgang entsprechend auf einen analogen Eingang des Atmel legen ( der hat ja 8 je nach Typ ) macht theoretisch 96 analoge Eingänge , Frage ist ob die Antwort/zeittechnisch adäquat reagieren ??? Wie lange dauert bis der Analogwert sich eingestellt hat ?? Das hängt doch sicher auch von der Auflösung ab . Möglichkeit 2 wäre dann die Multiplexer zu kaskadieren und nur einen Analog IO zu benutzen das ist denke ich mal aber noch zeitkritischer ??? Wie sieht es mit I2C aus , gibts da lösungen, eventuell dort direkt multiplexte Analogwerte zu bekommen ??? Benötieg dann ja auch noch multiplexte Ausgänge , bzw. externe Treiber die man wie register ansprechen kann , damit ich die Ausgänge entsprechend setzen kann. Hat da jemand ne idee in der Schlatkreisvielfalt ?? CIh stehe irgendwie nicht mehr so in der Materie nachdem ich mein berufsfeld gewechselt habe ;o( Vielen Dank Andy
Also die 4067er haben einen invertierten Enable-Eingang. Somit kann man alle Mux-Ausgänge zusammenschalten und alle BCD-Eingange ebenfalls. Über die Enables wählt man dann den entsprechenden Schaltkreis (16 zu 1 Cluster) aus. Somit braucht man für 32 Eingänge gerade mal 6 Steuerpins.
BCD = Binary Coded Decimal. Codiert in 4 Pins die Werte 0-9, die Codes 10-15 sind nicht definiert. Ein 16:1 Muxer hat also mit 4 Pins eine binäre Selektion (0x0..0xF). Mit BCD-Selektion wären es 5 Pins (0x00-0x09,0x10-0x15) - Unfug.
Ist doch richtig! Abgesehen von meiner Falschformulierung gilt oben genanntes aber: 4 Steuerpins für Eingang 0 bis 15, ein invertierter Enable (bei logisch 1 also guasi "Inhibit", kein Eingang durchgeschaltet).
Falsch ist, dass der 4067 BCD-Eingänge hat. Mit 4 BCD-Eingängen kann man nämlich nur einen 10:1 Muxer bauen.
Er hat 4 Binäreingange - genug Haare gespalten? Ich habe meinen Fehler doch schon zugegeben... Mit "Ist doch richtig" meinte ich Deinen netten Hinweis auf meine Dummheit...
Also im zweifel würd ich einfach mehrere µC verwenden! - Preis ist fast vernachlässigbar - Ausfallsicherheit (fällt einer aus bleiben Teile des Systems funktionsfähig) - Einfache Softwareanpassungen möglich - leicht austauschbar (wenn mans Modular plant)
Danke erstmal für das geschrieben hier. naja mehrere µC wäre sicher auch eine Lösung aber ich wollte das schon komplex habne, dann müßte eine Logik rein womit die sich untereinander unterhalten etc..Denke mal das ist nicht leicht zu realisieren So eingangsseitig denke ich ist das schon eien ordentliche Lösung. dann könnte man auch einen vollen 8 bit port verbraten und 2 * 4 bit zählen dann hätte man ja 16*16 Eingänge maximal Die Frage ist nach dem Ausgang da müßte dann auch so etwas her.Also irgendwie auch den Ausgang multiplexen. Die Treiber IC müßten dann sich ihren zustand auch irgendwie merken. eventuell gibts da IC die man irgendwie statisch setzen kann. ???
Sowas heist Latch. z.B. 74xx573 Nimm Schieberegister, das spart Pins. >> Möglichkeit 2 wäre dann die Multiplexer zu kaskadieren und nur >> einen Analog IO zu benutzen das ist denke ich mal aber noch >> zeitkritischer Was ist an einer Beleuchtungssteuerung zeitkritisch? Selbst wenn du jeden Eingang mit 100Hz abtasten würdest, wäre das mehr als ausreichend, oder nicht?
Hallo Tom das Zeitverhalten bezieht sich auf die Ermittlung der Änderung des Analog Signales. D.h. ich will per Berührung einfach die sprunghafte Änderung des Analogwerrtes als Schaltsignal auswerten. Und da man daheim in einem Haus halt einige Schaltaufgaben hat will ich min 24 Kanäle dafür haben zumal man diese auch noch andersweitig verwenden kann, die Ausgänge treiben dann entsprechend Relais zum Steuern der Lampen auf der Lastseite. Als Nebenprodukt eines Mikroprozessor fallen dann Funktionalitäten wie Treppenlichtautomatik, Abwesenheitsteuerung mit ab, und die Möglichkeit auch von Ferne das ein oder andere ein oder auszuschalten Viele Grüße Andy
24 Kanäle sind doch lachhaft in der Abfrage und keinesfalls zeitkritisch. Um Spannungssprünge an den Tastern mitzubekommen, reichen sogar 10 Abfragen in der Sekunde, das wären 240 Hz und das entspricht 4,1ms Intervall. Hast Du ´ne Ahnung, was der Controller in 4,1ms alles machen kann (schnarch....)?!
Hallo wenn man das so betrachtet. Naja dann werd ich mir mal entsprechende Bauteile besorgen und das mal zusammenbauen. Vielen Dank für Eure Hilfe Andy
Hallo, brauchst du wirklich den analogen Wert, öder könntest du es auch über Komparatoren realisieren? Gruß Manfred
Hallo Manfred der analoge Wert ist nur mittel zum Zweck. Letztendlich geht es darum das Berühren bloßer kontakte durch den Finger meßbar zumachen. Da gibts halt mannigfache Lösungen für , auch ein hochohmiger Eingang wäre denkbar, der ist dann aber u.U. nicht Störungsresistent, Hab keine Lust das überall das Licht angeht nur weil die Frau den Staubsauger eingeschaltet hat ;o) Das projekt hab ich schon 2 mal realisiert einmal konventiell mit CMOS mit hochohmigen Eingang für unseren garten ( 8 Kanel) Und nun mit einem PIC (mit hilfe von einem Freund) leider auch nur 8 Kanäle was aktuell bei mir im Haus arbeitet. Ziel soll es sein ein modulares, erweiterbares System zu schaffen. Hab auch schon überlegt pro Schaltort ( da befinden sich 2 bis 3 tater auf einem Fleck) einen Atmel einzusetzen und die dann mit einem bus zu verbinden. gelegt hab ich 2*4 zu jedem Schaltort also wäre I2C denkbar. Zumal man dann vor Ort auch eine Rückmeldung mit LED realisieren könnte um bestimme Modi anzuzeigen ??? Hat jemand Erfahrung mit Datenaustausch zwischen mehreren Atmel ?? Viele Grüße Andy
>>Hat jemand Erfahrung mit Datenaustausch zwischen mehreren Atmel ??
Ja, problemlos per USART und RS485 möglich, Halbduplex reicht für die
Anwendung völlig. Bei der Auswahl der RS485-Treiber-ICs auf diejenigen
achten, die hohe Anzahl an Busteilnehmern erlauben.
Hallo RS 485 sagt mir noch was aus der Prozeßleittechnik, lange ist's her . TWI SPI im Zusammenhang mit I²C. hab da leide rnoch keine Projekte realisiert. Wäre aber immerhin auch ein Ansatz , zumal das ganze dann doch noch etwas modularer wäre und man mit einem 4 Draht Bus prima dezentrale Knoten verbinden könnte. Gibts da irgendwo ein gutes Howto als Anregung ?? Viele Grüße Andy
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.