Forum: Mikrocontroller und Digitale Elektronik 2-Draht Signalleitungsrätsel


von Theodor K. (Firma: none) (theokar)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

nach langjähriger Pause möchte ich wieder in die Elektronik als Hobby 
einsteigen. Und zu aller erst will ich ein wenig mit den AVR Tiny 
Mikrocontrollern rumspielen und dabei meine Sporen in der ASM 
Programmierung verdienen.

Nun habe ich ein kleines Logikproblem mit der externen Beschaltung für 
Ein- und Ausgabe am AVR. Ich möchte mich noch nicht auf einen bestimmten 
Typen festlegen (momentan habe ich ATtiny24 und ATtiny25 zur Verfügung), 
daher die Bezeichnung IO_0-2 in der Skizze.

Das Ziel:

Ich habe zwei Signalleitungen nach außen, hier kann ich mit einem Taster 
die Leitung überbrücken und so ein Signal (Taster gedrückt) erzeugen.

Ebenso sollte über die beiden Leitungen eine Duo-LED angeschlossen 
werden, die Farbe wird hier durch umpolen der Versorgungsspannung 
erreicht.
(die beiden Dioden in Reihe sollen einen gewissen Spannungsabfall 
erwirken, für die Idee mit:  3.3V LED off, 5V LED on)

Zustand  IO_0  IO_1  |  Polung Spannung
--------------------------------------
  0      Lo    Lo    |   X      3.3V (LED off)
  1      Hi    Lo    |  + -     5.0V (LED rot)
  2      Lo    Hi    |  - +     5.0V (LED grün)
  3      Hi    Hi    |   X      3.3V (LED off)

Alternative:
Zustand  IO_0  |  Spannung
--------------------------------------
  0      Lo       3.3V (LED off)
  1      Hi       5.0V (LED on)

Zustand  IO_1  |  Polung
--------------------------------------
  0      Lo        + -
  1      Hi        - +

Die 3.3V Grundspannung dient zur Funktionserhaltung des Tastendrucks 
auch wenn LED off. (Beispiel)


Taster IO_0 IO_1  |  IO_2
--------------------------------------
  0      X   X    |   0
  1      X   X    |   1

Ebenso sollte die Schaltung im Zustand 0/3 möglichst wenig Strom 
verbrauchen (da Batteriebetrieb).
Zustand 3 sollte softwaretechnisch ausgeschlossen werden, könnte aber 
bei Reset des ATtiny dennoch auftreten.

Das Problem:

Ich bin in der Lage beide Ziele einzeln zu lösen ...
Taster:
--------------------------------------
  SIGNAL_0.0 - IO_2
  SIGNAL_0.1 - GROUND

LED:
--------------------------------------
  IO_0   - Right Side H-Bridge
  IO_1   - Left Side H-Bridge
  VCC    - Top H-Bridge
  GROUND - Bottom H-Bridge
  SIGNAL_0.0 - Out_0 H-Bridge
  SIGNAL_0.1 - Out_1 H-Bridge

... jedoch stehe ich mit der Kombination der beiden Funktionen etwas auf 
dem Schlauch.

Habt ihr mir hier ein paar Anregungen/Ideen/Tips evtl. reicht auch ein 
Schlagwort, nachdem ich suchen kann?
Fest sind die 2 Signalleitungen und möglichst wenig IOs am ATtiny.
Und natürlich soll das Ganze möglichst elegant mit wenig 
unterschiedlichen Bauteilen funktionieren, da der Platz für die 
Beschaltung wie immer Mangelware ist. :-)


Vielen Dank schon ma im Vorraus für eure Mühe,

Theo.

von Ich (Gast)


Lesenswert?

Ich habe zwar normalerweise keine Probleme mit Textaufgaben, aber
hier verstehe ich weder den Sinn noch die Aufgabenstellung.

Was soll das denn werden?
Im Titel steht was von Fernbedienung, soll der Taster und die LED
getrennt sein oder soll an zwei Orten eine Kombination aus LED
und Taster sein?
Wenn schon die Innenbeschaltung unklar ist, dann sollte vielleicht
die externe Aufteilung deutlicher sein.

