www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC gibt nur mist aus


Autor: useless (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nabend


Ich habe ein kleines Problem mit meinem ADC und einem Spannungsteiler, 
ich hoffe ihr könnt mir weiterhelfen

ich habe einen Spannungsteiler mit einem 10 und einem 1K ohm

ich gebe als Uges 12 volt drauf. Als U2 bekomme ich 1.102V raus, die 
gehen direkt auf ADC0

wie rechne ich in bascom jetzt um, sodass auf meinem display die 12V mit 
2 nachkommastellen auftauchen ?

mein prog sieht ungefähr so aus:

Config ADC = Single , Prescaler = Auto , Reference = AVCC
Start ADC

Dim Volt as Single

Do
W = Getadc(0)

Volt = W * 0.0025
Cls
Lcd W
Lcd Volt ; "Volt"
Waitms 200

Loop
End

Ich hoffe ihr könnt mir helfen, ich sitze schon mehrere stunden hier und 
bastel mir einen zurecht. ich bekomme lediglich nur zahlensalat auf dem 
display. ich habe auch schon als Reference internal genommen, aber da 
verändert sich nix besonderes

Vielen Dank
useless

Autor: 4421 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine sicher zielfuehrende Methode waere unter anderem den multiplikator 
iterativ anzupassen ? Schneller waere ein Gleichungssystem.

Autor: useless (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kannst du das evtl. ein bisschen erläutern ? stehe im mom ziehmlich auf 
dem schlauch

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal in der Bascom Hilfe nach "fusing", das erlaubt Dir die 
formatierte Ausgabe eines Single, damit ist der Zahlenwust weg.

GetADC sollte bereits einen korrekten Wert ausgeben, den Du eigentlich 
nicht mehr irgendwie teilen musst.

Versuch mal den Wert ohne Multiplikator auszugeben. Sollte dann um die 
1.1 Volt anzeigen. Du musst daraufhin mit ca. 10.9 multiplizieren um 
wieder auf 12 V zu kommen. Warum du mit 0.0025 mal nimmst (/400 teilst) 
verstehe ich nicht.

Auf interne Ref zu stellen ist schlecht, wenn ARef mit VCC verbunden 
bleibt, soll lt. Datenblatt unterbleiben, schließt int. Ref. kurz.

Autor: useless (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe jetzt nur den Getadc(0) ohne multiplikator da stehen

jetzt schmeisst er mir werte zwischen 4790 und 8000 aus

ich schnalle das echt nicht....

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du das Beispiel ausprobiert, das bei Bascom dabei ist ? ADC 
gestartet ? Poste mal kompletten Code.

Autor: useless (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
$regfile = "m8def.dat"
Config Lcdpin ...
Config Lcd = 16*2
$baud = 9600


Config ADC = Single , Prescaler = Auto , Reference = AVCC
Start ADC

Dim W As Word
Dim Volt As Single

Do
W = Getadc(0)

Volt = W * 10.9
Cls
Lcd W
Lcd Volt ; "Volt"
Waitms 500

Loop
End

Das is mein ganzer code

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, gerade selbst ausprobiert. Programmiere zwar in Bascom, spreche aber 
die Register meist per Asm an, verwende GetADC so gut wie nicht, deshalb 
ungewohnt für mich.

GetADC gibt Werte zwischen 0 - 1024 aus, 1024 entspricht bei >Reference 
= AVCC< Deiner VCC, also Versorgungsspannung (5V?). 1,102 wären dann ein 
Wert von W = 226. Wenn dieser Wert nicht kommt, oder stark schwankt bei 
sauberer Eingangsspannung von 12V, ist woanders der Wurm drin.

Wenn Du erst einen Wert von 226 angezeigt bekommst, dann musst Du den 
nur durch 18,833 teilen, um auf 12 zu kommen.

Weise aber erst den den Wert >W< einer Single zu und teile dann erst 
durch 18,833, kannst dann fusing nehmen, um die Single zu formatieren.

Probier mal das:

W = Getadc(0)
Volt = W ' Erst der Single den Word-Wert zuweisen
Volt = Volt / 18.833
S = fusing(Volt , "#.##")
LCD S

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.