Forum: Mikrocontroller und Digitale Elektronik Analoge Eingänge Multiplexen


von Andy (Gast)


Lesenswert?

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

von TravelRec. (Gast)


Lesenswert?

Da brauchst Du mehrere Analogschalter, zum Beispiel CD4067 oder
74HC4067, beides kaskadierbare 16 zu 1 Analog-Multiplexer, BCD kodiert.

von Andy (Gast)


Lesenswert?

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

von TravelRec. (Gast)


Lesenswert?

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.

von A.K. (Gast)


Lesenswert?

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.

von TravelRec. (Gast)


Lesenswert?

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).

von A.K. (Gast)


Lesenswert?

Falsch ist, dass der 4067 BCD-Eingänge hat. Mit 4 BCD-Eingängen kann man
nämlich nur einen 10:1 Muxer bauen.

von TravelRec. (Gast)


Lesenswert?

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...

von Läubi (Gast)


Lesenswert?

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)

von Andy (Gast)


Lesenswert?

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. ???

von TOM (Gast)


Lesenswert?

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?

von Andy (Gast)


Lesenswert?

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

von TravelRec. (Gast)


Lesenswert?

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....)?!

von Andy (Gast)


Lesenswert?

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

von Manfred (Gast)


Lesenswert?

Hallo,

brauchst du wirklich den analogen Wert, öder könntest du es auch über
Komparatoren realisieren?

Gruß

Manfred

von Andy (Gast)


Lesenswert?

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

von TravelRec. (Gast)


Lesenswert?

>>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.

von inoffizieller WM-Rahul (Gast)


Lesenswert?

TWI? SPI?

von Andy (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.