Hallo zusammen, ich stehe vor einer vermeitlich einfachen Herausforderung und außerdem irgendwie auf dem Schlauch, so dass mir keine Lösung einfällt. Ich möchte einen Mehrfach-Taster bauen, welcher die gedrückte Taste per CAN auf einen Bus sendet. Das ganze soll von einem µC (z.B. ATMega) gesteuert werden, der beim Druck auf einen der Taster bestromt wird und gleichzeitig weiß, welcher der Taster gedrückt wurde. Bei einem Taster ist es enfach. Taster zwischen VCC und Spannungseingang vom µC + an einen GPIO. Bei zwei Tastern geht es aber so nicht mehr. Die Ausgänge vom Taster sind dann ja beide am Spannungseingang vom µC verbunden, so dass auch alle GPIOs an den Tastern verbunden wären und der µC nicht weiß, welcher Taster gedrückt wurde. Gibt es eine einfache Schaltung, mit der ich herausfinde, welcher Taster gedrückt ist? Idealer Weise auch, wenn mehrere gleichzeitig gerückt werden. Vielen Dank, Michael.
Versorgung mit je einer Diode pro Taster entkoppeln. Tasterzustand vor Diode abfragen.
Michael W. schrieb: > Das ganze soll von einem µC (z.B. ATMega) > gesteuert werden, der beim Druck auf einen der Taster bestromt wird und > gleichzeitig weiß, welcher der Taster gedrückt wurde. Laß den AVR einfach ständig an VCC im Power-Down (<1µA) und per Pin-Change aufwachen. CAN ist allerdings kein Stromsparbus, d.h. der Verbrauch des MC wird eh keine Rolle spielen.
Man kann mehrere Taster mit Widerständen verschalten, so dass sich unterschiedliche Spannungen ergeben. Diese dann analog abfragen. Ansonsten ist es auch gängige Methode, mehrere Taster als Matrix zu verschalten. Das mach bei mehr als 5 Tastern Sinn. Welcher ATmega hat einen CAN Bus? Ich würde lieber einen Mikrocontroller nehmen, der CAN und genug I/O Pins hat. Zum Beispiel einen STM32F302 oder 303.
Michael W. schrieb: > Ich möchte einen Mehrfach-Taster bauen, welcher die gedrückte Taste per > CAN auf einen Bus sendet. Was denn, die ganze Taste? Mit oder ohne Tastenkappe? Nein, solche schwammigen Sätze lassen auf ebenso schwammiges Denken dahinter schließen. wenngleich auch unsereiner sich darauf einen sinnvollen Reim machen kann, dahingehend, daß man aus der Änderung einer der Tasten von ungedrückt auf gedrückt ein Tastenereignis generieren will, wovon man dann eine Botschaft über den Bus der Wahl zu schicken beabsichtigt. Und elektrisch geht sowas auch - jedenfalls für den Part der Tasten, allerdings müßte man dazu etwas selbst nachdenken. W.S.
Michael W. schrieb: > Das ganze soll von einem µC (z.B. ATMega) gesteuert werden, der beim > Druck auf einen der Taster bestromt wird Unsinn, moderne uC wie ATmega brauchen in sleep so wenig Strom als ob sie abgeschaltet sind. Also einfach dauernd an Strom, den Taster an einen Pin und in sleep auf pin change interrupt warten, dann weisst du auch welcher Taster es war. Und wenn der uC hinter einen Spannungsregler soll: es gibt auch da wekche, die mit Mikroampere auskommen, also auch dauernd dran bleiben können.
Noname schrieb: > Versorgung mit je einer Diode pro Taster entkoppeln. Tasterzustand > vor Diode abfragen.
Vielen Dank für die vielen Antworten. Mit Dioden geht es. Das Argument mit dem geringen Verbrauch des µC im sleep ist aber auch sehr gewichtig, zumal das Netzteil, was den ganzen Spaß versorgt eh dauerhaft läuft. Damit ist die Schaltung dann auch wesentlich einfacher und ich bin flexibler. ATMega war nur ein Beispiel. Für den CAN würde ich entweder ein Modul mit TJA1050 + mcp2515 einsetzen oder wenn der µC direkt CAN spricht, halt nur den TJA1050. > CAN ist allerdings kein Stromsparbus, d.h. der Verbrauch des MC wird eh keine Rolle spielen Auf dem Bus habe ich aber nur Verbrauch, wenn da Teilnehmer aktiv sind. Bei ein paar Tastern sind das recht wenige Ereignisse, die in Summe auch entsprechend wenig Strom verbrauchen werden.
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.