Forum: Mikrocontroller und Digitale Elektronik LedMitMehrerenSchaltern


von mikrocontroller_controller (Gast)


Lesenswert?

Hallo,
ich möchte eine led mit mehreren unabhängig voneinander funktionierenden 
Schaltern schalten, d.h. jeder Schalter kann ein und jeder kann 
ausschalten. es sind Schalter keine taster. kann mir jemand Hilfe geben, 
welche grundlegende Struktur ich dafür nehmen sollte (d.h. if oder 
switch oder so)?
Danke

von c-hater (Gast)


Lesenswert?

mikrocontroller_controller schrieb:

> ich möchte eine led mit mehreren unabhängig voneinander funktionierenden
> Schaltern schalten, d.h. jeder Schalter kann ein und jeder kann
> ausschalten. es sind Schalter keine taster. kann mir jemand Hilfe geben,
> welche grundlegende Struktur ich dafür nehmen sollte (d.h. if oder
> switch oder so)?

If natürlich.

Der Trick ist, zwei Stati zu vergleichen, den letzten bekannten und den 
aktuellen, wobei sich jeder Status aus den Einzelstati aller Schalter 
zusammensetzt. Wenn sich irgendwas am Status geändert hat: LED toggeln 
und aktuellen Status als "letzten bekannten" merken. Das immer 
wiederholen.

Falls es sich bei den Schaltern um gewöhnliche mechanische Schalter 
handelt: Entprellen nicht vergessen, sonst kommt Müll raus.

von dete (Gast)


Lesenswert?

Mehrere schalter machen das leben Schwirig. Wenn es umschalter sind 
könntest du immerhin noch eine Wechselschaltung machen. Ansonsten 
Schalter raus Taster rein und ein Stromstossrelais.

Wenn du umbedingt deine Schalter behalten willst würde ich sagen 
Optokoppler -> µC -> Relais -> Led

Wenns wirklich nur eine kleine led ist kannste das Relais sparen.

von Floh (Gast)


Lesenswert?

Also jeder Schalter kann die LED ein oder ausschalten, egal welche 
Stellung grade aktiv ist?

Dann würde ich die LED umschalten, sobald eine Änderung irgendeines 
Schalters erkannt wurde:

Pseudo-Code:

Zyklisch:

state = Schalter1 + Schalter2 + ... ; //Jeder Schalter hat eine 
Bitstelle von state
if(state != state_alt)
  toggle_LED;

state_alt = state;

Zyklisch_ende;

von npn (Gast)


Lesenswert?

dete schrieb:
> Mehrere schalter machen das leben Schwirig. Wenn es umschalter sind
> könntest du immerhin noch eine Wechselschaltung machen. Ansonsten
> Schalter raus Taster rein und ein Stromstossrelais.

Es ist dir bestimmt nicht aufgefallen, aber es geht um Mikrocontroller.
Abgesehen davon kann man in der Elektroinstallation mit der 
Wechselschaltung lediglich 2 Schalter verwenden und nicht mehrere. Dazu 
braucht man dann die Kreuzschaltung.
Aber wie gesagt, hier geht es um Mikrocontroller.

von Rolf Magnus (Gast)


Lesenswert?

Einfach alle Schalterstellungen miteinander xor-verknüpfen und das 
Ergebnis an die LED schicken.

von Ützelbrützel (Gast)


Lesenswert?

npn schrieb:
> Abgesehen davon kann man in der Elektroinstallation mit der
> Wechselschaltung lediglich 2 Schalter verwenden und nicht mehrere.

Dafür gobt es dann auch die Kreuzschaltung.

von npn (Gast)


Lesenswert?

Ützelbrützel schrieb:
> npn schrieb:
>> Abgesehen davon kann man in der Elektroinstallation mit der
>> Wechselschaltung lediglich 2 Schalter verwenden und nicht mehrere.
>
> Dafür gobt es dann auch die Kreuzschaltung.

Ich zitiere mal vollständig. Fällt dir was auf? :-)
npn schrieb:
> Abgesehen davon kann man in der Elektroinstallation mit der
> Wechselschaltung lediglich 2 Schalter verwenden und nicht mehrere. Dazu
> braucht man dann die Kreuzschaltung.

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Z.B. mit ATtiny13:
1
#include <sbit.h>
2
3
int main()
4
{
5
  DDR_B0 = 1;
6
  PORT_B1 = 1; // Pullup ein
7
  PORT_B2 = 1; // Pullup ein
8
  PORT_B3 = 1; // Pullup ein
9
  PORT_B4 = 1; // Pullup ein
10
  for(;;)
11
    PORT_B0 = PIN_B1 ^ PIN_B2 ^ PIN_B3 ^ PIN_B4;
12
}

: Bearbeitet durch User
von Harald W. (wilhelms)


Lesenswert?

dete schrieb:

> Wenn es umschalter sind
> könntest du immerhin noch eine Wechselschaltung machen.

Die meisten Wechselschalter haben beim Umschalten einen
kurzen Zwischenstatus, bei dem keiner der beiden Kontakte
geschlossen ist. Schaltet man beide Kontakte parallel und
alle Schalter in Reihe, so hat man normalerweise Dauer-
durchgang. Nur im Augenblick des Schaltens gibts eine kurze
Unterbrechung. Diese Unterbrechung kann man detektieren und
zum Ein- oder Ausschalten der LEDs benutzen.
Gruss
Harald

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.