Schau mal bei Microchip unter: Mtouch
Bei Atmel unter: Qtouch
Da gibts für beide Application Notes in denen auch Beispielprogramme drin sind. Einfach mal auf den homepages suchen.
Edit:
Theoretisch gibt es 4 verschiedene Möglichkeiten, das ganze zu realisieren (sicherlich noch mehr).
1. Du lädst mit einer festen Frequenz/Zeit den Kondensator und verwendest die internen Schaltpegel der I/O Ports des Controllers. Die Empfindlichkeit wird dann über den Ladewiderstand der Sensorfläche bestimmt. (wie bei deinem Tutorial). Die Software intern ist dafür recht Einfach, aber der Controller kann nicht auf Umwelteinflüsse Reagieren und Nachregeln (alterung, Temperatur, ....).
2. Im Prinzip das Selbe, nur wird der Ladezustand über den ADC ausgewertet. Hat den Vorteil, man sieht in der Software auch Umweltbedingungen und kann drauf reagieren. Ist aber für deinen Fall eher weniger Geeignet, da du 24 Schalter brauchst und dafür fehlen dir halt die ADCs.
3. Man läd den Kondensator so lange, bis der Eingangspin "1" ist und misst die Zeit die Zwischen einschalten und "1". Müsste das verfahren von mikrochip sein, bin mir aber nich 100% sicher.
Unter Umständen musst du zum Messen das laden kurz unterbrechen, da du sonst den Highpegel vom Laden misst und nicht die Ladung der Sensorfläche.
4. Die Ladung von deiner Sensorfläche auf einen größeren Kondensator "umladen", gemessen wird die Anzahl der Umladungen bis eine bestimmte Spannung am Kondensator erreicht ist (High-Pegel oder ADC). Ist Softwaretechnisch komplizierter, da man die I/Os recht schnell in bestimmte zustände Schalten muss (Eingang, Ausgang, Hochohmig). Das verfahren ist das was Atmel mit Qtouch verwendet, gibts auch ne C-Lib dazu.
Der Vorteil von Methode 4 ist, du kannst beliebig viele Sensoren auf einen Kondensator umladen und somit eine Matrix aufbauen.
Lesezeichen