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:
(Aus https://www.roboternetz.de/phpBB2/ze...ag.php?t=39560)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); }
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







Zitieren

Lesezeichen