Um in der ferne eine LED leuchten zu lassen, brauchts jedenfalls
keinen Attiny.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Theodor Karillion schrieb:
> 1      Hi    Lo    |  + -     5.0V (LED rot)
> 2      Lo    Hi    |  - +     5.0V (LED grün)
Du willst da +-5V anschliessen und dann sollen die LEDs leuchten?
Da wirst du bestenfalls ein kurzes "Aufleuchten" sehen, und dann sind 
die Dinger kaputt.

Wozu sind in dieser Geschichte hier eigentlich die beiden Dioden? Zur 
künstlichen Erhöhung der Durchlasspannung?

Was ist an dieser Aufgabe gegeben und was willst du erreichen?
Ich sehe es so:
Du hast zwei Adern verlegt.
Du willst darüber eine rote und eine grüne LED leuchten lassen und 
zudem einen Taster abfragen.

von Theodor K. (Firma: none) (theokar)


Lesenswert?

Danke, das ist die Essenz:

Lothar Miller schrieb:
> Du hast zwei Adern verlegt.
> Du willst darüber eine rote und eine grüne LED leuchten lassen und
> zudem einen Taster abfragen.

Ob 2 LEDs oder Duo-LED ist ja egal.

OK, ich gebe zu mein Text ist etwas wirr, aber steht alles drin.

Vorgabe:
  2 Signalleitungen (SIGNAL_0.0 und SIGNAL_0.1)
  Anschluss von X Tastern (siehe Schaubild)
  Anschluss von X Duo LEDs (siehe Schaubild)
  Wenig IOs vom ATtiny (mit meinem Lösungsansatz IO_0-2)

  Zustände siehe Logikdiagramm aber nochmal (IO_0 und IO_1):
    LED AUS
    LED GRÜN
    LED ROT

  In jedem Zustand Tastenklick erkennen -> IO_2


Zur Umgebung:
  Ich habe eine Black-Box, da ist ein ATtiny drin mit etwas Schaltung.
  Aus der Box herraus ragen 2 Käbelchen an die ich parallel mehrere 
Taster
  und LEDs hängen möchte.

Problem:
  das "etwas Schaltung" ist mir gerade noch zu Hoch und bitte hier um
  Hilfe/Rat/Tips.

Lothar Miller schrieb:
> Du willst da +-5V anschliessen und dann sollen die LEDs leuchten?
> Da wirst du bestenfalls ein kurzes "Aufleuchten" sehen, und dann sind
> die Dinger kaputt.

Ein Lösungsansatz meinerseit war: 3.3V -> LED aus, 5.0V -> LED an
Da dienen die beiden anderen Dioden zur Erhöhung der Durchlasspannung.
(von mir aus auch 3 Dioden 3 x 0.7V = 2.1V Spannungserhöhung, aber das 
ist ja nur Beispielsweise!)
Und dass mir die LEDs bei 5V nicht hopps gehen, dazu ist der Widerstand 
da (die 5K sind nur als Beispiel!).

Wenn ihr andere Tips habt, wie ich ganz einfach die Funktion Taster + 
LEDs lösen kann, bin ich dem nicht abgeneigt (meines war ja nur ein 
Lösungsansatz :-) ).

von dlee (Gast)


Lesenswert?

Naja, irgendein serielles Interface + Chip auf der anderen Seite macht 
vermutlich mehr Sinn, als so ne Konstruktion, grade da du ja von "X" 
Leds und "X" Tastern redest.
Irgendwie geht es sicher, aber wie du schon gesehen hast sind 2 Pins 
halt schwierig, ohne PWM und/oder schnelle Moduswechsel der Pins oder 
serielle Übertragung  wirds nicht gehen.

von Ralf (Gast)


Lesenswert?

Hallo Theodor,

also mehrere Taster und mehrere DuoLEDs an 2 Signalleitungen wird nicht 
funktionieren. Es sei denn, Du baust bei den LEDs und Tastern so etwas 
wie einen TwoWire-Slave auf.

