3 LEDs an 2 Leitungen

OP #7824341
Lesenswert?

Hallo Foraner,

kurz zu den Umständen: 3 LEDs sollen Status Heizzentrale signalisieren: grün=OK, orange=Pellets nachfüllen, rot=Störung. Wenn beide Leitungen eingeschaltet, dann nur rot. Dafür sollten 2 Adern plus Minus reichen, dachte ich mir...

Schaltung0 ist erster Entwurf mit Relais - nie realisiert, gleich zu:

Schaltung1 übergegangen. Funktioniert perfekt. Das neue Signal braucht aber gemeinsamen Minus, also habe ich

Schaltung2 aufgebaut. Die beiden 1N4007 (zur Entkopplung) und der 1M habe ich nachträglich zugefügt, weil ich schon auf dem Basteltisch Probleme hatte. Auch so war der rote Teil (ganz rechts) extrem empfindlich auf Berührungen. Durch den 1M gings dann - aber draussen leuchten nun die rote LED auch wenn nur die Orange leuchten soll.

Gibt's eine Standardschaltung für diese Aufgabe, oder was kann ich verbessern?

Gruss Chregu

Angehängte Dateien:
#7824365
Lesenswert?

Hallo Christian.

Ich habe mal ein Paar Fragen.

Christian M. schrieb:

Schaltung1 übergegangen. Funktioniert perfekt. Das neue Signal braucht aber gemeinsamen Minus, also habe ich

Was stört dich daran, dass gemeinsame Minus hast du doch auch bei Schaltung 2? Eventuell hätte ich noch Widerstände nach Minus an der Basis eingefügt, damit diese sicher abschalten.

Schaltung2 aufgebaut. Die beiden 1N4007 (zur Entkopplung) und der 1M habe ich nachträglich zugefügt, weil ich schon auf dem Basteltisch Probleme hatte. Auch so war der rote Teil (ganz rechts) extrem empfindlich auf Berührungen. Durch den 1M gings dann - aber draussen leuchten nun die rote LED auch wenn nur die Orange leuchten soll.

Ich empfinde die NPN-Schaltungen als schöner/besser.

Gibt's eine Standardschaltung für diese Aufgabe, oder was kann ich verbessern?

Schaltung 1 sieht für mich erst einmal OK und logisch aus. Was ich mich nur gefragt hatte ist, ob die Basiswiderstände soweit stimmen.

#7824387
Lesenswert?

Christian M. schrieb:

Dafür sollten 2 Adern plus Minus reichen, dachte ich mir... ... Gibt's eine Standardschaltung für diese Aufgabe, oder was kann ich verbessern?

Warum mehr als 2 Adern? Eine Duo-LED mit rot-grün antiparallel benötigt eine 2-adrige Leitung. Rot - erste Ader '+', die andere '0' Grün - erste Ader '0', die andere '+' gelb - abwechselnd "rot"/"grün" mit Umschaltfrequenz 100 Hz.

Als "Treiber" kann je nach LED-Strom schon ein 74HC00 oder ein µC-Ausgang reichen. Als Oszillator reicht irgendetwas (NE555, ...). Ob der Zusatzaufwand mit dem Oszillator lohnen würde, hängt davon ab, ob bereits ein Kabel vorhanden ist (was für eins) oder sowieso neu gelegt werden soll.

#7824400
Lesenswert?

Rainer W. schrieb:

Als "Treiber" kann je nach LED-Strom schon ein 74HC00 oder ein µC-Ausgang reichen.

Dafür gibt es keine Versorgungsspannung. Die Datenleitungen sollen auch gleichzeitig die LEDs versorgen.

John-eric K. schrieb:

oder gibt es nur Plus oder Offen?

Im Zweifel kann man an den 3 Basen noch einen 100k Pulldown Widerstand schalten. Dann funktioniert die Schaltung immer zuverlässig.

Parallel zu den 100k Widerständen kann man noch 470nF Kondensatoren schalten, um eingfangenes 50 Hz Netzbrummen auf den langen Leitungen zu eliminieren.

Angehängte Dateien:
OP #7824415
Lesenswert?

Danke für die vielen Vorschläge! Bin grad net zu Hause, kann erst am Nachmittag wieder ran.

Wollte keine Salamitaktik veranstalten, aber das Problem wird verschärft durch den Umstand, dass ein nicht auf 12V geschalteter Ausgang offen ist, das heisst, es können Leckströme durch die Dioden in die Basis des jeweiligen anderen Transistors fliessen. Daher werde ich mal den Vorschlag mit dem 10k ausprobieren.

Gruss Chregu

(Firma: Chipwerkstatt) #7824422
Lesenswert?

Hier mal der Link: https://de.wikipedia.org/wiki/1-aus-n-Decoder

Die Schaltungen oben gehen an jeder Logig vorbei.

Es gibt in der C-Mos Reihe ein paar 1ausN Gatter. Es sollte aber auch EIN HEF400 reichen. Dieser hat 2 Nand, und ein en Inverter unter der Haube.

Etwas mit Dioden stricken, und an der Kante von Logig-Pegel zu nähen, ist doch Gogolores. Dafür gibt es die Standard-Gatter. Oder man nimmt ein Gal, und brennt da die benötigte Logig rein.

