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
Lesezeichen