Hallo.
Ich möchte gerne eine analoge Spannung mit einem Atmeg168
Mikrocontroller am ADC-Eingang messen. Momentan kann ich aber nur eine
Spannung messen, wenn ich einen Differenzverstärker verwende davor
schalte, obwohl die Spannung groß genug ist. Die meisten anderen
Schaltungen im Internet verwenden einen Spannungsteiler zwischen der zu
verwendenden Spannung und Ground. Zwischen den Widerständen ist der Pin
des Mikrocontrollers. Das habe ich auch versucht, funktioniert aber
nicht. Hat irgendjemand eine Idee was ich noch probieren könnte um die
Spannung direkt zu messen??
Vielen Dank!
Dreh doch mal deinen OC gerade. So kriegt man ja einen Knoten ins
Gehirn. In Eagle darf man Symbole auch so zeichnen, dass "+" und "-"
jeweils auf einer Seite sind, so dass man im Schaltplan oben einheitlich
die hohen Potentiale hat.
Musst du den analogen Spannungswert an V_0l digitalisieren oder willst
du wissen, ob die LED im Optokoppler den Fototransistor im Optokoppler
duchgeschaltet hat (V_0l = LOW) hat oder nicht (V_0l = HIGH)?
Mir fällt keine sinnvolle Anwendung ein, bei der man in obiger Schaltung
den exakten Wert wissen muss, weil der Optokoppler oben IMHO digital
eingesetzt wird und nicht analog.
Die gezeigte Schaltung ist auch nicht vollständig und es fehlt der
Sourcecode. Vermutlich steckt in einem von beiden ein Fehler, der die
korrekte Funktion verhindert.
Im analogen Fall
Löms Hotzenplotz schrieb:> Im Schaltplan des Atmega kann ich kein Analog Ground finden.
Im Datenblatt ATmega168
2.1 Block Diagramm, Fig. 2-1: Der Anschluß GND an A/D Conv. (rechts)
Je nach Gehäuse Pin 18, 21 bzw. 22
AGND hat nicht wirklich was mit dem Controller zu tun. Denk mal drüber
nach was du da gerade versuchst.
Du hast nen analogen Schaltungsteil der dir ein Messsignal zur Verfügung
stellt. Das willst du digitalisieren. Du hast also nen zweiten
Schaltungsteil der durch feste Pegel und Pegelwechsel gekennzeichnet
ist. Das Ganze wird in der Regel mit einer nicht unerheblichen Frequenz
betrieben. Das bedeutet du lädst periodisch Kapazitäten um. Dieses
Umladen verursacht in der Regel Potentialverschiebungen auf dem
Bezugspotential (Rground |= 0) sowie induktive Auskopplung abhängig von
Leiterführung und der Frequenz beziehungsweise der Flankensteilheit.
Um diese Störeinflüsse zu kompensieren musst du bestimmte Massnahmen
beim Layout vornehmen. Gängig ist die Trennung der analogen und
digitalen Signalmasse und die dezidierte Zusammenführung der beiden
Bezugspotentiale in einem Sternpunkt. Oft am ADC da dieser die Brücke
zwischen analoger und digitaler Welt darstellt. Wie hilfreich diese
Massnahme ist hängt massgeblich von der Gestaltung der Schaltung und des
Layouts ab, richtiges Layout erspart oft die Masseauftrennung ;)
> Ich möchte gerne eine analoge Spannung
Welche analoge Spannung ?
Das, was du gezeichnet hast, ist eine normale Reflexlichtschranke.
Da es aber eine Reflexlichtschranke ist, ist ein statischer Betrieb
suboptimal. Wenn es dort wo sie montiert ist nicht stockdunkel ist, dann
ist die "immer an".
Man verwendet daher moduliertes Lichts und einen Detektor, damit die
Lichtschranke nur auf ihr eigenes Licht reagiert. Schaltung:
+---+--+----------------+------+--+-- +5V
| | | | | |
| 4k7 | +----+---+ 1M 220R
E| | | | 4 | | |
>|--+--(--2k2---+--|5 1|--+ |
|BC307 | 10k |LM/NE567| | |A
| | +--|6 | | LED zur Kontrolle
| | | | | | |
180R 47kPoti-22n-(--|3 2 7 8|--(--+-- Ausgang
| | | +--+--+--+ |
A| C| | | | |
LED=PhotoTrans 22n 2u2 | 4u7
| | | | | |
+------+--------+-----+--+-----+----- GND
Siehe
http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8
Hallo.
Ich hab jetzt mal den ganzen Schaltplan gezeichnet. Ich würde mich
freuen wenn irgenjemand noch eine gute Idee hätte, denn es geht immer
noch nicht :|
LG
Löms
gute Idee:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC
(Allerdings. Zitat: 'Der Wert des Potentiometers ist Dank des hohen
Eingangswiderstandes des ADC ziemlich unkritisch. Es kann jedes
Potentiometer von 1kΩ bis 1MΩ benutzt werden.' - kann ich mich nicht so
richtig damit anfreunden, habe aber vielleicht das Datenblatt nicht
richtig interpretiert.)
Löms Hotzenplotz schrieb:> Danke, aber der Optokoppler arbeitet mit IR-Licht, deswegen reagiert er> auch ganz gut nur auf sein eigenes Licht!!
... Spaßvogel
Löms Hotzenplotz schrieb:> Danke, aber der Optokoppler arbeitet mit IR-Licht, deswegen reagiert er> auch ganz gut nur auf sein eigenes Licht!!
Dann guck dir mal die spektrale Empfindlichkeit des Detektors und die
spektrale Beleuchtungsstärke durch deine Lichtquellen (Sonnenlicht,
Glühbirne, IR-Diode) an. Sowohl Sonne als auch Glüchlampe enthalten
massig IR-Licht.
Beim µC darf A_Ref nicht mit VCC verbinden werden! (s. Datenblatt)
> Ich hab jetzt mal den ganzen Schaltplan gezeichnet. Ich würde mich> freuen wenn irgenjemand noch eine gute Idee hätte, denn es geht immer> noch nicht :|
Was geht nicht?
Liegt eine Spannung an ADC0 an, wenn du mit dem Voltmeter dort misst?
Welche bei welchem/welchen Vcc?
Und ändert sich die Spannung wenn du den Lichteinfall auf den
Fototransistor änderst (LED in OK1 an/aus d.h. Pin1 oder 2 an OK1
verbunden oder nicht)?
Wenn nein ist die Verkabelung anders als im Schaltplan oder der OK1 ist
kaputt. Den Transistor im ausgebauten OK1 kann man mit dem Multimeter
durchmessen.
Wenn ja ist das nicht gezeigte Programm im Atmega168 vielleicht falsch.
Das kann man aber leicht prüfen, in dem man statt des OK eine
Potischaltung anklemmt wie im Tutorial gezeigt.
Schaut man in das DAtenblatt des OK, liegen deine 47KOhm Lastwiderstand
irgendwo zwischen dem typ. gesättigten Betrieb und dem typ.
ungesättigten/linearen Betrieb. Wie bist du auf die 47 KOhm gekommen und
bist du sicher, dass das für deine Anwendung der richtige Wert ist? Wenn
ADC benutzt werden soll, ist vermutlich der ungesättigten/linearen
Betrieb beabsichtigt. Dazu passt allerdings nicht, dass die LED im OK
fest auf Vcc geklemmt ist. Dort würde man eher ein veränderliches
Signal einspeisen, welches man 1) galvanisch von der µC Schautung
trennen will (dann haben µC und OK auch kein gemeinsames GND!) und 2)
das man nicht digital (an/aus) abtasten will sondern analog.
Geschmackssachen:
AREF würde ich offen lassen und im Programm mit der internen Referenc
(AREF=AVCC) arbeiten.
An Abblockkondensatoren würde ich nicht sparen und jedem xVcc/xGND
Pärchen einen spendieren.
CNY17Fhttp://www.vishay.com/docs/83607/cny17f.pdf
Jedes Element für sich funktioniert.
Der OK arbeitet korrekt (er ist auch nicht dauernd an). Das Programm
geht auch, die Prüfschaltung mit Poti ist ok.
Ich kann auch den Wert aus dem OK im µC korrekt messen, wenn ich über
einen OPV (Differenzverstärker) schalte.
Wenn ich V_01 nicht anschließe, kann ich mit einem Multimeter die
Spannung und Spannungsänderung am OK messen. Wenn die Leitung an den
ADC-PIN angeschlossen wird, geht alles nur noch auf 0V. Das verstehe ich
nicht.
Wenn es der CNY70 ist, betrachte mal Fig.5 im Datenblatt un überlege,
welche Auswirkungen es hat, wenn du dem Fototransistor mit Strom aus 5V
fütterst, die durch 47K gequetscht werden. Am Fototransistor kommen dann
max. 0.1mA an.
Alles in Fig.9 mit Ic > 0.1mA kannst du dann vergessen, d.h. Abstände
unter 7mm brauchst du nicht auszuprobieren, die kann der strangulierte
Fototransistor nicht weitergeben.
Löms Hotzenplotz schrieb:> @MaWin> Danke, aber der Optokoppler arbeitet mit IR-Licht, deswegen reagiert er> auch ganz gut nur auf sein eigenes Licht!!
Jetzt weiss ich auch, warum ich die letzten Tage so friere.
Löms hat das ganze Infrarot, was es draussen gibt, abgeschaltet. :-)
Gruss
Harald
Das Problem liegt irgendwo anders. Wenn ich den ADC mit Punkt A
verbinde, zeigt das Programm korrekt Vcc an. Mit dem Multimeter kann ich
die (wechselnde) Ausgangsspannung zwischen B und C messen, solange B
nicht mit dem ADC verbunden ist. Sobald ich B mit ADC verbinde, kann ich
keine Spannung zwischen B und C mehr feststellen und am ADC wird auch 0V
angezeigt. Wenn ich 100k vor den ADC schalte, fällt zwar die Spannung
zwischen B und C kaum, aber einen Messwert bekomme ich am ADC trotzdem
nicht. Woran liegt das ? Ist die Stromstärke aus dem Transistor zu klein
? Wie könnte ich das ändern ? R2 habe ich schon zeitweise auf 10k
reduziert, ändert aber auch nichts.
(unknown) schrieb:> Woran liegt das?
Was mir so einfällt:
- die Realität stimmt mit der Schaltung nicht überein (z.B. Kurzschluss)
- µC defekt
- Programmfehler (allerdings weiß ich nicht, ob man das Port auch noch
auf Ausgang/Low schalten kann, wenn der ADC läuft).
Du kannst ja mal bei Verbindung von A und ADC den Strom messen, der dort
fließt. Der sollte fast 0 sein.
Gruß Dietrich
Ich kann mir anhand des Schaltplans auch nicht erklären, wie ADC0
niederohmig bis zum Kurzschluss werden kann. Die Idee der Strommessung
von Dietrich finde ich gut, wenn du ein Amperemeter für <<1mA hast.
Die Beschreibung, dass es mit der Messung an A bzw. bei Ersatz des CNY70
durch ein Poti funktioniert, passt auch nicht zur Theorie Software
falsch oder µC defekt.
Ein Rätsel!
Ich weiß jetzt auch nicht mehr weiter. Wir haben noch den µC
ausgetauscht und einen anderen Phototransistor genommen, aber das
Ergebnis bleibt gleich. Den Strom wollten wir auch messen. Wenn ein
Strommessgerät zwischen A und C geschaltet wird, geht die Spannung auch
auf 0.
Im Programm haben wir jetzt noch den Port explizit auf Eingang
geschaltet (keine Veränderung). Wenn man dann aber den PullUp hochzieht,
misst man an Punkt B mit dem ADC exakt Vcc, der Transistor ändert dann
aber auch nichts mehr.
Ich glaube, wir bauen das jetzt noch mal komplett neu auf, damit wir
nicht irgendeinen versteckten Fehler übersehen.
(unknown) schrieb:> Strommessgerät zwischen A und C
Das ist ja auch ein Kurzschluss der Versorgungsspannung. Das sollte man
nicht so zum Spaß machen...
Gruß Dietrich
(unknown) schrieb:> Sorry, war Strommessgerät zwischen A und ADC, nicht C.(unknown) schrieb:> geht die Spannung auch auf 0.
Dann muss ja ein großer Strom geflossen sein. Und wenn der µC auch schon
ausgetauscht wurde, bleibt nur ein Kurzschluss in der Schaltung übrig...
Oder es fließt ein so großer Strom, dass Vcc in die Knie geht und der µC
zwar noch arbeitet, aber nur Mist macht.
Gruß Dietrich