Hallo erstmal! Ich bräuchte dringend mal Hilfe. Ich hab das hier beschriebene Tutorial nachgebaut und kann jetzt nicht mehr länger warten: Kann mir mal bitte jemand erklären, wie ich analoge Spannungen messen kann? Ich hab schon das Datenblatt studiert aber daraus bin ich nicht so richtig schlau geworden. Am besten mit Anschlussschema. Ich programmier übrigens mit FastAVR, wär schön wenn mir jemand sagen könnte, wie ich damit die Werte einlesen kann. Gruß Christian
so ganz 'mundgerecht' wird's wohl nich laufen. 1. zu messende spannung an adc(x) legen (wo der is: datenblatt) 2. sicherstellen, dass der adc-input nur 0-5v abkriegt, evtl. spannungsteiler 3. adc konfigurieren, in bascom wäre das: "config adc = single , prescaler = auto , reference = internal" 4. adc auslesen, in bascom: "start adc : Y = getadc(x) : stop adc" 5. wenn du'n display dranhast: "lcd 'Wert ist: '+str(Y)" das war's schon, in Y findest du eine zahl (0-1023) die dem eingangswert in bezug auf die interne referenz (2,56v) entspricht. der adc-eingang darf trotzdem bis 5v bekommen, er liefern oberhalb 2,56v halt immer den wert 1023 ab. gruss und schönes proggen, harry
Hallo Christian! So mache ich das... Viele Grüße AxelR.
Hallo Axel, ziemlich aufgebauscht ein Prog, programmiere auch in FASTAVR und evtl. will Christian mal klein anfangen... $Device= mega8 ' used device $Stack = 28 ' stack depth $Clock = 3.6864 ' adjust for used crystal $Source= On ' basic source in Asm $baud = 19200 dim a as word start adc do a = adc(2) print "Wert : ";a loop ....so sollte es erstmal für den Anfang gehen. P.S.: Ich dachte schon, es gibt nahezu niemanden, der auch etwas mit FASTAVR macht. Evtl. kann man ja ein Forum nur für FASTAVR eröffnen....
Ja genau, alle machen,wenn in BASIC, dann mit Bascom. Da hat man immer Angst, die anderen zu langweilen... Achso Christian, der A. hat natürlich recht! Mein Prog ist 1zu1 rauskopiert aus meinem Projekt, wenn du erst mal mit dem Beispiel vom A. spielen möchstest... der wert a wird, wie gesagt, zwischen 0 und 1023 angezeigt. Später kann mans dann auch nach Volt umrechnen. Gruß AxelR.
Hi! anke erstmal für die Antworten! So langsam hab ichs raus. Ich hab auf meinem Layout vergessen den Pin ARef anzuschließen. Hab auf irgendeiner Site gelesen, dass man ihn auf +5V hängen soll. Und siehe da, schon konnte ich den ADC auslesen. Wens interessiert, hier ist mein erstes Prog: $Device= m8 $Stack = 32 $Clock = 4 $Baud = 9600 Dim in As Integer Start Adc Do in = Adc(0) Print in WaitMs 750 Loop Was bedeutet eigentlich "Start Adc"? Heißt das nur, dass ich den PortC auf ADC umschalte, oder dass er in dem Moment ne Messung durführt? Bei mir funktioniert es auch, wenn ich "Start Adc" außerhalb der Do ... Loop Schleife hinschreibe. Wenn ich aber mit der Wartezeit mal runtergeh auf so ca. 500ms (= 1/2 s) dann krieg ich immer nur noch ungefähr den selben Wert. Gruß Christian PS: Bin irre froh, dass es noch ein paar Leute gibt, die auch in FastAVR programmieren. Kam mir bisher immer so einsam vor.
ohgottohgottohgott grusel grusel, den aref kannste zwar auf +5v hängen, sollteste aber nich, wenn deine messung was taugen soll. aref ist die spannung, mit der die zu messende spannung verglichen wird, sollte also im idealfall absolut sein. der avr hat 'ne interne referenz, die ist ganz brauchbar, dann sollte nur 'n 100nf an aref gegen gnd gehängt werden. oder du erzeugst die 'ne richtig suppistabile ref und gibst die auf aref. geht natürlich auch mit 5v, aber wackelt die, wackelt auch dein messwert. fastavr find ich ja auch ganz cool, nur woher nehm ich denn die $stack-angabe? wie wird die kalkuliert? gruss, harry p.s. bascom hat auch so seine ecken und kanten, soll kein 'statussymbol' sein
Hallo, Start ADC heisst nur, dass die ADC eingeschaltet sind und später mit x = adc(Channel) angesprochen werden können. Gruss Alexander Arndt
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.