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
Eine sicher zielfuehrende Methode waere unter anderem den multiplikator iterativ anzupassen ? Schneller waere ein Gleichungssystem.
kannst du das evtl. ein bisschen erläutern ? stehe im mom ziehmlich auf dem schlauch
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.
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....
Hast Du das Beispiel ausprobiert, das bei Bascom dabei ist ? ADC gestartet ? Poste mal kompletten Code.
$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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.