Hallo, habe zwei Probleme mit dem AD Wandler, vieleicht hat ja einer von euch eine gute Antwort für mich die ich auch als Anfänger verstehe ;-). Ich Programmiere in C auf einen Atmega32 mit LCD Display. Mein erstes Problem ist das ich kein Komma zwischen den Werten habe, also 4,95V werden als 495 angezeigt. xtr=buffer; xtr = ((long)buffer*5000)/1024; utoa(xtr,Buffer,10); lcd_goto(0,1); lcd_write_s( Buffer ); Mein zweites Problem ist das ich einen Interrupt auslösen will wenn die Spannung einen bestimmten Wert unterschreitet. Also wenn die Spannung zu niedrig ist das denn auf dem LCD "Niedrige Batterie Spannung" angezeigt wird. Nur leider hab ich gar keinen ansatz wie ich das machen kann?! Danke schonmal im Vorraus für die Beantwortung meiner Fragen!
Der ADC wird dir einen solchen Interrupt nicht liefern. Wenn also eine regelmässige Messung nicht ausreicht, dann ist der Analog Comparator dein Ding. Genau dafür gibt es ihn. Wenn es allerdings nur darum geht, diesen misslichen Zustand anzuzeigen, dann ist ein Interrupt dafür ziemlich überflüssig. AB und zu mal messen und anzeigen reicht dann ja. Und für das fehlende Komma sei dir etwas Phantasie im Umgang mit Division und Divisionsrest nahegelegt
HAllo, kann ich denn die Spannung anzeigen lassen über den ADC und gleichzeitig die Spannung mit dem Analog Komperator vergelichen?
Wenn die Spannung an beiden Pins liegt ja. Aber wie ich oben schon ergänzt habe: dafür braucht's keinen Interrupt.
Hat einer von euch vieleicht ein Programmbeispiel für den Analog Komperator? finde so keinen im Tutorial
Hi Dieter, Um ADC und einen Comparator gleichzeitig/nacheinander zu benutzen Schliesst du die zu messende Spannung an einen ADC Pin an. anschliessend kannst du den Comparator über den ADC Multiplexer an den ADC Pin per software anschliessen!
ich verstehe das irgendwie nicht wie das funktionieren soll das was da im Datenblatt steht.
Verstehe ich das richtig das der Atmega32 nur einen Analog Komperator hat und ich somit ansich nur eine einzige Spannung überwachen kann? Wenn ja ist das etwas ungünstig da ich insgesammt 2 Spannungen und 2 Temperaturen überwachen muss!
Nochmal: Man kann Spannungen auch durch regelmässige Messung mit dem ADC überwachen. Und der hat genug Kanäle.
@ Dieter Für dich nochmal ein wilder Hack. Damit das Komma Platz hat, werden die Zeichen einfach etwas umsortiert. : utoa(xtr,Buffer,10); Buffer[4]=0; // String-Ende Buffer[3]=Buffer[2]; // Einer Buffer[2]=Buffer[1]; // Zehner Buffer[1]=','; // last, but not least: das Komma lcd_goto(0,1); : Da gäbe es noch etliche andere Arten, auf eine wurde bereits hingewiesen: Beitrag "ADC Wert auf LCD" Die allerletzte Zeile verweist auf http://www.mikrocontroller.net/articles/Festkommaarithmetik#Ergebnis_ausgeben
@ lkmiller irgendwie ist das voll komisch! Ich habe 40% des speichers belegt. Aber wenn ich die Zeilen von dir einfüge sind auf einmal 133% belegt?! Wie kann das denn?! Hat einer darauf eine Antwort
HAllo, habe es hinbekommen... lag irgendwie am dem Projekt, habe den C code einfach in ein neues Projekt rein kopiert und da ging es^^. Ich kann Spannungen bis 9,99V super messen ( Also liegen mit einem Spannungsteiler vorm Eingang des µC). Mein Problem ist im moment das ich die Spannungen über 10V nicht richtig anzeigen kann... alles bis 10V wird richtig angezeigt, nur wenn ich unte 9,9V komme wo er nun eigentlich 09,9V oder halt nur 9,9V anzeigen sollte, zeigt er 99,9V an.
Bitte mach nicht ständig neue Threads zum selben Thema auf. Antwort auf deine letzte Frage findest du hier: Beitrag "Re: ADC Wert auf LCD"
Hallo, tut mir leid habe mich versehn! habe gerade was im anderen Theard gelesen und aus versehn da rein gepostet! Das hier ist ja eigentlich der Theard den ich deswegen aufgemacht habe.
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.