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!
>um die Spannung..
Ja welche denn? Was willst Du denn machen?
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
1 | Schaltung µC |
2 | ===================================== |
3 | Vcc1 o |
4 | V_Ol o----------o ADC0 |
5 | GND o----------o AGND o--+ |
6 | GND o--+ |
7 | AVCC o--+ |
8 | Vcc2 o--+ |
9 | |
10 | Sebstverständlich mit Abblockkondensatoren 100nF |
11 | AVcc o--||--o AGND |
12 | Vcc2 o--||--o GND |
Abfrage über den ADC http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#ADC_.28Analog_Digital_Converter.29 Im digitalen Fall
1 | Schaltung µC |
2 | ===================================== |
3 | Vcc1 o |
4 | V_Ol o----------o beliebiger I/O-Pin |
5 | GND o----------o GND |
6 | Vcc2 |
Sebstverständlich mit Abblockkondensatoren 100nF Vcc2 o--||--o GND Abfrage in Software über (PINx & (1<<Pxy)) http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Eing.C3.A4nge_.28Wie_kommen_Signale_in_den_.C2.B5C.29
Hi. Danke für die ANtworten, aber ich hab noch eine Frage, was ist AGND?? Im Schaltplan des Atmega kann ich kein Analog Ground finden.
Löms Hotzenplotz schrieb: > Im Schaltplan des Atmega kann ich kein Analog Ground finden. Welcher ATmega? Es gibt sooooo viele davon.
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 ;)
super, vielen Dank! :) Der Fehler muss aber irgendwo anders liegen, den AGND habe ich schon verwendet ...
> 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
@MaWin Danke, aber der Optokoppler arbeitet mit IR-Licht, deswegen reagiert er auch ganz gut nur auf sein eigenes Licht!! 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. CNY17F http://www.vishay.com/docs/83607/cny17f.pdf
> dann haben µC und OK auch kein gemeinsames GND! Gilt für die LED-Seite des OK1. Die Transistorseite des OK1 und µC müssen gemeinsames GND haben.
Ähm Im ersten Beitrag ist ein CNY70 drin und im letzten Schaltbild ein CNY17F. Die haben sehr unterschiedliche typ. Funktionen/Aufgaben!
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.
Hi Bist du sicher, das du die richtige Anschlussbelegung des CNY70 hast? Es gibt zwei Varianten, MfG Spess
Ich habe schon beide Belegungen ausprobiert und auch einen ganz anderen Phototransistor verwendet, das ist es nicht.
(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
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.