Forum: Mikrocontroller und Digitale Elektronik Hilfe bei A/D Wandlung


von Björn (Gast)


Lesenswert?

Hallo!

ich brauche Hilfe bei einem Problem: Eine do/while-Schleife soll dann 
starten wenn ein bestimmter Spannungswert am A/D Wandler meines Atmel 
mega16 Microcontrollers ereicht ist.


Wie müssen die Programmschritte aussehen, mit denen ich die Spannung 
meines Solarpanels (0 bis 2V) über den A/D - Wandler am 
Microcontrollerboard einlesen und weiterverarbeiten kann ?




Danke Björn




von Maik G. (speedy)


Lesenswert?

welche Sprache? C oder delphi pascal???

von dins (Gast)


Lesenswert?

Vielleicht bringt dir was in der Art:

ADC im free running mode, ISR schreibt den ADC Wert in ne volatile 
Variable raus. Dann musst du im Hauptprogramm ja nur noch sowas wie
while(ADC_WERT < 2Volt) {} machen.
Also warten bis Bedingung erfüllt und danach dann die eigentliche 
Aufgabe.

Bei beiden Versionen muss halt noch eine Endloschleife außen rum.

while(true) {
  while(ADC_WERT < 2.0 Volt) {} //warten
  hier steht das, was du sonst so machen willst
  ADC_WERT=0; //sicherheitshalber
}

von Björn (Gast)


Lesenswert?

Muss ich nicht den AD erst initialisieren?? Oder wie funktioniert das?

von johnny.m (Gast)


Lesenswert?

> Muss ich nicht den AD erst initialisieren??
Wenn Du willst, dass der ADC was ausspuckt, dann wirst Du das wohl tun 
müssen. Wenn Du auch noch erzählst, mit was für einem µC und in welcher 
Programmiersprache Du arbeitest, dann kann Dir vielleicht sogar jemand 
dabei helfen. Wenn es ein AVR ist, dann schau bitte ins Tutorial auf 
dieser Seite. Da steht das alles schön verständlich beschrieben.

von rischi (Gast)


Lesenswert?

ich kenne dein problem, ich hatte dass selbe problem mit der AD 
Wandlung! www.ichkennmichaus.de! mlg

von Björn (Gast)


Lesenswert?

Ich habe ein Pollin-Board mit einem ATmega 16 drauf. Ich möchte mir eine 
Spannug ein lesen und in einer Do While schleife einbinden damit meine 
schleife aktiviert wird.

von Karl H. (kbuchegg)


Lesenswert?

Die Antwort ist immer noch dieselbe:
Schau ins AVR Tutoril, dort steht wie man mit
dem ADC eine SPannung einliest.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Der_interne_ADC_im_AVR

von johnny.m (Gast)


Lesenswert?

> und in einer Do While schleife einbinden damit meine schleife aktiviert
> wird.
Du weißt hoffentlich, dass eine do...while-Schleife immer mindestens 
einmal durchlaufen wird, auch wenn die Schleifenbedingung nicht erfüllt 
ist? Das nur am Rande... Für den Fall, dass Du vielleicht doch eher ne 
while-Schleife meintest.

von Sonic (Gast)


Lesenswert?

Wenn du nur einen Spannungspegel überwachen willst, dann nimm lieber den 
Analog-Comparator. Da brauchste keinen Code zum Überwachen, der ist 
schnell und meldet sich per Interrupt, falls gewünscht.

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
Noch kein Account? Hier anmelden.