Hallo zusammen!
Ich möchte ein älteres Gebastel mit 3 Tastern mit LED wiederverwenden, habe jedoch nur noch 3 Leitungen frei.
Meine Überlegung ist nun, jeweils einen Taster incl. LED an einem Pin zu verwenden, indem ich den Pin in loop() zwischen INPUT und OUTPUT umschalte, damit ich im INPUT-Modus den Taster abfragen und im OUTPUT-Modus die LED leuchten lassen kann.
Wenn loop() 200 mal pro Sekunde durchläuft, kann ich die LED mit flimmerfreien 100 Hz leuchten lassen und in jedem zweiten Durchlauf den Taster abfragen.
Was haltet Ihr von dieser Idee? IMO sollte das funktionieren - oder nicht?
TIA
Gregor
gregorss:
...
Wenn loop() 200 mal pro Sekunde durchläuft, kann ich die LED mit flimmerfreien 100 Hz leuchten lassen und in jedem zweiten Durchlauf den Taster abfragen.
Und du drückst so schnell den Taster, ohne dass der Pin als Ausgang einen Kurzschluss mitbekommt.
Aller Achtung.....
HotSystems:
Und du drückst so schnell den Taster, ohne dass der Pin als Ausgang einen Kurzschluss mitbekommt.
Naja, wenn der Taster mit einem 220 Ohm-Widerstand in Serie geschaltet wäre, würden lediglich 20 mA fließen. So ein Strömchen hat noch keinem Pin geschadet.
Gruß
Gregor
gregorss:
Naja, wenn der Taster mit einem 220 Ohm-Widerstand in Serie geschaltet wäre, würden lediglich 20 mA fließen. So ein Strömchen hat noch keinem Pin geschadet.
Mag sein, dass es funktioniert. Aber ehrlich, ich bin für solchen "Bastelkram" nicht zu haben.
Da baue ich lieber einen I2C Portexpander ein.
Das andere wäre mir zu unsicher.
Aber eine Idee wäre, wenn einer davon ein analoger Pin ist, könntest du eine analoge Abfrage der Taster aufbauen und die 2 Ausgänge Binär verknüpfen.
HotSystems:
Da baue ich lieber einen I2C Portexpander ein.
Dazu müsste ich A4 und A5 frei machen. Hm ...
HotSystems:
Aber eine Idee wäre, wenn einer davon ein analoger Pin ist, könntest du eine analoge Abfrage der Taster aufbauen und die 2 Ausgänge Binär verknüpfen.
Oh, prima. Danke für die Idee!
Gruß
Gregor
gregorss:
Dazu müsste ich A4 und A5 frei machen. Hm ...
Oh, prima. Danke für die Idee!
Zeigt sich immer wieder, man muss offen über seine Probleme reden. 
Wenn es nicht stört, dass die LED an geht, wenn der Taster betätigt wird, könnte ich mir eine Schaltung vorstellen.
michael_x:
Wenn es nicht stört, dass die LED an geht, wenn der Taster betätigt wird, könnte ich mir eine Schaltung vorstellen.
Ich dachte an:
Wieso sollte da die LED angehen, wenn der Taster gedrückt wird?
Gruß
Gregor
Ich würde den Taster wie sonst auch von Pin auf Masse schalten lassen.
Die Led kommt dann zwischen 5V und Pin über einen Widerstand.
Dadurch leuchtet die Led beim Tastendruck auf, aber hey its no a bug - its a feature!
So hättest du nicht die sache mit dem "Kurzschluss" über den 2xx Ohm Widerstand.
Code z.B. so:
pinMode(pin, INPUT_PULLUP);
tasterstatus = !digitalRead(Pin);
pinMode(pin, OUTPUT),
digitalWrite(pin, !ledStatus);
gregorss:
Wieso sollte da die LED angehen, wenn der Taster gedrückt wird?
Die Led geht da zwar nicht an aber der Arduino merkt auch nichts davon wenn der Taster gedrückt wird. Wenn der Pin auf Input steht, zieht die Led den Pin bereits soweit nach Gnd, dass immer Low erkannt wird.
Verzweifler:
So hättest du nicht die sache mit dem "Kurzschluss" über den 2xx Ohm Widerstand.
Dafür hast Du einen satten Kurzschluss nach Gnd.
Das würde nur bei einem Prozessor funktionieren bei dem die Ausgänge auf 'Open Drain' geschaltet werden können.
MicroBahner:
Dafür hast Du einen satten Kurzschluss nach Gnd.
Das würde nur bei einem Prozessor funktionieren bei dem die Ausgänge auf 'Open Drain' geschaltet werden können.
Auweia, hab garnicht drangedacht, was beim Tastendruck mit Abgeschaltener LED passiert...
Daher neuer Code:
//Lesen:
pinMode(pin, INPUT_PULLUP);
tasterStatus = !digitalRead(pin);
//Led:
if(ledStatus) { //An
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
}
else { //Aus
pinMode(pin, INPUT_PULLUP); //Kann man sich sparen
}
Nun kann der Arduino seinen Pin nur noch auf LOW ziehen.
MicroBahner:
Die Led geht da zwar nicht an aber der Arduino merkt auch nichts davon wenn der Taster gedrückt wird. Wenn der Pin auf Input steht, zieht die Led den Pin bereits soweit nach Gnd, dass immer Low erkannt wird.
Uh, ja ... das mit dem Wald und den Bäumen ...
Naja, das Gebastel, das ich wiederverwenden möchte, hat zwar die LEDs, aber die muss ich ja nicht benutzen. Wirklich wichtig sind die Taster.
Gruß
Gregor