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
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
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.
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
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.
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
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
Und wie wärs mit einem simplen IO-Expander(PCF8574 oder MCP23008) mit I²C-Bus? Dann brauchst du nur 2 Pins.
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!
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
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.