Forum: Mikrocontroller und Digitale Elektronik kapazitiver sensor, auswertung haut nicht hin


von bongo (Gast)


Lesenswert?

Hallo.

Hab mich hier schon durchs Forum gelesen und versteh auch eigentlich das 
Prinzip, einen Kapazitiven Sensor mittels µC auszuwerten.

Cap (Kupferplatte) entladen.
Timer starten
Cap aufladen (über Pullup)
warten bis Cap aufgeladen ist und dann die Zeit stoppen

Soweit so gut, nur klappt das nicht.

Hier ist mal mein Quellcode:
1
int main() {
2
  
3
  uint16_t  timer = 0;
4
  uint8_t   timer_l,timer_h,i;
5
6
  init_uart();
7
  init_timer();
8
9
  _delay_ms(100);
10
11
  while(1) 
12
  {
13
    timer = 0;
14
    DDRD |= (1<<PD7); //Ausgang
15
    PORTD &= ~(1<<PD7); //Low
16
    _delay_ms(100);
17
    TCNT1 = 0;
18
    DDRD &= ~(1<<PD7); //Eingang
19
    PORTD &= ~( 1 << PD7 ); //Pullup aus
20
    while ( !(PIND & (1 << PD7)) ) ; //bis PD7 = 1
21
    timer_h = TCNT1H;
22
    while (!(UCSRA & (1<<UDRE))) 
23
    {} 
24
      UDR = timer_h;
25
    timer_l = TCNT1L
26
    while (!(UCSRA & (1<<UDRE))) 
27
    {}
28
      UDR = timer_l;
29
  }
30
  return 0;
31
}

Beschaltung ist ganz simpel:
Sensor Platte an der einen Seite an Pin PD7 und parallel dazu ein 
260KOhm Widerstand an VCC. Andere Seite der Platte an Masse.
Ich lass mir halt die Werte über den UART schicken und die Schwanken 
ständig, ob ich die Platte berühre oder nicht. Man kann also kein Muster 
erkennen...

Hat jemand eine Idee was ich falsch mache ?

von Düsendieb (Gast)


Lesenswert?

Deine Platte ist mehr Antenne als Kondensator. Du misst nur die 
Störeinstrahlung.

Axel

von bongo (Gast)


Lesenswert?

D.h. ?
Einen Kondensator noch in Reihe zwischen Platte und µC zum filtern ?

von Peter D. (peda)


Lesenswert?

bongo schrieb:
> Sensor Platte an der einen Seite an Pin PD7 und parallel dazu ein
> 260KOhm Widerstand an VCC. Andere Seite der Platte an Masse.

Welche andere Seite?

Du hast nur eine Sensorelektrode.
Die andere "Kondensatorplatte" bildet die Erdleitung Deiner Schaltung.
Sie existiert nicht physisch und auf keinen Fall nahe der 
Sensorelektrode.
Du willst ja einen möglichst schlechten Kondensator haben.


Peter

von bongo (Gast)


Lesenswert?

Also so wie in deinem Codebeispiel für die einfach Sensortaste ?
Ich dachte es gibt zwei Möglichkeiten.
Im Moment hab ich eine Kupferplatine (einseitig beschichtet) in der 
Mitte durchgeschnitten und die Rückseiten aneinander geklebt.
Wäre also die Auswertung besser wenn ich den zweiten Teil weglasse und 
nur ein Stück Kupfer direkt an den Sensorpin lege?

von bongo (Gast)


Lesenswert?

Also ich hab jetzt 1:1 den Code von Peter übernommen aber es haut 
überhaupt nicht hin. ich kriege total schwankende Werte und kann nix 
auslesen.
Sind 260KOhm zu groß fürn pullup ?

von B e r n d W. (smiley46)


Lesenswert?

Eventuell bekommst Du 50 Hz Einstreuung aus dem Netz, wie auch Düsendieb 
schrieb. Deshalb solltest Du mal probieren, den Sensor in eine Keksdose 
o.ä. zu stecken und diese mit Deiner Masse zuverbinden. Sind dann die 
Schwankungen deutlich weniger?

Bernd

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
Noch kein Account? Hier anmelden.