Einen Taster und eine DuoLED an 2 Signalleitungen ist aber schon 
möglich:
Schließ den Taster und die DuoLED einfach parallel und dann damit in 
Reihe einen Widerstand, z.B. 1kOhm. Daran lötest Du deine 
Signalleitungen. Die anderen Enden der Signalleitungen sind mit 2 
AVR-PortPins verbunden. Durch Umpolen kannst Du (wie oben beschrieben) 
die beiden Farben leuchten lassen. (Zusätzliche Dioden brauchst Du dafür 
nicht.) Alle 100ms schaltest Du mal einen Port auf "L" und den anderen 
auf "H". Danach schaltest Du den H-Port auf Eingang und wertest den 
Logikpegel aus. Wenn es immer noch "H" ist, war der Taster nicht 
gedrückt. Bei "L"-Pegel war der Taster gedrückt. Das geht so schnell, da 
werden die LEDs nicht sichtbar flackern. Falls die Leitungskapazität 
nicht ausreicht (der Port "zieht" als Eingang max. 1uA) schaltest Du 
noch 1nF parallel zum Taster. Aber Achtung: Dann muß das H-Signal auch 
etwas länger anliegen, weil der 1nF über den Widerstand mit aufgeladen 
werden muß (über 0,7V).

Grüße

von (prx) A. K. (prx)


Lesenswert?

Ich will mal den ADC mit in die Diskussion einwerfen. Man kann recht 
viele Taster an eine der LED-Leitungen hängen, mit jeweils anderem 
Spannungswert über entsprechende Widerstände. Diese mittelohmig an einen 
Pin dran. Beide Pins auf Eingang und den mit den Tastern messen. Sind 
die Pins Ausgänge stören die Taster nicht, sind sie Eingänge stören die 
LEDs nicht. Geht natürlich nicht gleichzeitig messen und leuchten.

von Achim M. (minifloat)


Lesenswert?

Darf die gerade Leuchtende LED ausgehen, wenn der Taster gedrückt wird?
Leuchtet bei unbetätigtem Schalter immer eine der beiden LEDn?
1
_____
2
     |                      .--*--------*---------*
3
   P0|-*----------.  .--.  /  _|_      _|_        |
4
  µC | |           \/    \/   \ /rot    ^ grün    *| Taster
5
     | |           /\    /\   _V_D1    /_\D2      *|
6
   P1|-+--*-------´  `--´  \   |        |         |
7
_____| |  |         Leitung `--*--------*---------*
8
       |  |
9
       R1 R2
10
       1k 1k
11
       |  |
12
  VCC--*--*
Die Leitungen werden "hart" nach GND gezogen, d.h. emuliere hier an P0 
und P1 jeweils einen Open-Collector-Ausgang(sonst ist eine LED futsch).
Wenn die rote LED an sein soll, wird P1 nach GND gezogen, P0 ist dann 
der Tastereingang.
Wenn die grüne LED an sein soll, wird P0 nach GND gezogen, P1 ist dann 
der Tastereingang.

Bei 2 Portpins gibt es nur 4 mögliche Spannungen zwischen den Pins:
a) 0V  (beide lo)
b) VCC (einer hi der andere lo)
c) -VCC(einer lo der andere hi)
d) 0V  (beide hi)

Dummerweise sind die 2x 0V weder dazu geeignet, LEDs leuchten zu lassen 
noch den Taster zu bestromen, um ihn abfragen zu können.

Es gibt allerdings eine Lösung, die mit ein weing passiven Bauelementen 
keine LED angehen lässt aber dennoch eine Tasterabfrage gestattet. Dazu 
an der Tastereinheit noch einen Serienwiderstand vor jede LED und einen 
Kondensator parallel zu jeder LED. Wenn man die Zustände b) und c) genug 
schnell umschaltet, leuchtet keine LED, der Tastendruck wird jedoch 
erkannt. Wenn man eine LED anhaben will, dann so wie oben. Tastendrücke 
werden dann natürlich trotzdem erkannt.

mfg mf

PS: damit bei der obigen Schaltung eine 1 bei roter LED zuverlässig 
erkannt wird, ist es u.U. nötig, dort eine Diode vorzuschalten(U_f≈1,6V, 
nachher dann 2,3V wie bei der grünen). Mir sind aber auch schon grüne 
LEDn mit U_f < 2V untergekommen.

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
Noch kein Account? Hier anmelden.