Moin zusammen, ich brauche ein wenig Hilfe von Euch. Ich habe schon ein paar Erfahrungen mit Atmega8. Bislang habe ich nur in Assembler programmiert. Wie ich eine A/D Wandlung mache weiß ich. Nur dann die Daten für ein LCD-Display weiter zuverarbeiten habe ich probleme bzw. habe eigentlich garkeinen Ansatz, wie ich zur einer Lösung komme. Ich möchte auch bis 18V messen können mit der internen Referenzspg. Vllt. kann mir ja einer weiterhelfen. Ein Dankeschön im Voraus, Florian
Florian Lorenzen schrieb: > Ich möchte auch bis 18V messen können mit der internen Referenzspg. Da brauchst Du einen Spannungsteiler vor dem ADC. Gruss Harald
Hallo Harald, danke für deine Antwort. Ich rechner mir mal den passenden Spgteiler aus. Nur dann kommt wieder die Frage, wie programmiere ich das. Gruß Florian
Florian Lorenzen schrieb: > Nur dann kommt wieder die Frage, wie programmiere ich das. 1. Durch Multiplikation oder/und Division den Dualen Wert des ADC auf den gewünschten Zielwert bringen. Bei dir z.B: Max-AD-Wert umwandeln in (int)1800. Entspricht dem Spannungswert in hundertstel Volt. 2. Umwandlung der Dualzahl in eine BCD-Zahl Programmbeispiele findest du hier in den Tuts. 3. Umwandeln der BCD-Zahl in ASCII-Zeichen Kriegst du selbst raus, ist super einfach. 4. Senden der ASCII-Zeichen an das LCD.
Wenn Du den Spannungsteiler hast, bekommst Du dann Werte 0-1023 für 0-18V. Um also eine Anzeige von 1800 (wird dann mit festem Komma 18.00 V) bei 1023 (18V) zu bekommen, musst Du die 1023 mit 1.759 multiplizieren. Kommazahlen sind in Assembler ungünstig, deshalb kannst Du den Faktor 1.759 mit 256 (1Byte) multiplizieren -> ~450 , also dann *450. Das Ergebnis wird dann auch um das 256fache mehr, was man dann einfach durch das Weglassen des letzten Bytes wieder runterteilen kann. Ungenauigkeit durch Rundungsfehler 2/100 V. Wenn mehr gewünscht wird (je nach ADC Genauigkeit) mit 256^2 multiplizieren und 2 Byte weglassen. Den 2Byte-Wert 0-1800 musst Du dann entsprechend in einzelne ASCII Stellen umrechnen und anzeigen.
Hier dürftest Du einige Anregungen finden: http://www.loetstelle.net/projekte/vierkanaldvm/vierkanaldvm.php Voltmeter mit Atmel und LCD Anzeige in Assembler... ...sogar Vierfach!
Florian Lorenzen schrieb: > Nur dann kommt wieder die Frage, wie programmiere ich das. Ich hatte ein aehnliches Problem, um relativ hohe Anodenspannungen zu messen. Das Ganze ist ein Teil eines Monitoringssytems an einem Roehrenverstaerker. Zusaetzlich musste ich noch Frank Links Motorpoti-Fernsteuerung noch um ein paar Features erweitern (RC5-Codes auf seriellen Port ausgeben, L293 H-Bruckes statt parallelgeschaltete Ausgaenge). Hiermit habe ich das alles hinbekommen: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Hallo, erstmal möchte ich mich für Eure Hilfe bedanken. Das hat bis jetzut super geklappt und ich habe endlich eine Anzeige auf meinem LCD. Nur weiß ich nicht weiter wie ich nun die zweite Zahl vor dem Komma hinbekommen. Bis 5V kann ich mir die Spg. jetzt anzeigen lassen, aber es soll ja bis 18V messen können. Vllt. könnt Ihr mir da auch so toll weiter helfen. Ein Dankeschön im Voraus. Gruß Florian
Auf die Gefahr hin, dass ich mich wiederhole (ich gehe immernoch von Assembler aus). Du benutzt einen Spannungsteiler, der die 18V auf Deine gewählte ADC-Ref.Spannung runterteilt. Damit hast Du dann einen ADC Wert von 1023 bei 18V. 1: Den ADC Wert auslesen, erst Low-,dann Highbyte. (2Byte) 2: Diesen Wert mit 450 multiplizieren. (2 Byte * 2 Byte = 4 Byte) 3a: Höchstes Byte=0, also vergessen. 3b:niedrigstes Byte auch vergessen, dadurch wird das Ergebnis wieder durch 256 geteilt. 4: beiden mittleren Bytes ergeben nun 0-1800. Diesen Wert als 4-stellige BCD Zahl anzeigen lassen. Falls gewünscht, die 1.Stelle auf 0 testen und statt 0 eine Leerstelle drucken und nach der 2. Stelle ein Komma(Punkt) drucken. PS: Ich kenne es zwar nicht persönlich, aber ich glaube am Anfang kommt man mit solchen Sachen mit BASCOM schneller zum Ziel. Viele Gruesse herrmueller
Hallo Herr Mueller, ich hab es nun endlich geschafft :-). Nochmal ein Dankeschön. Auch bei den Anderen möchte ich mich nochmal bedanken. Schönes WE. Gruß Florian
Das freut mich zu hören. Viel Erfolg weiterhin. herrmueller
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.