mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Analoge Eingänge Multiplexen


Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TravelRec. (Gast)
Datum:

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

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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. ???

Autor: TOM (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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....)?!

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Gruß

Manfred

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TWI? SPI?

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.