Einlesen von Tastern und ausgabe je über Schiebregister

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Einlesen von Tastern und ausgabe je über Schiebregister

      Hallo alle zusammen,

      Ich habe vor 130 Taster (65 Tastschalter mit Mittelstellung) einzulesen.

      Diese sollen dann Relais Schalten. Desweiteren soll eine Rückmeldung mittels LED ervolgen. Die reicht allerding vom Controller.

      Es geht mal wieder um die Modelleisenbahn genauer gesagt um das Gleisbildstellpult.

      Ich möchte durch die Aktion die Anzahl der Leitungen zwischen Anlage und Schaltpult verringern. Als kontroller hab ich einige da.
      Schieberegister für Taster 74hc165n
      Schieberegister für Relais und LED 74hc595n

      Ich habe allerdings keine Ahnung wie man sowas anspricht. Vielleicht könnt ihr mir helfen.

      Gruß Acki
    • Hi Acki, da ich mir sicher bin, das du hier nicht mit aller Gewalt von deiner hardware-Vorstellung abgedängt wirst, solltest du in den anderen Foren einen Hinweis posten, dass nicht unnötiges Geschrei wegen crossposting aufkommt.
      Jetzt noch nachgefragt: betätige ich einen Taster, soll sofort das Relais schalten? Kippe ich diese Taster in die andere Stellung, dann soll das Relais wieder abfallen?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Ein Hinweis, dass du dein Glück woanders suchst.

      Ok, mit den 74595 willst du die Relais ansteuern. Dazu wirst du ja eine Schaltung (Platine) aufbauen. Mit der gleichen Platine wäre auch die Tastenabfrage machbar. Wenn das aus irgendwelchen, mir jetzt nicht bekannten Gründen nicht gehen sollte, dann kannst du immernoch extra Platinen mit den 74165 machen. Wenn's aber geht, halbe Arbeit.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Dann kannst du ja mal mit den 2 74595 8 Taster und 4 Relais ausprobieren.
      Die Register haben intern 3 'Bausteine':
      Das eigentliche Schieberegister: der Pegel am Eingangspin wird bei einer positiven Flanke am clockpin übernommen. Jeder weitere clock schiebt diesen Pegel um eine von den 8 Stufen weiter, bis er beim 9. clock hinten wieder raus kommt.
      Das sogenannte latch, ein 8 bit Zwischenspeicher. Bedient man den pin latch mit einer positiven Flanke, werden die aktuellen Pegel aus dem Schieberegister gespeichert.
      Die Ausgangstreiber, an jeder Speicherstelle vom latch ist so ein Treiber, der den Ausgangspin je nach Pegel im latch setzt.
      Wenn du jetzt 8 Taster (4 Umschalttaster) an die Ausgänge vom 1. 74595 anschließt und den Mittelkontakt der Taster alle querverbindest, ist die Tasterschaltung fertig.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Ja, ein Hinweis auf das ursprüngliche Posting in anderen Foren ist nicht nur hier gern gesehen.
      Mein Hinweis auf den HT16K33 im andren Forun hast du gesehen? Beispiel findest du hier im Forum, ein HT-Chip kann bis zu 39 Tasten einlesen, wesentlich weniger Aufwand in der Verkabelung wenn alle Taster eh auf einem Panel sitzen.
      Die Hilfe in Bascom ist sehr gut, zum einlesen der schieberegister schau dir einmal Shiftin an, zur Ausgabe Shiftout. Dies sind Softwareroutinen die du an jedem Pin konfigurieren kannst. Es gibt noch die Hardware Variante mit SPIin und SPIOUT, der einfacheren Portierung und übersichtlichkeit wegen würde ich dir zur SW Version raten.

      Tobias
    • Schraubbaer schrieb:

      Ja, ein Hinweis auf das ursprüngliche Posting in anderen Foren ist nicht nur hier gern gesehen.
      Mein Hinweis auf den HT16K33 im andren Forun hast du gesehen? Beispiel findest du hier im Forum, ein HT-Chip kann bis zu 39 Tasten einlesen, wesentlich weniger Aufwand in der Verkabelung wenn alle Taster eh auf einem Panel sitzen.
      Die Hilfe in Bascom ist sehr gut, zum einlesen der schieberegister schau dir einmal Shiftin an, zur Ausgabe Shiftout. Dies sind Softwareroutinen die du an jedem Pin konfigurieren kannst. Es gibt noch die Hardware Variante mit SPIin und SPIOUT, der einfacheren Portierung und übersichtlichkeit wegen würde ich dir zur SW Version raten.

      Tobias
      Ja das habe ich gelesen. Allerdings handelt es sich wieder um I2C wovon mir abgeraten wurde. Ausserdem habe ich ja wie gesagt einen ganzen Sack Schieberegister bekommen. Die Idee ist aber trotzdem interressant.
    • Kannst ja mischen, zum einlesen I2C zur ausgabe Schieberegister. Wobei ich in Punkto Störsicherheit bei I2C oder SPI kaum unterschiede sehe. Mit I2C auf100KHz seh ich jetzt keine Probleme, willst ja nicht durch nen ganzes Haus damit. I2C kann man halt auch schöner Kaskadieren und für andere sachen mitnutzen als SPI. Bei mir werdens 32 Dimmbare Ausgänge, macht sich mit nem fertigen I2C chip ganz einfach.
      Wenn mal Relais dazukommen (kommt bestimmt ) nehm ich MCP23017 mit 16 ausgängen pro chip

      Tobias
    • Acki schrieb:

      Sorry jetzt habe ich gerade Bahnhof verstanden. Brauche ich keinen Kontroller?
      74595 hat doch nur Ausgänge???? oder?
      Doch einen Kontroller brauchst du schon. Der macht folgendes: der Dateneingang vom 74595 wird auf high gebracht. Dann wird mit einem weiteren pin vom Kontroller der clock vom 74595 auf high und wieder low gebracht. Wenn jetzt mit einem 3. pin der latch-pin vom 74595 auf high und low gebracht. Jetzt ist der Ausgang 1 vom 74595 auf high. Wenn du jetzt den Taster, der am 1. Ausgang angeschlossen ist bedienst, dann ist die 'Querverbindung' der Taster auch auf high. Wenn du diesen Anschluß an einem 4. pin der Kontrollers anschließt, kannst du ihn auswerten 'Taster 1 gedrückt'. Wenn Taster 1 nicht gedrückt wurde, ist dieser Eingang (vielleicht mit einem pulldown) low. Weiter geht's, der erste pin (Eingang vom 74595) wird auf low gebracht, clock schnackelt, latch schnackelt und am 2. Ausgang (nur da) liegt high an. Eingangsabfrage, ob der 2. Taster diesen Ausgang auf high gesetzt hat. Weiter geht's mit clock schnackeln, latch schnackeln und Ausgang 2 ist high. Jetzt kannst du dir den nächsten Schritt vorstellen? Du musst das clockschnackeln natürlich mitzählen, damit du weißt, welcher Ausgang gerade high ist und du den Taster zuordnen kannst.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Unterschied 595 ist ein 8x ausgang, 165 8x eingang.
      mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister
      Warum nur kurz anziehend? Kannst du doch Programmieren wie du willst, so ich mich erinner waren die 130 Relais doch nur weil die fertigen relaisplatinen pro Releis nur 1 Wechsler haben und du deswegen 2 Pro "Taster" brauchst? Nimm relais mit 2x Wechsler und du hast die hälfte Materialaufwand, so wie ich das mit den Schieberegistern sehe machst du doch die Relaisplatine nun auch selber?

      Tobias
    • Also geh! Was ist da so schwierig? Ich hab' noch was ganz wichtiges vergessen, zwischen Ausgang von 74595 zum Taster muss eine Diode, Anode am Ausgang, Kathode am Taster. Sonst wren bei gleichzeitigen Bedienen von Tastern möglicherweise Ausgang auf Ausgang geschaltet, gaanz schlecht.
      Langen dann 64 Taster und 64 Relais?

      @Schraubbaer ich erzeuge doch nur einen polling-impuls (nein, nicht pollin) und lass den an den Tastern vorbei sausen. Der Vorteil, ich hab' für Tastenabfrage und Relais treiben die gleiche Platine (wenn man die nicht mit dem Kontroller noch vollpackt).
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------