xmega_tutorial.jpg

kapazitives Touch Pad

Bewertung:  / 4
SchwachSuper 

Für die Eingabe von Informationen in Zusammenhang mit einem Display sind Taster, Drehgeber oder Potentiometer nicht immer die schönste oder auch beste Lösung. Entweder gibt es Probleme mit der Platzierung, der Größe oder die kleinen Spalten machen Probleme mit der Feuchtigkeit der Umgebung.

Möchte man eine optisch ansprechende Lösung realisieren, so sind Touch Sensoren bestens für solch eine Bedienung geeignet. Diese können hinter den verschiedensten Frontplatten, wie Aluminium, Plexiglas oder Fliesen angebracht werden und dedektieren ganz unsichtbar die Berührung.

Die beschriebene Methode ermittelt die Berührung nicht über eine Kapazitätsmessung, sondern wird über eine Charge-Transfer-Messung detektiert.

  • QTouch
  • Touch_0
  • Touch_1
  • Touch_2

Hardware - Touch Pad

  • Stück Leiterplatte
  • 2 freie Pins am Controller
  • 1 Kondensator ~33nF
  • 1 Widerstand 1 bis 10KOhm
  • Touch_0

Funktionsprinzip

Es gibt 2 Kondensatoren die als Speicher für Ladungen dienen, den Kondensator Cs als Speicher und die "Touch" Elektrode als Kondensator gegen Erde.

Am Anfang werden beide entladen, um die Kondensatoren in einen definierten Zustand zu bringen. Das bedeutet, dass PB1 und PC1 als Ausgänge und auf LOW geschaltet werden. Etwas warten damit Entladung auch vollständig erfolgt. Danach werden in einer Schleife folgende Punkt abgearbeitet:

1. Der Touch Kondensator wird über PB1 aufgeladen (nur wenige pf).
Dabei ist der Port PC1 ist als Eingang geschaltet, damit in den Cs kein
Strom fließen kann.
2. Pin PB1 wird als Eingang konfiguriert und PC1 als Ausgang mit 0V.
Jetzt wandert die Ladung aus dem Touch Kondensatorin Cs (welcher viel grösser
ist und sich nur gering auflädt)
3. Wenn die Spannung am Cs ausreicht um vom AVR als 1 gelesen zu werden, wird
die Schleife beendet und durch geführte Schleifenanzahl ausgegeben.
Der Zählerstand ist ein Maß für die benötigten Ladezyklen.
Wenn nicht beginnt die Schleife von vorne.

Der Endstand des Zählers verändert sich, wenn man mit dem Finger den Touchsensor berührt.

Sozusagen wird durch den kleineren Touch-Kondensator schrittweise der große Kondensator Cs aufgeladen. Die Anzahl der benötigten Ladezyklen hängt von der "Größe" des Touch Kondensator ab. Und die wiederum von dessen Umgebung (Finger).

Software - kapazitives Touch Pad

Beispiel Code von www.microcontroller.net für die Abfrage von 3 Tastern an Port A.

  • Taster 0 --> PinA 4 und 5
  • Taster 1 --> PinA 2 und 3
  • Taster 2 --> PinA 0 und 1
Avr Touch - 3 Tasten
#include "avr\io.h"
#include "util\atomic.h"


#define SK_A0 (1<
#define SK_B0 (1<
#define SK_A1 (1<
#define SK_B1 (1<
#define SK_A2 (1<
#define SK_B2 (1<

#define SK_A012 (SK_A0 | SK_A1 | SK_A2)
#define SK_B012 (SK_B0 | SK_B1 | SK_B2)


#define MAX_CYCLE 2000


uint16_t keys[3];


void read_senskey( void )
{
uint16_t i = MAX_CYCLE;
uint8_t a, b, x, y;

ATOMIC_BLOCK(ATOMIC_FORCEON){
a = DDRA & ~(SK_A012 | SK_B012);
b = PORTA & ~(SK_A012 | SK_B012);
y = SK_B012; // input mask
do{
DDRA = a; // tristate
PORTA = b | SK_B012;
DDRA = a | SK_B012; // Bx = strong high
DDRA = a; // tristate
PORTA = b;
DDRA = a | SK_A012; // Ax = strong low
if( --i == 0 ) // timeout
break;
x = y & PINA; // not immediately after DDRA
if( x ){
if( x & SK_B0 )
keys[0] = i;
if( x & SK_B1 )
keys[1] = i;
if( x & SK_B2 )
keys[2] = i;
}
y ^= x; // clear processed input
}while( y ); // all inputs done
DDRA = a | SK_A012 | SK_B012; // discharge
}
}

Links

Forum - Touch Sensor
Forum - Qtouch

Downloads

Software - einfach
Software
{rddl}vcxLib_TWI_ATmeega_Slave.zip{/rddl}
Kommentar hinzufügen

Neuste Beiträge

03/09/2015
In den letzten Monaten habe ich lange das CAD Programm und meinen kleinen Ultimaker 3D Drucker gequält....
15/05/2015
Zuerst wurde eine kleine Katze am Computer konstruiert. Der erste Druck mit 0,3mm Schichtstärke war...
06/05/2015
Da beim Ultimaker keine Beleuchtung des Arbeitstisches vorgesehen ist, muss ich mir hier selber eine...
10/03/2015
Nach vielen Überlegungen habe ich mich nun endlich dazu entschieden meinen Machinenpark mit einem 3D...
01/02/2015
Diese Hardware besteht aus einem mächtigem Hardwarecontroller und vier leistungsstarken...
101365
16/08/2014
Für meine StepCraft CNC Fräse habe ich mir eigene Spanneisen bzw. Spannpratzen, zum schnellen und...