#7824473
Lesenswert?

Christian M. schrieb:

Dafür sollten 2 Adern plus Minus reichen, dachte ich mir...

Dafür reichen 2 Adern, ohne Masse, und eben eine Duo-LED.

Christian M. schrieb:

Das wird ein Signal mit 3 DIY-LED-Lampen, nix mit Duo-LED,

Tja, selber schuld wer erst die Lampen kauft und dann über das Problem nachdenkt. Nächstes Mal besser andersrum.

Wenn die 12V Leitungen belastbar genug sind gehen natürlich 2 Relais, die musst du nun wohl extra dazukaufen.

Mit Halbleitern geht es auch, ein UND Gatter, fur 12V, kräftig genug für den LED Strom, parasitär gespeist

1
      1N4001
2
   +----|>|-+
3
   |        |
4
   |  +-|>|-+
5
   |  |     |
6
A--+--(----| \
7
   |  |    |  )--+--LED3--GND
8
B--(--+----| /   |
9
   |  |     |    |
10
   |  |    GND   |
11
   |  |          |
12
   |  +----LED1--+
13
   |             |
14
   +-----LED2----+
#7824491
Lesenswert?

Ich würde einfach zwei Kleinsignalrelais nehmen, hat man für gewöhnlich doch in der Bastelkiste...Sofern das mit dem Strom passt. Läuft damit bei mir an der Heizung seit Jahren ohne Ausfall...

Christian M. schrieb:

Wollte keine Salamitaktik veranstalten

Aber du macht gerade genau das in diesem Moment. Hättest du wirklich gelesen was geschrieben wurde, wäre dir nicht entgangen dass weitere Fragen offen sind...

Michael B. schrieb:

Mit Halbleitern geht es auch, ein UND Gatter, für 12V, kräftig genug für den LED Strom, parasitär gespeist

Aber wären da im Fall A=1 und B=1 alle drei LED an?

Gruß

#7824500
Lesenswert?

Michael B. schrieb:

Tja, selber schuld wer erst die Lampen kauft und dann über das Problem nachdenkt. Nächstes Mal besser andersrum.

Es gibt Leute die möchten eine Ampel, weil man damit einfach eine deutliche differenzierte Darstellung der Zustände hat, als mit einer Popel DUO Led... Nicht umsonst gibt es Maschinenampeln - nutze ich privat tatsächlich auch.

Michael B. schrieb:

Nein.

Na dann! Ach so ja, weil der Ausgang auf High ist und LED1 und 2 Masse brauchen...verstehe - Ich würde mir die Logik und/oder die Transistoren an der Stelle aber sparen - ist aber ja Geschmacksachse...

Moderator (Firma: Titel) Persönliche Seite #7824518
Lesenswert?

Michael B. schrieb:

Christian M. schrieb:

Dafür sollten 2 Adern plus Minus reichen, dachte ich mir...

Dafür reichen 2 Adern, ohne Masse

Zeig das mal, wenn die Pegel auf den beiden Leitungen wie beschrieben nur aktiv = 12V und inaktiv = offen sind. Wenn also der inaktive Zustand keinen Strom aufnehmen kann.

R. L. schrieb:

die Schaltung ist für 2 Ausgänge und +.

Die funktioniert aber auch nur dann, wenn der inaktive Zustand ein "richtiger", belastbarer Low-Pegel ist.

Thorsten S. schrieb:

Ich würde einfach zwei Kleinsignalrelais nehmen, hat man für gewöhnlich doch in der Bastelkiste...Sofern das mit dem Strom passt. Läuft damit bei mir an der Heizung seit Jahren ohne Ausfall...

Erschient mir auch recht einfach. Das ist die Logik von Peda, nur elektromechanisch:

1
 1 --------o----------------------o---.
2
           |                      |   |  
3
 2 --------+-----o----------.     |   |
4
           |     |          |     |   | 
5
           |     V ge       |  gn V   V rt             
6
           |     -          |     -   -               
7
           |     |          |     |   |               
8
           |  nc o          |  nc o   o no                
9
          [/]-----\        [/]-----\ 
10
           |       o        |       o                  
11
           |       |        |       |                 
12
GND -------o-------o--------o-------o------
#7824530
Lesenswert?

Peter D. schrieb:

Hier noch ein Vorschlag mit MOSFETs.

Jetzt müssen nur noch antiparallele Dioden zwischen Gate und Source geschaltet werden, damit die Reverse Spannung von den MOSFETs nicht überschritten wird. Damit es keinen Kurzschluss gibt, müssen dann auch wieder Gate Vorwiderstände eingesetzt werden und dann kann man auch gleich PNP-Transistoren nehmen. Die machen die Schaltung etwas unempfindlicher.

#7824557
Lesenswert?

Du hast drei Leitungen. Anstatt hier tausend komische Schaltungen mit allerlei Ausgleichsmaßnahmen aufzubauen, mach's doch einfach modern. Natürlich ist das nichts für Puristen, löst aber direkt alle Probleme:

Nimm einen Microcontroller. Zwei der Leitungen dienen zur Spannungsversorgung, ggf. noch über einen kleinen (Schalt-)regler, die dritte Leitung ist für die Kommunikation z.B. per langsamem UART. Auf der Gegenseite muss ein entsprechender Microcontroller programmiert werden, der die Statusmeldungen in entsprechende Nachrichten umsetzt, das sollte aber kein Problem sein.

Der Microcontroller in der Ampel kann dann bequem drei Transistoren ansteuern, die die LEDs schalten.

Diese Lösung ist offensichtlich die beste Lösung: Die Bauteile mögen sehr komplex sein, aber sie sind kostengünstig verfügbar. Durch die Programmierung lässt sich die Funktion beliebig anpassen. Es gibt keine Probleme mit Leckströmen oder anderem Kram. Die Anzahl der Bauteile und damit auch die Komplexität der Schaltung sind gering. Natürlich lässt sich das auch alles diskret aufbauen, aber MCUs sind kostengünstig und deren Programmierung ist wirklich schnell gemacht. Warum also ein Dutzend Schaltungen entwickeln, wenn's mit einer schnellen MCU-Programmierung viel besser geht?

#7824592
Lesenswert?

Mit Fensterdiskriminator kannst Du das über die Spannungspegel sogar mit weniger Adern realisieren. Voraussetzung: Jedem Zustand wird ein Spannungspegel zugeordnet. Aber bleiben wir einmal beim Lösungsansatz oben.

Was ist denn genau mit "Störung" gemeint.

Woher beziehst Du die einzelnen Signal-Spannungen?

ciao gustav

#7824597
Lesenswert?

Karl B. schrieb:

Mit Fensterdiskriminator kannst Du das über die Spannungspegel sogar mit weniger Adern realisieren.

Die Minimierung der Anzahl der Leitungen ist hier absolut kein Thema.

F. schrieb:

Gemeint sind offensichtlich Steuerleitungen.

Es ist halt alles etwas unvollständig und verwirrend...ja, es sind eigentlich drei Leitungen - genau, mit "Minus" ist GND gemeint. Der Einstieg hier samt Überschrift ist leider etwas verwirrend gewählt/formuliert.

F. schrieb:

  1. Aus den Schaltplänen

Ja, sieht man dort ja eindeutig...

OP #7824679
Lesenswert?

Dennis S. schrieb:

Es ist halt alles etwas unvollständig und verwirrend

Ja, sorry!

F. schrieb:

Harald W. schrieb:

Hmm, in der Überschrift lese ich 2 Leitungen.

Gemeint sind offensichtlich Steuerleitungen.

Genau!

Karl B. schrieb:

Woher beziehst Du die einzelnen Signal-Spannungen?

Kommen von der SPS, Relais. Sind dann offen oder geschlossen.

Wenn orange Spannung hat, scheint der grüne Eingang seeehr Empfindlich zu sein. Ist ja auch kein Wunder, sind doch hier zwei Transistor hintereinandergeschaltet - beide in ca. 5facher Sättigung. Mit 47k beim NPN bzw. 15k beim PNP zwischen B-E hat sich das Problem entschärft.

John-eric K. schrieb:

Ich empfinde die NPN-Schaltungen als schöner/besser.

Allgemein? Die PNPs haben auch ihre Berechtigung!

Gruss Chregu

#7824687
Lesenswert?

Enrico E. schrieb:

Jetzt müssen nur noch antiparallele Dioden zwischen Gate und Source geschaltet werden, damit die Reverse Spannung von den MOSFETs nicht überschritten wird.

Bestimmt nicht, bei nur 0,7V sperren die FETs für immer. Erlaubte +/-20V sollten bei +12V ja bequem reichen. In stark gestörter Umgebung kann man aber 2 Transzorbs (SMBJ12A) zu R4, R5 parallel schalten.

#7824707
Lesenswert?

Christian M. schrieb:

Kommen von der SPS, Relais. Sind dann offen oder geschlossen.

Was heißt das. Liegt da eine Spannung an oder nicht. Nur durch geöffnete oder geschlossene Kontakte kannst Du nichts schalten. Da muss irgendwo noch eine Spannungsquelle vorhanden sein.

Tu mir und anderen einen Gefallen und zeichne ein vollständiges Schaltbild. Mit Quelle und Senke. Wo fließt was.

ciao gustav

OP #7824781
Lesenswert?

Karl B. schrieb:

Und wo liegt das eigentliche Problem?

Christian M. schrieb:

Wenn orange Spannung hat, scheint der grüne Eingang seeehr Empfindlich zu sein.

Es funktioniert(e) nicht 100% zuverlässig! Ich denke, die offenen Eingänge sind dazu nicht gerade dienlich...

Uiuiui, ich brauche dann bei https://www.mikrocontroller.net/attachment/660365/IMG_20250206_182043.jpg unbedingt Pull-Down-Widerstände!

Gruss Chregu

#7824805
Lesenswert?

Peter D. schrieb:

Erlaubte +/-20V sollten bei +12V ja bequem reichen.

Das stimmt natürlich. Trotzdem lasse ich die Transistorlösung noch nicht fallen.

Christian M. schrieb:

Nächste Version...

Wenn man sowieso drei Transistoren benötigt, dann braucht man nicht unbedingt noch einen extra BCD Decoder mit eigener Versorgungsspannung einzusetzen.

R9 parallel zur roten LED ist deshalb nötig, weil sonst 12V durch die orangene Leitung über R3 und D1 eine positive Spannung auf die grüne Leitung übertragen wird und die rote LED dadurch leicht glimmen könnte.

Angehängte Dateien:
#7825046
Lesenswert?

F. schrieb:

mach's doch einfach modern. Nimm einen Microcontroller

So ein Unsinn, wie kommst du überhaupt auf so eine generelle Aussage: "Modern=MiKroncontroller"? Ist ja wie "hell = blau".

Karl B. schrieb:

Und wo liegt das eigentliche Problem? Stellung Störung erkennen und an nur eine LED ausgeben?

Wenn man liest was angefragt ist, sieht man recht schnell, dass es drei Signallampen sind und nicht eine. Demnach liegt das Problem augenscheinlich wohl bei dir zwischen den Ohren, würde ich sagen. Es ist zudem als Fragensteller sehr anstrengend wenn Leute ständig mit offensichtlich komplett eigenen anderen Lösungen unterschwellig um die Ecke kommen, die ganz offensichtlich überhaupt nicht gewünscht sind, so nach dem Motto: Ich suche ein Auto: "... nimm doch ein Fahrrad"...

Enrico E. schrieb:

noch einen extra BCD Decoder mit eigener Versorgungsspannung einzusetzen.

Christian M. schrieb:

Nächste Version...

Schnall ich auch nicht mehr, was das nun soll - jetzt noch eine "Version" einer bereits in anderer Form hier kommentierten und korrigierten Schaltung einzubringen... Anscheinend geht es nicht nur darum mit dem bereits aufgebauten ans Ziel zu kommen... aber wohin die Reise hier nun damit noch gehen soll, kann ich auch nicht nachvollziehen.

Viel schöner wäre nun eine Rückmeldung ob die gefixte Schaltung seinen Dienst verrichtet und alles so läuft wie gewünscht...

Gruß

#7825057
Lesenswert?

Enrico E. schrieb:

R9 parallel zur roten LED ist deshalb nötig, weil sonst 12V durch die orangene Leitung über R3 und D1 eine positive Spannung auf die grüne Leitung übertragen wird und die rote LED dadurch leicht glimmen könnte.

Aber auch über R5 und die BE-Diode von T3. Eine UND-Verknüpfung mit BJTs ist daher recht knifflig zu dimensionieren. Daher nehme ich für Logik lieber FETs, weil die keinen Basisstrom durchreichen und das Signal nicht belasten.

#7825080
Lesenswert?

Peter D. schrieb:

Eine UND-Verknüpfung mit BJTs ist daher recht knifflig zu dimensionieren.

Der TO soll mal ein Logik-Diagramm machen. Was ändert sich am Eingang. So wie ich das sehe, sind nur zwei Relais dafür zuständig. Aber TO will in einer "Logikschaltung" drei LEDs verschiedene Zustände zuordnen. Unter anderem dem Zustand Störung. Und das klappt offenbar nicht richtig.

Peter D. schrieb:

Eine UND-Verknüpfung mit BJTs ist daher recht knifflig zu dimensionieren.

Dafür gibt es auch eine Seite: https://sophisticatedcircuits.wordpress.com/2014/06/08/7-segment-anzeigelogik/

ciao gustav

#7825081
Lesenswert?

Thorsten S. schrieb:

F. schrieb:

mach's doch einfach modern. Nimm einen Microcontroller

So ein Unsinn, wie kommst du überhaupt auf so eine generelle Aussage: "Modern=MiKroncontroller"? Ist ja wie "hell = blau".

Natürlich ist es kein Unsinn. Ein Microcontroller ist die moderne Lösung, weil sie zeitgenössische Technologien optimal nutzt und daher schnelles Erreichen des Ziels, Einfachheit der Schaltung, Flexibilität und Kosteneffizienz kombiniert.

Natürlich lässt sich das Problem auch mit einem TTL-Grab oder diskret aufgebauter Diode-Transistor-Logik lösen, aber offensichtlich gibt's da Probleme, weil es nicht auf Anhieb funktioniert. Mit einem Microcontroller ist die Auswahl der Transistoren weitgehend unkritisch. Es genügt ein sehr einfacher Microcontroller, der auch wirklich wenig kostet. Die modernen ATTinys wären z.B. geeignet und lassen sich auch ohne aufwendige Programmierhardware programmieren, natürlich geht's auch noch kostengünstiger, wenn man die Hardware bereits hat. Die Schaltung ist extrem einfach, die lässt sich einfach ohne große Überlegung aufbauen, es sind ja nur drei Transistoren, die von einem Microcontroller angesteuert werden. Die benötigte Software ist unkritisch und sehr einfach. Die ist sogar so einfach, dass davon auszugehen ist, dass ChatGPT sie im ersten Anlauf aus einem einigermaßen verständlich formulierten Prompt generieren kann, wenn man sich da die Programmierung nicht zutraut.

Kurzum: Mit der modernen Microcontroller-Lösung muss ich weder antike TTL-Gräber aufbauen noch vorsintflutlich Wahrheitstabellen minimieren, umformen und sie dann in DTL umsetzen. Kann man natürlich machen, ist eine nette Übung, um zu verstehen, was so passiert, aber modern ist das nicht. Modern ist eine softwarebasierte Lösung. Die wäre nach einer Stunde Arbeit übrigens auch fertig und würde zuerlässig funktionieren.

Thorsten S. schrieb:

Viel schöner wäre nun eine Rückmeldung ob die gefixte Schaltung seinen Dienst verrichtet und alles so läuft wie gewünscht...

Wenn wir hier schon Sprachpolizei spielen wollen und "Microcontroller" ankreiden: IHREN Dienst.

#7825103
Lesenswert?

F. schrieb:

vorsintflutlich Wahrheitstabellen minimieren,

Na ja, beim Programmieren werde ich auch nicht so gänzlich um die boolsche Algebra herumkommen. Muss das "Problem" erst einmal richtig verstehen, um es dann in passende "if", "then", "else" -Befehle umzusetzen. Nur die Sache ist dann peripheriemäßig sehr einfach: eingangsseitig zwei Ports (die besagten Relais) evtl. mit allen Schikanen zur Pegelanpassung und/oder Potenzialabtrennung etc. pp. Ausgangsseitig drei Ports zur Ansteuerung der einzelnen LEDs. Evtl. nur noch Transistoren als Pegelwandler oder Stromverstärker.

Die Architektur der µPs erlaubt mehr. Also Statusregister, Speicherbit, Half-carrybit. Das sind nur ganz kleine Beispiele aus der "Trickkiste".

ciao gustav

#7825172
Lesenswert?

Karl B. schrieb:

Der TO soll mal ein Logik-Diagramm machen.

Das Logik-Diagramm (Funktionstabelle) kann man schon fast selbst machen, nur mit dem Unterschied, dass die Eingänge bei Lowsignal offen sind.

Man kann sogar eine richtige Aufgabenstellung daraus formulieren:

Gegeben: Funktionstabelle

Gesucht:

  1. KV-Diagramm

  2. Minimierte schaltalgebraische Formel

  3. Minimierte Schaltung

Angehängte Dateien:
#7825199
Lesenswert?

man könnte sich noch die niedrige Flussspannung der roten LED zunutze machen und die beiden anderen LEDs damit zu ausgehen "zwingen". Nur als Anstz.

Ich würde da jezt an der bestehenden Schaltung nichts mehr änern. Evtl. noch einen 100R in die Leitung und einen 1µF jweils gegen GND. UNd das ganze eben so niederohmig ausführen, wie geradeso vertretbar. Wenn dort 10Meter offene Leitung dranhängen, würde ich da schon drüber nachdenken. Ansonsten ist doch alles fertig. Einmal "grün", einmal "orange" und wenn beide an sind "rot", während die beiden wieder verlöschen. Es gibt hier weder 12V~, noch ne Duo-LED und schon garkein SPI-Bus. Der nächste kommt sonst mit "WS2812" oder "APA102" um die Ecke.

#7825212
Lesenswert?

Karl B. schrieb:

F. schrieb:

vorsintflutlich Wahrheitstabellen minimieren,

Na ja, beim Programmieren werde ich auch nicht so gänzlich um die boolsche Algebra herumkommen. Muss das "Problem" erst einmal richtig verstehen, um es dann in passende "if", "then", "else" -Befehle umzusetzen. Nur die Sache ist dann peripheriemäßig sehr einfach: eingangsseitig zwei Ports (die besagten Relais) evtl. mit allen Schikanen zur Pegelanpassung und/oder Potenzialabtrennung etc. pp. Ausgangsseitig drei Ports zur Ansteuerung der einzelnen LEDs. Evtl. nur noch Transistoren als Pegelwandler oder Stromverstärker.

Die Architektur der µPs erlaubt mehr. Also Statusregister, Speicherbit, Half-carrybit. Das sind nur ganz kleine Beispiele aus der "Trickkiste".

Ich habe das gelernt, ich kann sogar Wahrheitstabellen minimieren und in NAND-Logik überführen. Alles kein Problem. Aber Software ist extrem schnell geschrieben und gerade so einfache Software ist überhaupt kein Problem. Das kann man sogar machen, wenn man sehr wenig Ahnung hat und sein Problem einfach gut beschreiben kann.

Beispiel gefällig?

1
schreibe arduino-code. ich brauche code für zwei microcontroller, einen "sender" und einen "empfänger". der sender hat zwei digitale eingänge und gibt eine nachricht über uart aus, die den zustand dieser eingänge beschreibt. am empfänger sind 3 leds angeschlossen, led_rot, led_gelb, led_gruen. der empfänger empfängt die nachricht vom sender und steuert die leds an: wenn kein eingang gesetzt ist, sind alle led aus. wenn eingang 1 gesetzt ist, leuchtet nur die gelbe led. wenn eingang 2 gesetzt ist, leuchtet nur die grüne led. wenn beide eingänge gesetzt sind, leuchtet nur die rote led. füge eine konstante im code ein, die mir erlaubt, die led-ansteuerungslogik zu invertieren. die zykluszeit soll 5 sekunden sein.

das gibt man in das LLM der Wahl ein und erhält dann passenden Code, z.B.

Sender:

1
const int eingang1 = 2;
2
const int eingang2 = 3;
3
void setup() {
4
  Serial.begin(9600);
5
  pinMode(eingang1, INPUT);
6
  pinMode(eingang2, INPUT);
7
}
8

9
void loop() {
10
  bool zustand1 = digitalRead(eingang1);
11
  bool zustand2 = digitalRead(eingang2);
12
  Serial.print(zustand1);
13
  Serial.print(",");
14
  Serial.println(zustand2);
15
  delay(5000); // 5 Sekunden Zykluszeit
16
}

Empfänger:

1
const int led_rot = 2;
2
const int led_gelb = 3;
3
const int led_gruen = 4;
4
const bool invertiereLogik = false; // Auf true setzen, um die LED-Logik zu invertieren
5

6
void setup() {
7
  Serial.begin(9600);
8
  pinMode(led_rot, OUTPUT);
9
  pinMode(led_gelb, OUTPUT);
10
  pinMode(led_gruen, OUTPUT);
11
  digitalWrite(led_rot, invertiereLogik ? HIGH : LOW);
12
  digitalWrite(led_gelb, invertiereLogik ? HIGH : LOW);
13
  digitalWrite(led_gruen, invertiereLogik ? HIGH : LOW);
14
}
15

16
void loop() {
17
  if (Serial.available() > 0) {
18
    String eingang = Serial.readStringUntil('\n');
19
    int index = eingang.indexOf(',');
20
    bool zustand1 = eingang.substring(0, index).toInt();
21
    bool zustand2 = eingang.substring(index + 1).toInt();
22
    steuereLEDs(zustand1, zustand2);
23
  }
24
}
25

26
void steuereLEDs(bool zustand1, bool zustand2) {
27
  if (!zustand1 && !zustand2) {
28
    digitalWrite(led_rot, invertiereLogik ? HIGH : LOW);
29
    digitalWrite(led_gelb, invertiereLogik ? HIGH : LOW);
30
    digitalWrite(led_gruen, invertiereLogik ? HIGH : LOW);
31
  } else if (zustand1 && !zustand2) {
32
    digitalWrite(led_rot, invertiereLogik ? HIGH : LOW);
33
    digitalWrite(led_gelb, invertiereLogik ? LOW : HIGH);
34
    digitalWrite(led_gruen, invertiereLogik ? HIGH : LOW);
35
  } else if (!zustand1 && zustand2) {
36
    digitalWrite(led_rot, invertiereLogik ? HIGH : LOW);
37
    digitalWrite(led_gelb, invertiereLogik ? HIGH : LOW);
38
    digitalWrite(led_gruen, invertiereLogik ? LOW : HIGH);
39
  } else if (zustand1 && zustand2) {
40
    digitalWrite(led_rot, invertiereLogik ? LOW : HIGH);
41
    digitalWrite(led_gelb, invertiereLogik ? HIGH : LOW);
42
    digitalWrite(led_gruen, invertiereLogik ? HIGH : LOW);
43
  }
44
}

Ist das der beste Code der Welt? Nö. Funktioniert er? Ja. Natürlich ist er schrecklich ineffizient, sinnvollerweise würde man die Eingänge zu einem Symbol zusammenfassen und müsste dann auf Empfängerseite kein gruseliges String-Handling mehr machen. Aber egal, geschenkt. Es ist ein Einzelstück, das Ding hängt an einer zuverlässigen Stromversorgung, da ist ein wenig Ineffizienz verzeihlich. Natürlich kann das mit dem nächsten Prompt korrigiert werden, wenn es einen so stört. Dafür habe ich jetzt keine zwei Minuten gebraucht, um mir die Anfrage zu überlegen, jetzt könnte ich meine beiden Schaltungen mit dem Sender- und Empfänger-Microcontroller aufbauen nebst Eingangs- und Ausgangsbeschaltung, die programmieren und hätte innerhalb weniger Stunden inklusive Test und Montage mein Problem gelöst. Das ist die moderne Lösung. So "einfache" Programme können LLMs sehr gut generieren, bei komplizierteren Dingen funktioniert das natürlich nicht mehr. Natürlich kann man das auch selber programmieren, wenn man das kann, aber diese Hürde besteht für sehr einfache Software (und das ist einfache Software) mittlerweile einfach nicht mehr.

Schaden kann's natürlich nicht, das Problem auch mit 6 NAND-Gattern lösen zu können, aber ich glaube, hier wird die Geschwindigkeit und Flexibilität von Softwarelösungen völlig unterschätzt. Eine Softwarelösung macht die Hardware üblicherweise sehr einfach.

#7825221
Lesenswert?

F. schrieb:

erhält dann passenden Code

KEINE Aufgabe für eine uc!

Enrico E. schrieb:

Durch antiparallel geschaltete LEDs

So mache ich die Signalisierung hier im Haus auch, genauso. Als Versorgung einfach 8V AC aus dem Klingeltrafor - fertig - läuft seit knapp neun Jahren ohne Ausfall.

Karl B. schrieb:

Der TO soll mal ein Logik-Diagramm machen.

Danach Wurde ja schon ganz zu beginn gefragt...

Beitrag "Re: 3 LEDs an 2 Leitungen"

#7825246
Lesenswert?

Dennis S. schrieb:

erhält dann passenden Code

KEINE Aufgabe für eine uc!

Warum nicht? Es ist schnell aufgebaut, schnell umgesetzt, anpassbar, erweiterbar (die rote LED kann z.B. auch nach einem Tag andauernder Störung zu blinken anfangen), kostengünstig, unproblematisch, usw. Klar ist, dass man es auch anders lösen kann. Nach einer kurzen Recherche kosten die benötigten ICs mit NAND-Gattern um die 80 Cent, dazu noch ein paar Dioden für die Spannungsversorgung. Da ist die Microcontroller-Lösung natürlich darüber, hauptsächlich wegen der benötigten Spannungsversorgung, wenngleich nicht extrem darüber, wenn man sich nicht allzu dumm anstellt.

Enrico E. schrieb:

Durch antiparallel geschaltete LEDs

So mache ich die Signalisierung hier im Haus auch, genauso. Als Versorgung einfach 8V AC aus dem Klingeltrafor - fertig - läuft seit knapp neun Jahren ohne Ausfall.

Im Gegensatz zu einer wie von mir vorgeschlagenen Microcontroller-Lösung lässt sich ein 8V-AC-Klingeltrafo nebst entsprechender Ansteuerung nicht einfach so unproblematisch an das bestehende System anflanschen, deine Lösung ist also nicht zielführend.

#7825261
Lesenswert?

F. schrieb:

Warum nicht?

Weil man das alles dafür nicht braucht. Aber ja, man kann auch über Italien nach Dänemark fahren, keine Frage.

F. schrieb:

Im Gegensatz zu einer wie von mir vorgeschlagenen Microcontroller-Lösung

mit K! siehe auch Namen dieser Site! Du vergeleichst Äpfel mit Birnen. Ich habe an der Stelle keinen Lösungsvorschlag gemacht, sondern ein komplett anders aufgebauten Ansatz untermauert...

#7825292
Lesenswert?

Dennis S. schrieb:

F. schrieb:

Warum nicht?

Weil man das alles dafür nicht braucht. Aber ja, man kann auch über Italien nach Dänemark fahren, keine Frage.

Die Antwort ist kurios. Ein Microcontroller ist verfügbar, kostengünstig und flexibel. Viele der Funktionen verbleiben natürlich in dieser Anwendung ungenutzt, allerdings ist das keine Schande. Bei der Lösung mit 6 NAND-Gattern bleiben auch zwei Stück übrig. Ist halt so, in den ICs sind immer 4 Stück drin. Die Zuleitung zu den LEDs hat sicher auch einen deutlich höheren Leiterquerschnitt als unbedingt notwendig, alles Verschwendung! Die Microcontroller-Lösung ist extrem schnell entwickelt, wenn man sich auch nur minimalst auskennt, viel schneller als die anderen Lösungen. Sie ist relativ zuverlässig und ohne großen Test einfach direkt in der endgültigen Konfiguration aufbaubar, weil moderne Microcontroller weitgehend unproblematisch in der Beschaltung sind. Daher ist eine Lösung mit MCU eine gute Lösung, da sie mit moderaten Kosten und wenig Entwicklungsaufwand auskommt.

F. schrieb:

Im Gegensatz zu einer wie von mir vorgeschlagenen Microcontroller-Lösung

mit K! siehe auch Namen dieser Site!

Mikrokontroller? Die Seite darf sich gern schreiben, wie sie will. Microcontroller als englisches Wort schreibt sich mit zwei c.

Du vergeleichst Äpfel mit Birnen.

Nö.

Ich habe an der Stelle keinen Lösungsvorschlag gemacht, sondern ein komplett anders aufgebauten Ansatz untermauert...

Ich schreib hier ja auch nicht, wie ich irgendwas irgendwie gelöst habe, sondern nur Dinge, die dem initialen Problem angemessen sind. Diese intellektuelle Mindestleistung kann man eigentlich auch von anderen Leuten erwarten, warum schreibst du also eine Lösung für ein anderes Problem, die sich nicht übertragen lässt und auch nichts zur Lösung des hiesigen Problems beiträgt, in diesen Thread?

#7825300
Lesenswert?

F. schrieb:

Bei der Lösung mit 6 NAND-Gattern bleiben auch zwei Stück übrig. Ist halt so, in den ICs sind immer 4 Stück drin.

Es geht exakt mit 2x CD4093 (8 Gatter) auf.

Das nützt aber alles nichts, weil die Versorgungsspannung nicht mit übertragen wird und selbst wenn die Schaltung im Heizungskeller ist und nur die Signalleitungen ins Wohnzimmer gelegt werden, dann benötigt man trotzdem vier Leitungen drei für die LEDs und eine GND-Leitung.

Angehängte Dateien:
(Firma: Chipwerkstatt) #7825302
Lesenswert?

Ich werfe mal meine Schaltung hier rein. Ich denke, dass die von den Logig-Pegeln her 'sauber' ist. Die Ausgang-Treiber könnte man je anpassen. Ein Beispiel mit einem NPN habe ich mal dazu. Wobei, wenn der TO einen Signalturm verwendet, müsste man 'High-Side' Switching machen, da hier eine gemeinsame Masse ist. Das ist aber auch nicht das Problem.

Funktionieren tut mein Teil.

Angehängte Dateien:
OP #7825347
Lesenswert?

Thomas S. schrieb:

müsste man 'High-Side' Switching machen, da hier eine gemeinsame Masse ist. Das ist aber auch nicht das Problem.

Doch genau das war mein ursprüngliches Problem!

Für die vielen Ideen die zusammengekommen sind, danke ich vielmals!

Als TO habe ich in diesem Thread gemerkt, dass es doch nicht so einfach ist, ALLE wichtigen Angaben zu liefern. Ich wollte wirklich keine Salamitaktik veranstalten, mich nervt das ja selber bei Anderen! Aber man ist so drinn im Projekt, alles scheint klar zu sein.

In diesem Fall hätte ich aber wirklich keine anderen Vorschläge gebraucht, sondern wirklich nur das Ursprungsproblem gelöst. Aber hier drehen Einige durch, wenn ich jetzt noch sage: ja, ich hätte ein drittes Relais und ein vieradriges Kabel nehmen können, und ja, ich habe die Lampen die schlussendlich reinkommen selber entworfen mit RGB-LEDs und Common-Minus gewählt, dass es universell ist, und ja, ich habe einen 12V-I2C-Bus an den ich noch einen PCF8574A hätte anschliessen können (oder einen uC, gell F.).

Gruss Chregu

#7825361
Lesenswert?

Christian M. schrieb:

Mit 47k beim NPN bzw. 15k beim PNP zwischen B-E hat sich das Problem entschärft.

Mit zwei 10k Widerständen nimmt die Empfindlichkeit noch weiter ab, ohne dass die Funktion beeinträchtigt wird.

Christian M. schrieb:

In diesem Fall hätte ich aber wirklich keine anderen Vorschläge gebraucht, sondern wirklich nur das Ursprungsproblem gelöst.

Bedeutet das, dass deine Schaltung nach der Überarbeitung jetzt so aussieht (47k und 15k)?

Angehängte Dateien:
#7825379
Lesenswert?

F. schrieb:

Nö.

Da diskutiert man sich ja einen Wolf mit dir, dazu ist mir die Zeit zu schade.

Christian M. schrieb:

Ich wollte wirklich keine Salamitaktik veranstalten

Aber während du das schreibst, machst du das ja immer noch. Bis jetzt gab es glaube ich keine Angaben dazu wie belastbar die 12V Steuersignale sind (aber Rückfragen dazu), was diese LEDs genau für einen Strom aufnehmen usw... Du hast auch nicht nachgelegt und weitere klare Infos gegeben, ob und was genau drum herum ist - selbst jetzt immer noch nicht.

Christian M. schrieb:

In diesem Fall hätte ich aber wirklich keine anderen Vorschläge gebraucht, sondern wirklich nur das Ursprungsproblem gelöst

Du hast ja selbst zwischendurch immer noch mehr Varianten eingeworfen...da zu erwarten dass andere das nicht machen, ist doch ...!?

Michael B. schrieb:

Die erst mal eine Betriebsspannung bekommen müsste.

https://www.mikrocontroller.net/attachment/660435/20250207_154245.jpg

Ist halt nur eine "logische" Lösung, die meisten vergessen dabei dass das Zeug auch noch dauerhaft bestromt werden möchte...genau wie auch "Mister MiCrocontroller"... Ebenso wie auch den Umgang mit offenen Gattereingängen, wenn es 12V oder eben offen und nicht zu GND ist... Das ganze hat leider nur sehr wenig mit einer wirklichen "Lösung" zu tun...aber hier redet man sich ja den Mund fusselig... :-)

OP #7826753
Lesenswert?

https://www.mikrocontroller.net/attachment/660449/IMG_20250207_193932.jpg

funktioniert auch! Code in Oshonsoft-Basic:

1
Define CONFIG = 0x31c4
2

3
AllDigital
4

5
ConfigPin GP0 = Output  'rot
6
ConfigPin GP1 = Output  'orange
7
ConfigPin GP2 = Output  'grün
8

9
ConfigPin GP4 = Input  'grün
10
ConfigPin GP5 = Input  'orange
11

12
GP0 = 1
13
GP1 = 1
14
GP2 = 1
15

16
loop:
17
  If GP4 = 1 And GP5 = 1 Then
18
    GP0 = 0
19
    GP1 = 1
20
    GP2 = 1
21
  Else
22
    If GP4 Then
23
      GP0 = 1
24
      GP1 = 1
25
      GP2 = 0
26
    Else
27
      If GP5 Then
28
        GP0 = 1
29
        GP1 = 0
30
        GP2 = 1
31
      Endif
32
    Endif
33
  Endif
34
Goto loop
35

36
End

Gruss Chregu

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren