Liebes Forum, ich suche nach einer einfachen (kleinen, leicht umzusetzenden Lösung) um 3 Taster über 2 Inputs erfassen zu können. Hintergrund: - An einem ESP8266 (H801 Dimmer) habe ich 2 Inputs mit aktivierten PULL-UPs, also schalten die Taster gegen GND. - Die Auswertung mache ich über OneButton (https://github.com/mathertel/OneButton). - 2 Taster sind angeschlossen und funktionieren. Über gleichzeitige Betätigung könnte ein weiterer Schalter/Taster erkannt werden. Muss hier über Diodenlogik (https://de.wikibooks.org/wiki/Digitale_Schaltungstechnik/_Logikfamilien/_Innenleben/_DDL) gearbeitet werden? Falls ja, wie? Für weitere Ideen und Vorschläge bin ich dankbar! Grüße Sascha
Sascha K. schrieb: > Muss hier über Diodenlogik gearbeitet werden? Falls ja, wie? So, dass der eine zusätzliche Taster beide EIngänge auf GND zieht.
1 | |
2 | |
3 | in1 -------o-------->|------. |
4 | | | |
5 | | | |
6 | | | |
7 | in2 -------+-----o-->|------o |
8 | | | | |
9 | | | | |
10 | T1 T2 T3 |
11 | | | | |
12 | | | | |
13 | GND -------o-----o----------' |
Mehrfachbetätigung kannst du natürlich nicht mehr erkennen, denn T1+T2 = T3.
Sascha K. schrieb: > 2 Taster sind angeschlossen und funktionieren. > > Über gleichzeitige Betätigung könnte ein weiterer Schalter/Taster > erkannt werden. Muss hier über Diodenlogik > (https://de.wikibooks.org/wiki/Digitale_Schaltungstechnik/_Logikfamilien/_Innenleben/_DDL) > gearbeitet werden? Falls ja, wie? Klar funktioniert es mit zwei Taster. Du hast ja auch zwei Inputs. Die beiden Taster dürfen sicher beliebig betätigt werden. Also hast Du binär mir den zwei Inputs schon alles ausgeschöpft. Mit einer Diodenlogig und einen AD - Input könnte man das Problem lösen indem man die Spannungen 2 - 4 - 8 erzeugt. mfg klaus
:
Bearbeitet durch User
also wenn es NICHT unbedingt mit Interrupt pins gelöst werden muss, KÖNNTE man es auch mit EINEN analogen pin und Widerständen lösen. Der ESP Arbeitet ja mit 3,3 Volt so weit ich weiß. Gesetzt die Spannung ist stabil was ich mal voraussetze (kein Akku betrieb) Heist das also man könnte locker 4 oder mehr Taster abfragen. Ein Taster zieht meinetwegen den pin auf 2,5-2,8 Volt runter. Ein 2ter zieht auf zb 1,8-2 Volt runter. ein 3ter auf 1 Volt ein 4ter zb auf 0,5 oder Gnd. jetzt musst du nur abfragen wie hoch die Spannung ist und erhältst Rückschlüsse auf die Taster? Und da man keinen Interrupt nutzt entfehlt das entprellen der Taster. wenn du ein sehr kleines Programm nutzen solltes reicht zb ein delay von 10-50ms zum entprellen oft aus.
DAVID B. schrieb: > Gesetzt die Spannung ist stabil Nö, die VCC kürzt sich raus. Sie muß nur für die aktuelle Messung stabil sein. DAVID B. schrieb: > Und da man keinen Interrupt nutzt entfehlt das entprellen der Taster. Natürlich muß man auch die Tasten am ADC entprellen. Hier mal ein Beispiel: Beitrag "Tastenmatrix auslesen über nur 2 Leitungen"
DAVID B. schrieb: > Ein Taster zieht meinetwegen den pin auf 2,5-2,8 Volt runter. > Ein 2ter zieht auf zb 1,8-2 Volt runter. > ein 3ter auf 1 Volt > ein 4ter zb auf 0,5 oder Gnd. Wenn man diese Überlegung zu Ende denkt, gelangt man zu einem R2R-Netzwerk, mit dem man alle 4 Taster unabhängig einlesen könnte. Das wären 16 Spannungslevel, die sich i.d.R. perfekt und störsicher mit nur einem Wandler trennen lassen. Aufgebaut habe ich das schon mit 8 Tastern. Allerdings muss man dann mit den Widerständen schon etwas aufpassen. Es empfiehlt sich dann eine leicht logarithmische Einteilung der Spannungslevel, um solche Codes wie 0010.0000 von 0001.1111 sicher zu unterscheiden. Wenn kein Wandler zur Verfügung steht, muss man mit einem Ausgang und einem Eingang einen Dual-Slope oder mini Delta-Sigma bauen: Analog-IO mit digitalen Bausteinen Erweiterung von digitalen IO-Ports
:
Bearbeitet durch User
Peter D. schrieb: > Nö, die VCC kürzt sich raus. Das bezweifle ich, da der ESP8266 nicht VCC sondern eine interne Referenzquelle mit 1V verwendet. Den anapogen Eingang würde ich aber sowieso nicht verwenden, denn er lässt sich zu stark durch die internen HF Schaltkreise stören. Laut Datenblatt sind bis zu 20% Abweichung vom richtigen Messwert zu erwarten. Ganz so schlimm hatte ich es zwar noch nicht, aber 10% Abweichung ist mir auch schon unterkommen - gleich beim ersten Versuch. Seit dem nutze ich den intenren ADC nicht. Der taugt ja nichtmal als Schätzeisen.
Sascha K. schrieb: > Für weitere Ideen und Vorschläge bin ich dankbar! Schieberegister parallel zu seriell, z.B. 74HC165 http://www.ti.com/lit/ds/symlink/sn74hc165.pdf
Stefanus F. schrieb: > Laut Datenblatt sind bis zu 20% Abweichung ... Wo steht das denn? Ich habe mir jetzt interessehalber aus dem Internet mehrere Versionen des Datenblatts heruntergeladen, finde aber keine Angabe.
Dieter R. schrieb: >> Laut Datenblatt sind bis zu 20% Abweichung ... > Wo steht das denn? Auf jeden Fall gut versteckt. In einer frühen chinesischen Version des Datenblattes war das eine winzig kleine Fußnote unter einer Tabelle mit elektrischen Daten.
Stefanus F. schrieb: > Dieter R. schrieb: >>> Laut Datenblatt sind bis zu 20% Abweichung ... >> Wo steht das denn? > > Auf jeden Fall gut versteckt. In einer frühen chinesischen Version des > Datenblattes war das eine winzig kleine Fußnote unter einer Tabelle mit > elektrischen Daten. Da steht was über den zulässigen Restfehler der RF calibration. Ich glaube nicht, das man daraus schließen kann, welche Toleranz der ADC hat. Ich selbst habe mich mit dem Prozessor noch nicht beschäftigt, aber die im Internet berichteten Fehler sind 1. teilweise gar nicht so groß (die letzten beiden Bits schwanken, also 8 Bit effektive Genauigkeit), 2. hängt es offenbar von Aufbau und HF-Einstrahlung ab und 3. kann man das mit intelligenter Auswertung wohl auch noch aussortieren. Für den Zweck hier (3 Tasten!) könnte es durchaus reichen. Man müsste wohl ein sauberes Layout machen und es dann probieren. Für ein einmaliges Hobbyprojekt könnte der Evaluierungsaufwand zu groß sein, für Serienentwicklung wäre das ein Thema, um Schaltungsaufwand zu sparen.
:
Bearbeitet durch User
Dieter R. schrieb: > Da steht was über den zulässigen Restfehler der RF calibration. Ich > glaube nicht, das man daraus schließen kann, welche Toleranz der ADC > hat. Es passt aber zu mehrfach gemeldeten Beobachtungen und in einem früheren Datenblatt war der Satz noch etwas deutlicher formuliert. > die letzten beiden Bits schwanken Es gibt da noch eine beträchtliche Nicht-Linearität und nahe Null Volt haben mehrere Leute einen erheblichen Offset gemeldet. Siehe auch Beitrag "ESP8266 (Wemos D1) Analogwert schwankt stark" Beitrag "8266-12E ADC Kalibrieren?" https://github.com/esp8266/Arduino/issues/2070 Wenn du die WLAN Schnittstelle aus schaltest, liefert der ADC stabilere Werte.
Achtung, der ESP8266 hat zwar einen ADC, welcher aber zumindest im WiFi-AP-Modus zur Signalstaerkenmessung verwendet wird. Hat mich mal einen halben Nachmittag gekostet, zu debuggen, warum das WLAN unregelmaessig wegfliegt, wenn man den ADC beschaltet und ausliest (ggf. hardwarespezifisch, hier NodeMCU).
kein Gast schrieb: > Achtung, der ESP8266 hat zwar einen ADC, welcher aber zumindest im > WiFi-AP-Modus zur Signalstaerkenmessung verwendet wird. Hat mich mal > einen halben Nachmittag gekostet, zu debuggen, warum das WLAN > unregelmaessig wegfliegt, wenn man den ADC beschaltet und ausliest (ggf. > hardwarespezifisch, hier NodeMCU). Ich habe dazu mal irgendwo gelesen, dass man ihn nicht ununterbrochen benutzen darf. Mit genug Pausen dazwischen läuft es angeblich "stabil".
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.