Hallo Forum, ich möchte mehrere TTP223-Touchbuttons an einen Mikrocontroller anschließen und dabei so wenig Anschlüsse verbrauchen, wie möglich. Die beste Idee dafür ist die Nutzung eines langen Spannungsteilers, der an Analog-In angeschlossen wird. Jeder Button erzeugt dann eine andere Spannung am Pin, die vom Programm gemessen werden kann. Nun mein Problem: Der Ausgang der Touchbuttons ist aus irgendeinem Grund auch ein Eingang. Die Beschriftung "I/O" hätte mich stutzig machgen sollen. Jedenfalls leuchten auch die LEDs der benachbarten Touch-Buttons auf, wenn ich einen Touchbutton aktiviere. Nun habe ich hinter jeden I/O-Ausgang Dioden eingelötet. Doch ihr Widerstand ist mit jeweils knapp 450 Ohm höher als alle Widerstände des Spannungsteilers zusammen. Am Pin messe ich bei jedem Touchbutton in etwa die gleiche Spannung von 0,6 - 0,7 V. Zudem verhalten sich Dioden-Widerstände bekanntermaßen nicht linear. Morgen kann der Wert bei schlechtem Wetter also auch wieder ein völlig anderer sein. Immerhin leuchtet beim Durchprobieren jetzt immer nur ein Touchbutton auf. Hat jemand eine Idee, wie ich mein vorhaben möglichst elegant realisiert bekomme? Ich dachte zunächst an einen Multiplexer-Chip. Doch der benötigt ebenfalls 4 Pins (drei für die Adress-Bits und einen für das eigentliche Signal). Im Anhang ein Bild des fraglichen Touchbuttons und eine Skizze meines Aufbaus. Im Fritzing gibt's nicht alle Teile, deshalb sehen die Touchbuttons anders aus.
Falsches Produkt gewählt. Nimm so einen Chip: https://www.microchip.com/wwwproducts/en/CAP1298 Damit kannst Du 8 Buttons per I2C abfragen. Mit einem I2C-Multiplexer wie PCA9547 könntest Du auch noch viel mehr abfragen. fchk
Peter K. schrieb: > Die > beste Idee dafür ist die Nutzung eines langen Spannungsteilers, Wo steht das? Wer sagt das? Peter K. schrieb: > Nun habe ich hinter jeden I/O-Ausgang Dioden eingelötet Warum mehrere? Wieviele hast du denn pro Ausgang eingelötet? Schaltplan? Es lohnt sich auch mal in das Datenblatt zu schauen. https://datasheet.lcsc.com/szlcsc/TTP223-BA6_C80757.pdf Der Ausgang ist CMOS kompatibel. Also einfach mal gucken wie so ein CMOS Ausgang aufgebaut ist, das wird all deine Fragen beantworten. Gruß DS
Peter K. schrieb: > ich möchte mehrere TTP223-Touchbuttons an einen Mikrocontroller > anschließen Dafür sind die TTP223 einfach nicht gedacht. Und der µC, den du verwendest ebenfalls nicht. Wieder mal ein Fall von: denkbar ungeeignetste Gülle für die Anwendung zusammengekauft. Also, wenn man viele Touchbuttons an einen µC anschließen will, dann nimmt man am Besten einfach einen, der das erstens von Hause aus kann und zweitens genug Pins dafür hat. Die Verwendung eines solchen µC hat vor allem den Vorteil, dass die "Touchbuttons" überhaupt keine eigene Elektronik brauchen, sondern z.B. nur ein paar Stücke Metallfolie sind, die man auf einen nicht leitenden Träger aufklebt. So viel zur richtigen Lösung. Nun dazu, wie man die verkackte Lösung zum Laufen bringen kann. Im Prinzip hast du schon das Richtige getan, indem du über Dioden entkoppelt hast. Damit geht nur die "IO" Funktion verloren, d.h.: du kannst die LEDs nicht mehr per µC ansteuern, sondern sie reagieren nur noch allein auf ihren lokalen Button. Wahrscheinlich verschmerzbar. Problematischer wird sein, dass sich durch die LEDs und durch die Dioden der Spannungshub verringert, der noch beim µC ankommt. Aber auch nicht wirklich. Es muß einfach nur die Spannungsteilerkette entsprechend angepaßt werden und gut isses.
Peter K. schrieb: > ich möchte mehrere TTP223-Touchbuttons an einen Mikrocontroller > anschließen und dabei so wenig Anschlüsse verbrauchen, wie möglich. Ist eine derartige Optimierung wirklich notwendig? Der Arduino Mini Pro hat doch ausreichend Digitaleingänge für 5 Touchbuttons. Oder bedeutet 'mehrere' auch noch mehr als die gezeigten 5? > Nun mein Problem: Der Ausgang der Touchbuttons ist aus irgendeinem Grund > auch ein Eingang. Die Beschriftung "I/O" hätte mich stutzig machgen > sollen. Jedenfalls leuchten auch die LEDs der benachbarten Touch-Buttons > auf, wenn ich einen Touchbutton aktiviere. Das ist nicht wirklich als I/O gedacht. An diesem Pin hängt der Push-Pull Ausgang des TTP223, und das ist nur ein Ausgang. Du kannst diesen Ausgang natürlich durch eine externe Spannung hart überfahren, aber ob das wohl dem Chip gut tut? > Nun habe ich hinter jeden I/O-Ausgang Dioden eingelötet. Doch ihr > Widerstand ist mit jeweils knapp 450 Ohm höher als alle Widerstände des > Spannungsteilers zusammen. > Am Pin messe ich bei jedem Touchbutton in etwa die gleiche Spannung von > 0,6 - 0,7 V. > Zudem verhalten sich Dioden-Widerstände bekanntermaßen nicht linear. > Morgen kann der Wert bei schlechtem Wetter also auch wieder ein völlig > anderer sein. Immerhin leuchtet beim Durchprobieren jetzt immer nur ein > Touchbutton auf. Wenn du die Dioden wieder wegmachst, kannst du die Ausgänge der 5 Touchbuttons, ich bezeichne sie mal als S0, S1, .. S4, über abgestufte Widerstände (S0 = 1R, S1 = 2R, S2 = 4R, S3 = 8R, S4 = 16R) direkt an den ADC Eingang hängen (ohne weiteren Pull-down oder Pull-up). Je nachdem welcher Touchbutton betätigt wurde (Ausgang = High) bildet sein Ausgangswiderstand mit den parallel geschalteten Ausgangswiderständen der inaktiven Touchbuttons (Ausgang = Low) einen Spannungsteiler dessen Spannung vom ADC gemessen werden kann. Um die Ausgänge möglichst wenig zu belasten sollte R so hochohmig wie möglich sein, z.B. 10 kOhm. Die Teilerverhältnisse bzw. die resultierende Spannung darfst du dir selbst ausrechnen. Eventuell musst du auch noch Korrekturen vornehmen, da die Ausgänge je nach Belastung nicht ideal auf 0 Volt oder Vcc gehen. Man kann damit auch unterscheiden, ob mehrere Tasten bzw. welche Tasten aktiviert wurden. Funktioniert aber nur wenn die Spannungunterschiede zwischen beliebigen Kombination groß genug sind. Je mehr Tasten um so problematischer wird die Unterscheidung von beliebigen Kombinationen. Deine manuelle Taste (Kontakt nach Vcc) kannst du erkennen und auswerten, wenn du ausschließen kannst, daß alle 5 Touchbuttons gleichzeitig aktiviert werden.
@Frank K: Wow! Danke. Das Bauteil ist super. Ich denke, Deine Empfehlung ist die beste Lösung. @c-hater: Achte beim Posten bitte auf Deine Wortwahl. Ich verwende weder "verkackte Lösungen" noch "kaufe ich Gülle". Ich bin mir recht sicher, dass auch in diesem Forum die Verwendung von Fäkalbegriffen gegen die Board-Regeln verstößt. @Dennis: Die Idee mit dem langen Spannungsteiler habe ich auf mehreren Seiten im Internet gefunden. In der Regel wird sie für normale Schalter verwendet. Es ist die beste Lösung, weil man tatsächlich nur eine Leitung braucht. Das Datenblatt habe ich gesehen. Da wird vor allem der Chip beschrieben. Den I/O-Ausgang konnte ich in der Zeichnung nicht mit genauerer Beschreibung finden. Was ist denn ein CMOS-Ausgang? Ich weiß was ein CMOS ist. Zeigen die Touch-Buttons dann mit der LED an, welcher Zustand im Chip gespeichert ist? Das ergibt Sinn - les ich aber im ganzen Internet jetzt zum ersten mal. Da sind ja Unmengen Tutorials zu dem TTP223. Ich glaube, die wissen das mit dem CMOS-Ausgang alle nicht. Jedenfalls vielen Dank für die Infos. Den Spannungsteiler "anpassen", wie c-hater es angeregt hat, ergibt wenig Sinn. Wie eingangs erwähnt, verhalten sich die Widerstandswerte von Dioden nicht linear und sind stark temperaturabhängig. Es ist zwecklos da einen Spannungsteiler dran anzupassen. Das müsste dann jeden Tag ein anderer sein.
:
Bearbeitet durch User
Kuppi schrieb: > Das ist nicht wirklich als I/O gedacht. An diesem Pin hängt der > Push-Pull Ausgang des TTP223, und das ist nur ein Ausgang. Nein. Das ist ein Ausgang, der zwischen Logic-H und High-Z wechselt. Sprich: Eine Ansteuerung der LEDs von aussen ist im Design vorgesehen. Nur halt in der gewünschten Anwendung des TO nicht mehr nutzbar...
Peter K. schrieb: > @c-hater: Achte beim Posten bitte auf Deine Wortwahl. Ich verwende weder > "verkackte Lösungen" Doch, das tust du. > noch "kaufe ich Gülle". Doch, auch das tust du. > Ich bin mir recht sicher, > dass auch in diesem Forum die Verwendung von Fäkalbegriffen gegen die > Board-Regeln verstößt. Man kann das sicher auch in Wattebällchen verpacken, aber der Punkt ist: Mist ist Mist und bleibt Mist. Auch wenn man den Mist in Wattebällchen mit einem Aufkleber z.B. "suboptimale Lösung" verpackt. > Jedenfalls vielen Dank für die Infos. Den Spannungsteiler "anpassen", > wie c-hater es angeregt hat, ergibt wenig Sinn. Also hast du nicht einmal genug Kompetenz, um zu erkennen, wenn dir Leute, die was von der Sache verstehen, sagen, wie man das macht. Mir egal, bin hier raus. Werd' allein glücklich.
c-hater schrieb: > Kuppi schrieb: > >> Das ist nicht wirklich als I/O gedacht. An diesem Pin hängt der >> Push-Pull Ausgang des TTP223, und das ist nur ein Ausgang. > > Nein. Das ist ein Ausgang, der zwischen Logic-H und High-Z wechselt. > Sprich: Eine Ansteuerung der LEDs von aussen ist im Design vorgesehen. > > Nur halt in der gewünschten Anwendung des TO nicht mehr nutzbar... Dann hast du ein anderes Datenblatt. Im TonTouch TTP223-BA6 Ver: 2.1 steht bei Pin1 = Q = O = CMOS push-pull output. Und die Tabelle 'DC/AC Characteristics' spezifiziert: Output Port Sink Current (VDD=3V. VOL=0.6V): 8 mA Output Port Source Current (VDD=3V, VOH=2.4V): -4 mA Ich kann da keinen High-Z Zustand erkennen.
Ich habe Schwierigkeiten den Touch-Chip (CAP1298) zu finden. Auf ebay gibt's nur zwei Angebote aus Großbritannien (z.B dieses: www.ebay.de/itm/123831944167?hash=item1cd4f583e7), mit jeweils 10 Euro Porto. Auf aliexpress gibt's ebenfalls nur einzelne Angebote und nur in der Version ohne Beinchen (z.B. https://de.aliexpress.com/item/4000171719730.html für igs 11 Euro). Die will ich nicht. Bei Mouser, Pollin und Co schau ich gar nicht erst nach, weil da bekanntermaßen die Portokosten erst bei 8 Euro beginnen. Für Einzelbestellungen kommen die nicht in Frage. Einzige Alternative: Es gibt ein Breakout-Board mit einem CAP1188 von adafruit: Das kostet jedoch 11 Euro. Es nutzt I2C und ist dafür gedacht, direkt Drähte mit Alufolie anzuschließen. Keine Ahnung, ob das auch für die TTP223-Touchbuttons geeignet ist: www.ebay.de/itm/163692284880?hash=item261cd20bd0 __Edit:__ Für den CAP188 spricht außerdem, dass es eine Arduino-Library von adafruit gibt (http://github.com/adafruit/Adafruit_CAP1188_Library) Die Library für CAP1298 ist angeblich ein bißchen "flaky", wie der Autor schreibt: "Release behaviour is flaky, but this could be due to the design of the chip itself." (http://github.com/ChrisBall/CAP1298)
:
Bearbeitet durch User
Kuppi schrieb: > Ist eine derartige Optimierung wirklich notwendig? Der Arduino Mini Pro > hat doch ausreichend Digitaleingänge für 5 Touchbuttons. Unbestätigten Gerüchten zufolge könnten µCs noch mehr zu tun haben als nur Tasten abzufragen. Ich habe ein Gerät, wo ich neun (mechanische) Tasten am Analogeingang abfrage, weil ich noch ein paar Schalttransistoren bedienen muß, ein paar LEDs steuere, einen I2C-Bus habe ... Tasten sind ja kein Selbstzweck. Kuppi schrieb: > Das ist nicht wirklich als I/O gedacht. An diesem Pin hängt der > Push-Pull Ausgang des TTP223, und das ist nur ein Ausgang. > Wenn du die Dioden wieder wegmachst, Wenn der Ausgang bei Betätigung high liefert, würde ich mit Dioden arbeiten, erspart die Rechnerei gegen die anderen inaktiven Knöpfe. > kannst du die Ausgänge der 5 > Touchbuttons, ich bezeichne sie mal als S0, S1, .. S4, über abgestufte > Widerstände (S0 = 1R, S1 = 2R, S2 = 4R, S3 = 8R, S4 = 16R) direkt an den > ADC Eingang hängen Das kann man so machen, klar! > ADC Eingang hängen (ohne weiteren Pull-down oder Pull-up). Das würde ich nicht tun. Der Analogeingang bleibt hochohmig, die Widerstandsbeschaltung kommt extern dran - auf den genauen Wert eines internen PullUp ist kein Verlass.
Peter K. schrieb: > ich möchte mehrere TTP223-Touchbuttons an einen Mikrocontroller > anschließen und dabei so wenig Anschlüsse verbrauchen Der TTP226 hat besitzt ein serial Interface. Ein Codeschnipsel ist im Link angegeben: https://forum.mysensors.org/topic/5069/ttp226-module-touch-panel-serial-mode-library-for-mysensors/4 https://www.ebay.de/itm/232472743926?hash=item3620748ff6:g:XVQAAOSwtRBZqViV
Manfred schrieb: > Kuppi schrieb: >> ADC Eingang hängen (ohne weiteren Pull-down oder Pull-up). > > Das würde ich nicht tun. Der Analogeingang bleibt hochohmig, die > Widerstandsbeschaltung kommt extern dran - auf den genauen Wert eines > internen PullUp ist kein Verlass. Du hast das Prinzip noch nicht verstanden, der Spannungsteiler soll nur von den Ausgangswiderständen der Touchbuttons gebildet werden. Irgendwelche Pull-ups oder Pull-downs, auch nicht die internen, sind da nicht erforderlich und nicht erwünscht. Der Analogeingang soll hochohmig bleiben um den Teiler nicht zu verfälschen. Es ergibt sich immer ein Teilerfaktor, außer in dem Fall wenn alle Touchbutton Ausgänge gleichzeitig GND oder Vcc ausgeben. Dann sieht der ADC den Minimal- oder Maximalwert.
Manfred schrieb: > auf den genauen Wert eines > internen PullUp ist kein Verlass. Das sind nur "schlechte" FEDs die einen gewissen Strom ziehen. Meist entspricht das dann >50k-300k und das sind die Toleranzen die da zu erwarten sind, nicht die Werte unterschiedliche µCs. :)
Peter K. schrieb: > Ich habe Schwierigkeiten den Touch-Chip (CAP1298) zu finden. Da gibts noch andere. CAP 1208: https://www.reichelt.de/8-ch-capacitive-touch-sensor-qfn-16-cap-1208-1-a4tr-p146349.html CAP1296: https://www.reichelt.de/6-ch-capacitive-touch-sensor-cap-1296-1-aiatr-p146351.html oder dann doch CAP1298, diesmal vom Uli von reichelt: https://www.reichelt.de/8-ch-cap-touch-sensor-qfn-16-cap-1298-1-a4tr-p146352.html Kosten tun sie auch nicht viel. Einziges Hindernis ist QFN.
:
Bearbeitet durch User
Vielen Dank. Reichelt will mindestens 6 Euro Porto. Das heißt ein Chip kostet knapp 7 Euro. Immerhin billiger als bei ebay. Da geht's auch mit den neuen Empfehlungen erst ab 16 Euro (inkl Porto) los. Hatte da noch eine ziemlich simple Idee, die ich ausprobieren werde: Einfach per NPN-Transistoren aus den CMOS-Ausgängen "echte" Ausgänge machen: Die Transistoren kämen dann direkt auf die Touchbuttons: Basis an I/O-Pin und Collector an VCC. Der Emitter jeden Transistors ist dann der neue Ausgang, der keinen Strom mehr rückwärts in den Touchbutton reinlässt. So müsste ich das Verhalten von "echten" Druckschaltern bekommen, die auch an den Spannungsteiler angeschlossen werden können.
:
Bearbeitet durch User
Hast du mal über ein TTP229 nachgedacht also Alternative. Des gibt Touchfelder mit 4,8,16 Anschlüssen bei Ebay für ein paar Euro. Anschlüsse : + / minus und EINE Datenleitung. Bei meinen Treiber muss die an D3. Das war's.
Nachtrag : Hier das 16er Keyboard. https://www.ebay.de/itm/184224583790 Hier der Link dazu. https://github.com/arduino12/ttp229b-arduino Sorry, ist zu früh am morgen es sind 2 Drähte zum Arduino. :( https://github.com/arduino12/ttp229b-arduino/blob/master/TTP229%20Example%20Code.JPG <- siehe Foto Code.
Oder einen tm1638 nehmen und die Tasten gegen die ttp223 tauschen.
c-hater schrieb: > Nein. Das ist ein Ausgang, der zwischen Logic-H und High-Z wechselt. Warum steht dann für den Ausgang Q des TTP223 im Datenblatt als Typ "O" für CMOS push-pull output? Oder welche Schaltung meinst du, wenn du von High-Z sprichst?
Meinst Du in der Tabelle "Pad Description" im Datenblatt? Ich glaube das ist der Buchstabe O für "Output". Die Keypads sind ja alle ganz nett. Doch ich brauche die Touchbuttons einzelnd. Ich kann mir kaum eine Anwendung vorstellen, bei der das Tastenarrangement von Keypads von Vorteil wäre. Normalerweise möchte man die Tasten doch irgendwie sinnvoll anordnen. Ganz schlimm in dem Zusammenhang finde ich die Druckknöpfe in Rotary-Encodern und Mini-Joysticks: In vielen Anwendungen muss man oben drauf drücken, um zum Beispiel irgendeine Option zu bestätigen. Haptisch sehr ungünstig. Verstehe ich nicht, dass das niemandem auffällt.
Peter K. schrieb: > In vielen Anwendungen muss man oben > drauf drücken, um zum Beispiel irgendeine Option zu bestätigen. Haptisch > sehr ungünstig. Verstehe ich nicht, dass das niemandem auffällt Ja und ? Wenn dir der integrierte Encoderschalter nicht gefaellt,kannst du ja einen Touchbutton parallelschalten und ihn deinen Wuenschen entsprechend plazieren. Ich persoenlich finde die Enoder mit Schalter praktisch:Platzsparend und visuell unauffaellig
Toxic schrieb: > Ja und ? > Wenn dir der integrierte Encoderschalter nicht gefaellt,kannst du ja > einen Touchbutton parallelschalten und ihn deinen Wuenschen entsprechend > plazieren. Genau.
Kuppi schrieb: > Du hast das Prinzip noch nicht verstanden, der Spannungsteiler soll nur > von den Ausgangswiderständen der Touchbuttons gebildet werden. Natürlich habe ich es nicht verstanden, ich habe noch nie ein Analogsignal synthetisiert ... oder vielleicht doch? Du hast einen Teil meines Beitrage nicht gelesen oder bewusst nicht gequotet: Manfred schrieb: > Wenn der Ausgang bei Betätigung high liefert, würde ich mit Dioden > arbeiten, erspart die Rechnerei gegen die anderen inaktiven Knöpfe. Mit Dioden und externem Widerstand sind die Köpfe voneinander unabhängig, ich kann einen abklemmen, ohne dass die Gesamtkette durcheinander kommt. Die rekursive Rechnerei der Kette ohne Entkopplungsdioden erspart man sich ebenfalls. Peter K. schrieb: > Ganz schlimm in dem Zusammenhang finde ich die Druckknöpfe in > Rotary-Encodern und Mini-Joysticks: In vielen Anwendungen muss man oben > drauf drücken, um zum Beispiel irgendeine Option zu bestätigen. Genau so habe ich das bei meinem Akkutester gemacht: Über das achter-Tastenfeld wähle ich z.B. "Kanal 2 Strom einstellen". Dann drehe ich, bis auf dem Display der passende Wert steht und drücke den Drehknopf zur Übernahme, eine sinnvollere Bedienung fällt mir nicht ein. > Haptisch > sehr ungünstig. Verstehe ich nicht, dass das niemandem auffällt. Ich verstehe nicht, wie man freiwillig Touchpads einsetzt. Ich habe einen Fernseher mit Touch, graue Beschriftung auf schwarzem Rahmen, das Teil ist unbedienbar bzw. nur mit der Fernbedienung benutzbar. An einem anderen sind seitlich Tasten, wo ich im Finger den Klick spüre und nichts versehentlich auslöse, wenn ich daneben grabsche. Dir ist entgangen, dass sich ein paar Entwicklungen damit befasst haben, an Touchscreens eine taktile Rückmeldung zu erzeugen - haben die Firmen zu viel Geld und Langeweile oder gehen auf die Forderungen der Benutzer ein?
Manfred schrieb: > Genau so habe ich das bei meinem Akkutester gemacht: Über das > achter-Tastenfeld wähle ich z.B. "Kanal 2 Strom einstellen". Dann drehe > ich, bis auf dem Display der passende Wert steht und drücke den > Drehknopf zur Übernahme, eine sinnvollere Bedienung fällt mir nicht ein. Mir schon: Einen Extra-Button für OK. Denn Wenn man auf den Rotary-Encoder draufdrückt kann sich dabei der Wert verstellen. Das selbe gilt auch für Mini-Joysticks: Sobald man die herunterdrückt, bewegt man zwangsläufig die Achsen. Dass Touch nicht die Lösung für alles sein kann, finde ich aber auch. Gerade bei den Telefonen wäre weniger mehr. Touch ist halt dann sinnvoll, wenn man das Gehäuse nicht aufbohren will oder gegen das Eindringen von Feuchtigkeit.
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.