Hallo

Bei Experimenten mit LEDs zur Helligkeitsmessung ist mir ein interessanter Effekt mit einem unbeschalteten ADC-Eingang bei einem Mega32 (RP6) aufgefallen. Für die Messung wird der ADC-Pin kurz auf Ausgang High geschaltet, dann auf Eingang ohne internen PullUp. Nach dem Umschalten wird die Zeit gemessen, die benötigt wird, um am Pin eine vorgegebende Spannung zu unterschreiten. Der unerwartet aufgetretene Effekt war nun, dass die Zeit bei unbeschaltetem Eingang durch die Annäherung mit der Hand deutlich beeinflusst werden kann. Der entsprechende Codeabschnitt dazu sah so aus:

Code:
   while(1)
   {
      DDRA |= 3; // PA0 und 1 auf Ausgang High setzen
      PORTA |= 3;
      sleep(20); // kurz warten (unkritisch)

      count0=0;
      DDRA &= ~1; // Eingang PA0
      PORTA &= ~1; // ohne Pullup
      while(readADC(0) > 500) count0++; // 500 ist der Schwellwert für PA0

      count1=0;
      DDRA &= ~2; // Eingang PA1
      PORTA &= ~2; // ohne Pullup
      while(readADC(1) > 300) count1++; // 300 als Schwellwert für PA1

      writeInteger(count0, 10); // Messwerte ausgeben
      writeString_P(" - ");
      writeInteger(count1, 10);
      writeString_P("\n\r");
      mSleep(300);
   }
(Aus https://www.roboternetz.de/phpBB2/ze...ag.php?t=39560)

Testweise hatte ich damals noch ein kurzes Drähtchen als "Antenne" am Pin angebracht. Dadurch wurde die Empfindlichkeit nochmals deutlich gesteigert. Was den Effekt auslöst, und ob das auch bei deiner Dose funktionieren würde, kann ich nicht sagen. Ich tippe auf die Beeinflussung die Entladezeit der interen Kapazität des Eingangpins, möglicherweise auch der Kapazität der Leiterbahnen.

Gruß

mic