Hmm, ich kriegs hin, dass er mir mV ausgibt... Bei ADC von 512 schreibt er 2500mV....
Wie krieg ich das jetzt als Volt hin?
Kann man diese Zahl mit einem Befehl zerlegen?
Greets
Mario
Hallo zusammen.
Ich habe einen Mega8 und als Spannungsreferenz nehme ich AVCC (5V)
Ich schaffe es, den Wert des ADCs von einem ADC-Port auf einem LCD darstellen zu lassen, z.B. 1024 oder 485 etc.
Diese Werte möchte ich nun in eine Spannung umrechnen. Doch ich habe ein Problem... Wie stelle ich Nachkommastellen dar??
Ich habs bis jetzt so gemacht:
1024 geteilt durch den Wert des Konverters (hier jetzt mal 512) macht 2.
Dann teile ich 5 durch 2, macht 2.5.
Diese 2.5V möchte ich auf dem LCD haben... Nur: Er kriegt nur ganze Zahlen hin...
Wie muss ich das lösen?
Herzliche Grüsse
Mario
Hmm, ich kriegs hin, dass er mir mV ausgibt... Bei ADC von 512 schreibt er 2500mV....
Wie krieg ich das jetzt als Volt hin?
Kann man diese Zahl mit einem Befehl zerlegen?
Greets
Mario
hi
genau da bin ich auch dran.
In welcher Sprache schreibst du deine Programme und kannste das vielleicht mal online stellen, möchte das mal vergleichen.
gruß
patrick
Ich écris in Bascom.
Hier mal le code:
$regfile= "m8def.dat"
$crystal=1000000
DDRC.1=0 ' Ich verwende den AD Port 1. Also: Eingang.
Config Adc=Single, Prescaler=Auto, Reference=Avcc ' Adc einstellen
Config Lcd=20*2
Config Lcdpin=pin, E= Portb etc. etc. ' LCD einstellen
Start adc ' Adc anwerfen
Dim W as Long
Do
cls ' Display leeren
W= Getadc(1) ' den Wert vom Port 1 holen
Locate 2,1
lcd W 'Zur Kontrolle mal diesen Wert aufm LCD zeigen.
W=5000*W
W=W/1024
locate 1, 1
Lcd W
Loop
End
So krieg ich 2500 aufm LCD... Jetzt bräuchte man noch ein Komma dazwischen und es wäre perfekt. Wie macht man das?
Greets Mario
Vielleicht in Pascal?In welcher Sprache schreibst du deine Programme
Ich habe euch mit der Suche mal ein paar Links herrausgesucht.
https://www.roboternetz.de/phpBB2/ze...ighlight=komma
https://www.roboternetz.de/phpBB2/ze...ighlight=komma
https://www.roboternetz.de/phpBB2/ze...ighlight=komma
https://www.roboternetz.de/phpBB2/ze...ighlight=komma
https://www.roboternetz.de/phpBB2/ze...ighlight=komma
https://www.roboternetz.de/phpBB2/ze...ighlight=komma
https://www.roboternetz.de/phpBB2/ze...ighlight=komma
W=5000*WLcd WW ist als Word eingestellt. Word geht nur bis 1024. Somit sind die 2500 nur ein Anzeigefehler!So krieg ich 2500 aufm LCD...
Wenn 1000 auf's Display geschrieben wird, und danach 250, steht auf dem LCD 2500, weil die letzte 0 von 1000 ja nicht gelöscht wurde. Es wurde nur die 100 von der 1000 mit 250 überschrieben.
Bevor ein neuer Wert geschrieben wird, sollte die Anzeige an der Stelle gelöscht werden. Oder der Wert so formatieren, das er immer die gleichen Stellen belegt. lso so das 250 als 0250 angezeigt wird.
5000*W in einem Word erzeugt nur einen Überlauf und damit ein falsches Ergebnis.
Ja, hab ich schon korrigiert, es muss ein Long sein...
Wie kann ich das LCD an einer bestimmten stelle löschen??
locate y, x
cls??
Damit man mit Kommas rechnen kann, muss man als single oder double deklarieren... Bis wohin gehen diese Dinger? (Wieviel Bit bringen sie?)
Kann man das nicht eleganter über die Ausgabe lösen, so, dass z.B. die zweite Stelle ein Komma hat oder so?
Nur: wie zerlegt man die Zahlen??
Und jetzt klappt es mit dem Komma???Ja, hab ich schon korrigiert, es muss ein Long sein...
Nein, CLS löscht das ganze Display.Wie kann ich das LCD an einer bestimmten stelle löschen??
locate y, x
cls??
Locate y,x
LCD " "
So wäre es einfacher. Zumindest wenn der Rest auf dem LCD stehen bleiben soll.
Ne, das mit dem Komma klappt doch auch net, wenn es ein Long ist....
Man müsst eben single nehmen.
Ich möchte es aber irgendwie mit einer Ausgaberoutine machen..
Ganz zufällig habe ich noch einen anderen Beitrag gefunden, wo das gleiche Problem behandelt wird.
http://www.mikrocontroller.net/forum...38.html#235072
Lesezeichen