www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik per Taster Relais ein/aus schalten


Autor: Kersten Decker (unbenannt-editor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Da ich an meinem atmega8 keine Pins mehr frei habe, muss ich folgende
Funktion auslagern:

2 Relais und 2 Taster. Jeder Taster schaltet jeweils ein Relais an oder
aus. Beim Anlegen der Betriebsspannung müssen die Relais aus bleiben.

Ich habe nur noch wenig Platz auf der Platine und möchte das möglichst
billig und mit wenig Aufwand realisieren. Es sollen normale Relais
angesteuert werden, also keine Reed-Relais usw. Die Spulenspannung
beträgt 5V.


Welche Möglichkeiten gibt es denn, um mehr an den atmega anzuschließen?
Der Atmgega8 hat 22 nutzbare Pins und ich habe alle belegt:
5x ADC
2x PWM-Ausgang
4x für 8 Taster
2x für einen Drehimpulsgeber
8x für ein LCD
1x für einen Piepser

Ich sehe da eigentlich keine Möglichkeit, noch Pins frei zu machen (die
RW-Leitung vom Display vielleicht noch).


Gruß

Kersten

Autor: Haiko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Du könntest eventuell von PWR 8 verschiedene Widerstände zu den Tastern
und dise 8 Taster auf einen Analogeingang legen. Und dann entscheiden 5V
> T1, 4,5V > T2 / 4,0V >T3 / 3,5V > T4 / 3,0V > T5 / 2,5V > T6 / 2,0V >
T7 / 1,5V > T8. So hättest du alle 8 Taster an einem Analogeingangspin
und würdest 7 frei machen...


Gruß  Haiko

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
auch parallel zum Display-Datenbus lassen sich ganz einfach schonmal 4
Tasten anschliessen, benötigt nur 4 Dioden. Mit etwas mehr Aufwand auch
noch mehr Tasten.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder auch das Display über ein Schieberegister ansteuern...

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst das Display über ein 74HC164 anschließen, dann reichen 3
Portpins.


Peter

Autor: Kersten Decker (unbenannt-editor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Wow, hätte nicht gedacht dass es da soviele Möglichkeiten gibt. Wenn
man's weiß, ist is einfach :-)

Ich werde wohl die beiden Taster für die Relais mit den anderen 8
Tastern zusammenlegen und diese 10 Taster dann an den Analogeingang
hängen.

Somit ergibt sich:
6x ADC, u.a. einer für die 10 Taster
2x Relais
2x PWM-Ausgang
2x für einen Drehimpulsgeber
8x für ein LCD
=20, noch 2 übrig für Piepser, LED oder was auch immer.

Ich werde mir mal einen 74HC164 bestellen, habe noch nie mit
Schieberegister gearbeitet.

Danke!

Kersten

Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für solche Fälle hatte ich mal Tastatur + Display mit einem eigenen
Controller versehen, der über I2C mit dem Hauptprozessor kommuniziert
hat. So ein System ist sehr flexibel und gut erweiterbar. Sozusagen ein
universeller Tastatur-Display-Controller. Es reicht ja z.B. ein Tiny
2313 als Prozessor.

Autor: Kersten Decker (unbenannt-editor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Ich probiere gerade mit einem 74HC164Schieberegister rum.
Den Resetanschluss habe ich an VCC angechlossen, die beiden
UND-Eingänge A und B verbunden und an den Controller und die
Clock-Leitung ebenfalls an den Controller.

Mir ist aber nicht klar, wie ich mit einem Schieberegister die Anzahl
der Ausgänge erweitern kann. Wenn ich z.B. am Ausgang des
Schieberegisters 01110010 haben möchte, dann muss ich diese Daten in
entsprechender Reihenfolge rein schieben. Wenn ich aber jetzt das Bit
Nr. 1 von einer 1 auf eine Null ändern möchte, z.B. um ein Relais
abzuschalten, müsste ich ja komplett von vorne alle Bits wieder neu
schieben? Dann würden die an den anderen Ausgängen angeschlossenen
Relais ja alle reagieren bis ich meine 8 Bit reingeschoben habe, oder?
Würde ein Schieberegister mit Latch weiterhelfen?

Gruß

Kersten

Autor: Mark Hämmerling (haemi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau so ist es. Der 164 ist dann okay, wenn die nachfolgende Logik eine
eigene Enable-Leitung besitzt oder träge genug ist. In Deinem Fall
brauchst Du noch ein Latch. Der 595 ist Dein Freund. :)

Mark

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie wärs mit einem simplen IO-Expander(PCF8574 oder MCP23008) mit
I²C-Bus? Dann brauchst du nur 2 Pins.

Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den 74HCT4094 kannst du auch nehmen.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steuer das LCD im 4-BIT Modus an. Dann sparst Du Dir 2 PIN-s. Oder wie
schon vorgeschlagen von einem anderen, nutze die "drei Leiter"
möglichkeit!

Autor: Kersten Decker (unbenannt-editor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah ok, dann heißt es warten bis zur nächsten Reichelt-bestellung.

Die SPI-Anschlüsse sind leider schon durch Leitungen des Displays
belegt, was ich aber zur Not ändern könnte wenn dies eine Ansteuerung
des Schieberegisters vereinfachen würde.
Da ich lediglich Relais, LEDs und einen Summer ansteuern möchte, ist
das Füttern des Schieberegisters nicht Zeitkritisch und ich möchte es
nach Möglichkeit nicht mit einem Interrupt ansteuern.

Gruß
Kersten

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.