auflösung analogwert

Gast #1675540
Lesenswert?

hallo wenn ich meinen Analogwert auf max stelle zeigt er mir 1023 im 
display an! ich würde gerne wisse wo ich die Auflösung ändern kann? zum 
Beispiel auf 256...

gruß
1
#include <avr/io.h>
2
#include "subprogramme.h"
3
#include <util/delay.h>
4

5
 
6
void pwmanalog (void) {
7

8
 uint16_t messwert;
9

10

11
  
12

13
 // ADC 0 - Bit 4 - 0 auf 0
14
 // interne Referenzspannung nutzen Bit 7-6 auf 1
15

16
  ADMUX = 0b01000000;
17
 
18
  
19
// ADC Enable - Bit 7 auf 1
20
// ADC Prescaler 128 - Bit 2-0 auf 1 
21
  ADCSRA = 0b10000111;
22

23
  
24
  while (1) {
25
  
26
  set_cursor (2,1);
27
  lcd_string("Analog-Steuerung");    // Überschrift
28

29
  
30
  set_cursor (0,3);
31
  lcd_string("Analogwert  [V]:");    // Helligkeit in Prozent
32

33
    char puffer_analog [20];      //*
34
  sprintf(puffer_analog, "%4d", messwert);
35
  set_cursor (16,3);
36
  lcd_string (puffer_analog);    //* Ausgabe der Variablen messwert
37

38

39
  
40
    
41
  ADCSRA |= (1<<ADSC);            // eine Wandlung "single conversion"
42
    
43
  while ( ADCSRA & (1<<ADSC) ) {
44
      ;   // auf Abschluss der Konvertierung warten
45
    }
46
   
47
    messwert = ADCW;        // Wandlungsergebnisse aufaddieren
48
  
49
   if(PINC &(1<<6)) goto menue;  //wenn Taster 1 gedrückt zurück ins Hauptmenü
50

51
};
52
menue: menueposition =1;
53

54
};
Gast #1675579
Lesenswert?

Hallo

Du gibst am Anfang messwert aus, woher der Wert auch immer kommen mag.
Erst weiter unten wird er dann erst ermittelt.
Hat mit deine Problematik nichts zu tun. Aber ist es
wirklich das, was du vorhast??

Gruß
Joachim
Gast #1675680
Lesenswert?

ja funktioniert wunderbar...

habe aber noch ne andere Frage, ich habe will 2 verschiedene 
Eingangsspannungen abfragen, einmal 5V und dann 2,5 V. Die 5V 
funktioniert soweit sehr gut da ich die ReFspg. 5V wählen konnte aber 
wie kann ich im Programm sagen dass ich gerne ne Referenzspannung von 
2,5 V hätte.

ADMUX = 0b01000000;

Bit 7 und 6 können verstellt werden soweit ich das im Datenblatt gesehen 
habe. in diesem Fall habe ich die 5V Refspg. die auch Funktioniert.


ADMUX = 0b11000000;

Laut Datenblatt müsste diese Kombi die 2,56V Refspg sein.

wisst ihr da weiter?
#1675687
Lesenswert?

Christian schrieb:
> ja funktioniert wunderbar...

Aber nur, wenn man am Anfang nicht zu genau hinschaut.

> habe aber noch ne andere Frage, ich habe will 2 verschiedene
> Eingangsspannungen abfragen, einmal 5V und dann 2,5 V. Die 5V
> funktioniert soweit sehr gut da ich die ReFspg. 5V wählen konnte aber
> wie kann ich im Programm sagen dass ich gerne ne Referenzspannung von
> 2,5 V hätte.

Gar nicht.

Entweder du legst die 2.5V als externe Referenzspannung an AREF an und 
teilst deinem ADC mit das er gefälligst die als Referenz benutzen soll
oder du lebst mit den 5V als Referenz.


> Laut Datenblatt müsste diese Kombi die 2,56V Refspg sein.

Die sind aber nicht sehr genau.
Das können auch deutlich weniger sein.
Atmel garantiert dir nur, dass es die Referenzspannung sauber hält, 
nicht dass da exakt 2.56V entstehen.
Gast #1675707
Lesenswert?

hmm,

würde also funktionieren dass ich die interne Refspg. 5V Spg. für meine 
5V nehme, und per Programmcode auf externe Refspg. 2,5V umschalten kann, 
diese ich dann für 2,5V nutzen würde....?

mfg
Gast #1675728
Lesenswert?

Nein,

es ist so: ich will zwei verschiedene Eingangsspannungen über einen 
Eingang einlesen, einmal 10V und einmal 5V... so da 10V recht schlecht 
fürn µC ist habe ich ne OP beschaltung gebaut diese mir mit einer 
Verstärkung von 0,5 die Eingangsspannung halbiert. 10V ---> 5V und 5V 
----> 2,5V mein Problem ist nun die Eigentliche 5V die nun 2,5V sind wie 
kann ich die einlesen?
#1675730
Lesenswert?

Irgendwie ist das was du vor hast nicht sehr logisch.

Auf der einen Seite willst du unbedingt eine externe Referenzspannung 
von 2.5V, damit du Spannungen unter 2.5V mit höchster möglicher 
Auflösung messen kannst, auf der anderen Seite verwirfst du dann 2 Bit, 
indem du den Messwert durch 4 teilst.

Das ist ungefähr so, als ob die den Wasserstand der Donau mit dem 
Mikrometer misst, auf die Anzeigetafel dann aber 3.8Meter hinschreibst.

Wenns dir Spass macht, ok tus, aber so richtig erschliesst sich der Sinn 
der Sache nicht.
Gast #1675746
Lesenswert?

Du liest deine 5V ein genauso wie du deine 2,5V einliest.
Der Analog Digitalwandler liefert dir das Verhältnis der gemessenen 
Spannung zur Referenzspannung

d.h. bei 5v Referenz und 10 Bit Auflösung (0-1023)

1023 = 5V
512 = 2,5V

um eine Spannung zu erhalten Multiplizierst du deinen A/D-Wert in diesem 
Beispiel mit 4,8mV = 5V/1024 Werte

also spuckt dir dein A/D Wandler 221 aus ist die anliegende Spannung 
1,06V

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren