Forum: Mikrocontroller und Digitale Elektronik Ausgangsspannung vom 10k Poti bricht ein


von Matze05 (Gast)


Angehängte Dateien:

Lesenswert?

Guten Abend zusammen,

habt ihr eine Idee, warum die Ausgangsspannung von meinem 10k Poti nach 
nur ganz kurzem drehen von 5V (Potistellung maximal=10K) auf ca. 50mV 
(Potistellung ab unter ca. 9.5K) einbricht?

Der Schleifkontakt liegt am Analogeingang meines uC Atmega32.
Kann es sein, das der Eingang falsch konfiguriert ist und deswegen 
irgendwie die Spannung einbricht?

hier der Code meiner Messung, glaube aber es ist eher etwas 
hardwaremäßiges

1
/* ADC initialisieren */
2
void ADC_Init(void) 
3
{
4
 
5
  uint16_t result;
6
7
   ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS0);      // Frequenzvorteiler: setzen auf 32 (4 MHz / 32 = 125 kHz) und ADC aktivieren 
8
   ADMUX |= (1<<REFS0) ;     // interne Spannung nutzen 
9
 
10
 
11
  /* nach Aktivieren des ADC wird ein "Dummy-Readout" empfohlen, man liest
12
     also einen Wert und verwirft diesen, um den ADC "warmlaufen zu lassen" */
13
 
14
  ADCSRA |= (1<<ADSC);                  // eine ADC-Wandlung 
15
  while (ADCSRA & (1<<ADSC) ) {}        // auf Abschluss der Konvertierung warten
16
  /* ADCW muss einmal gelesen werden, sonst wird Ergebnis der nächsten
17
     Wandlung nicht übernommen. */
18
  result = ADCW;
19
}
20
21
22
23
/* ADC Einzelmessung der Übergabeparameter ist der zu messende Analogkanal   */
24
uint16_t ADC_Read( uint8_t channel )
25
{
26
  // Kanal waehlen, ohne andere Bits zu beeinflußen
27
  ADMUX = (ADMUX & ~(0x1F)) | (channel & 0x1F);
28
  ADCSRA |= (1<<ADSC);            // eine Wandlung "single conversion"
29
  while (ADCSRA & (1<<ADSC) ) {}  // auf Abschluss der Konvertierung warten
30
  return ADCW;                    // ADC auslesen und zurückgeben
31
}
32
33
34
35
while(1)
36
  {
37
adcval = ADC_Read(5);  lcd_gotopos(1,16); lcd_writezahl (adcval);   //AD_WErt ausgeben 
38
39
}
Bei 10k Potistellung werden noch 1023 Inkremente angezeigt. Drehe ich 
das Poti auf ca. 9,5K sind es nur noch 50 inkremente.


Die Versorgungsspannug des Potis von 5V bleibt erhalten und bricht nicht 
ein.
Auch die Analogreferenzspannung bricht nicht ein.

Ich habe keine Idee woran das liegen könnte. Ich vermute, das der 
Analogeingang die Spannung wegzieht?

Das Poti habe ich auch schon gegen ein anderes ausgetauscht, es war in 
Ordnung. Wenn das Poti nicht an den Analogeingang angeschlossen ist, das 
verändert sich der Spannungswert des Potis linear mit der Drehbewegung.

Ich habe alle Analogeingänge ausprobiert. Überall das gleiche Verhalten.

Benutze ich das auf meine uC Platine aufgelötete Poti, dann werden alle 
Inkremente auch sauber angezeigt, nur nicht, wenn ich ein externes Poti 
auf einer anderen Platine, siehe Auszug Schaltplan verwende, dann klappt 
es nicht.

Habt ihr einen Tipp, ich komme bei diesem leichten Problem schon nciht 
weiter und suche schon seit 2 1/2h.

Vielen Dank und viele Grüße,

Matthias.

von Andreas K. (derandi)


Lesenswert?

Lustiges Problem, mal was neues.
Hast du n Oszi zur Hand?

von Matze05 (Gast)


Lesenswert?

ja, habe ich.

kann ja morgen mal schauen, was da zu sehen ist.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Halte mal den Controller dauerhaft im Reset-Zustand (/RESET auf 0V 
legen) und miss dann noch mal die Spannung.

Wenn die Spannung nicht einbricht, hast du irgendwo im restlichen Code 
(welchen du hier nicht gezeigt hast) den ADC-Pin als Ausgang mit 
Low-Pegel gesetzt.

von Volker S. (volkerschulz)


Lesenswert?

Magnus Müller schrieb:
> [...]
> Wenn die Spannung nicht einbricht, hast du irgendwo im restlichen Code
> (welchen du hier nicht gezeigt hast) den ADC-Pin als Ausgang mit
> Low-Pegel gesetzt.

Dagegen wuerde aber seine Aussage sprechen:

Matze05 schrieb:
> [...]
> Benutze ich das auf meine uC Platine aufgelötete Poti, dann werden alle
> Inkremente auch sauber angezeigt, nur nicht, wenn ich ein externes Poti
> auf einer anderen Platine, siehe Auszug Schaltplan verwende, dann klappt
> es nicht.
> [...]

Es handelt sich also um ein Problem, dass es gar nicht geben duerfte. ;)

Externes Poti und µC (bzw. ADC) haben aber schon eine gemeinsame Masse, 
ja? Und VCC des Potis ist = Vref des ADC?

Volker

von Rüdiger (Gast)


Lesenswert?

C4 hinüber?

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Matze05 schrieb:
> Benutze ich das auf meine uC Platine aufgelötete Poti, dann werden alle
> Inkremente auch sauber angezeigt, nur nicht, wenn ich ein externes Poti
> auf einer anderen Platine, siehe Auszug Schaltplan verwende, dann klappt
> es nicht.

Soll das heißen dass du gleichzeitig ZWEI POTIS an deinem Eingang 
hängen hast? Das wäre Müll.

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.