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
Wo ist da das Problem? Eine Dual LED mit 2 Eingängen Rot und Grün. Eine an Rot Andere an Grün Beide an Orange. Fertig ist das ganze https://www.reichelt.de/de/de/shop/produkt/led_5mm_bedrahtet_3-pin_rot_gruen_2900_3500_mcd_35_-362011
:
Bearbeitet durch User
Christian M. schrieb: > Gibt's eine Standardschaltung für diese Aufgabe, oder was kann ich > verbessern? ... (https://praktische-elektronik.dr-k.de/Praktikum/Analog/DiodenTransistoren/Le-Gatter-mit-Transistoren-und-Dioden.html)
:
Bearbeitet durch User
Das wird ein Signal mit 3 DIY-LED-Lampen, nix mit Duo-LED, sonst ja! Und die rote LED muss AND verknüpft werden. Die beiden Anderen Y=A^-B bzw. Y=-A^B. Also ich bin schon offen für kreative Vorschläge, aber die 3 LED-Lampen sind gegeben! Gruss Chregu
Mit TTL Logig (5V), oder C-Mos (12-15V kein Problem. 1 aus N -Gatter. Goooogel ist Dein Freund.
Vor die Basis des PNP-Transistors noch einen Widerstand auf +, damit selbiger sicher sperrt, dann sollte die rote Lampe nicht mehr flackern.
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.
Du könntest Schaltung 1 auch noch reduzieren. Indem der Transistor einfach die LED kurzschließt. Und noch eine andere Frage. Die beiden Leitungen haben immer ein plus oder minus Potential oder gibt es nur Plus oder Offen?
:
Bearbeitet durch User
Hi, mach mal eine Wahrheitstabelle: Signal A Signal B GN = grün OK OR = orange (Nachlegen) RT = rot (Störung) A B GN OR RT 0 0 aus aus aus 1 0 an aus aus 0 1 aus an aus 1 1 aus?aus?an Irgendwie ist deine Relaisschaltung verwirrend bezüglich rot https://www.mikrocontroller.net/attachment/660298/Schaltung0.png Deswegen diese Frage Gruß
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
Wenn die Steuerleitungen im ausgeschalteten Zustand auf Masse gelegt werden, kannst du die LED's mit Vorwiderstand direkt zwischen beide Steuerleitungen hängen. Die grüne LED sorum, und die orange LED andersrum. Dann brauchst du nur für die rote LED ein AND-Gatter.
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
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.
Hier noch ein Vorschlag mit MOSFETs. Die LEDs würde ich nicht so heizen, 1k Vorwiderstand sollte bei 12V hell genug sein.
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----+ |
die Schaltung ist für 2 Ausgänge und +. für 2 Ausgänge und Masse musst du die Dioden umdrehen. das Problem gab es schonmal Beitrag "Zu wenige Pins"
:
Bearbeitet durch User
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ß
:
Bearbeitet durch User
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...
:
Bearbeitet durch User
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------ |
An das Signal für eine Duo-LED, also (plus | minus | 100Hz), kann man auch 3 LEDs dran hängen. Man braucht auch nur 2 Leitungen. Wenn man 2.4kHz statt 100Hz erzeugt, kann man damit auch einen Buzzer betreiben. Hier kann man sich auch aussuchen, ob der bei gelb oder rot Krach schlagen soll.
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.
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?
F. schrieb: > Du hast drei Leitungen. > 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. Hmm, in der Überschrift lese ich 2 Leitungen. Wo nimmst Du die dritte her?
Harald W. schrieb: > Wo nimmst Du die dritte her? Aus dem ersten posting: Christian M. schrieb: > 2 Adern plus Minus mit "Minus" ist GND gemeint. Also insgesamt drei Adern/Leiter, wie auch in den mitgelieferten Bildern ersichtlich.
Harald W. schrieb: > Hmm, in der Überschrift lese ich 2 Leitungen. Gemeint sind offensichtlich Steuerleitungen. > Wo nimmst Du die dritte her? 1) Aus dem Bild 2) Aus den Schaltplänen 3) Aus den Beiträgen
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
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: > 2) Aus den Schaltplänen Ja, sieht man dort ja eindeutig...
:
Bearbeitet durch User
Lothar M. schrieb: > Zeig das mal Es wird auf SENDERSEITE das passende Signal aufbereitet, dann 2 Adern zur LED. Je nach dem Duo-LED mit Wechselspannung ansteuern, oder unterschiedliche Spannungshöhe.
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
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.
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
Danke. Und wo liegt das eigentliche Problem? Stellung Störung erkennen und an nur eine LED ausgeben? ciao gustav
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
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.
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ß
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.
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
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.
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
Hallo, Karl B. schrieb: > Die Architektur der µPs erlaubt mehr. Also Statusregister, Speicherbit, > Half-carrybit. Bei Verwendung einer Hochsprache hast du mit all dem nichts zu tun. rhf
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
:
Bearbeitet durch User
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.
Günter L. schrieb: > So können sogar 4 LED-Signale über zwei Leitungen > übertragen werden. Durch antiparallel geschaltete LEDs entfallen sogar noch die Schutzdioden. Aber Christian wollte ja, dass alle LEDs mit ihrer Kathode an GND geschaltet werden.
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.
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"
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.
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...
:
Bearbeitet durch User
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 verg*e*leichst Ä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?
F. schrieb: > Modern ist eine softwarebasierte Lösung. Ja, aber dafür muss man erst einmal programmieren können. Hier eine klassische TTL-basierte Lösung.
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.
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.
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
Enrico E. schrieb: > Hier eine klassische TTL-basierte Lösung. Die erst mal eine Betriebsspannung bekommen müsste.
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)?
Enrico E. schrieb: > Bedeutet das, dass deine Schaltung nach der Überarbeitung jetzt so > aussieht (47k und 15k)? Genau. Und läuft jetzt so im Feld. Gruss Chregu
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... :-)
:
Bearbeitet durch User
Dennis S. schrieb: > keine Angaben dazu wie belastbar die 12V Steuersignale > sind (aber Rückfragen dazu) Nein. Dennis S. schrieb: > was diese LEDs genau für einen Strom > aufnehmen Nein. Dennis S. schrieb: > usw... Nein. Dennis S. schrieb: > Du hast auch nicht nachgelegt und weitere klare Infos gegeben, ob und > was genau drum herum ist Nein. Gruss Chregu
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
Hallo! Warum können nicht ganz einfach die zwei Relais über Spannungsteiler eine Steuerspannung (-strom) bereitstellen und für die Anzeige sowas wie den LM3914? Da könnten sogar 10 verschiedene Zustände mit ganz wenig Hardwareaufwand angezeigt werden!
Route_66 H. schrieb: > und für die Anzeige sowas wie den LM3914? Der kommt ohne Versorgungsspannung aus oder wie meinst du wird es leuchten ? Zudem taugt er nicht für LED mit gemeinsamer Kathode.
Hallo Laberkopp (Name ist sehr präzise gewählt)! Laut Schaltplan sind drei Leitungen vorhanden. Es geht um 3 einzelne LEDs in Form einer Ampel (siehe Bild vom06.02.25) https://www.mikrocontroller.net/attachment/660301/WhatsApp_Image_2025-02-03_at_11.01.26.jpeg Da ist es egal, ob gemeinsame Anschlüsse vorhanden oder notwendig sind! Labere nur weiterhin Mist.
:
Bearbeitet durch User
Christian M. schrieb: > Das grosse Signal ist jetzt montiert! Kannst du die Farben noch tauschen? So wie jetzt ist es eine komische Ampel... mfg mf
Ist ja auch keine Ampel, ich schrieb immer "Signal"! ;-) Nach schweizer Vorbild: https://de.m.wikipedia.org/wiki/Signalsystem_L Obwohl ich die Wikipedia inzwischen meide wegen Zensur und Propaganda. Gruss Chregu
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.