PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Strom messen mit Atmega



Cybererror
13.11.2009, 06:32
Hallo

Gibe es eine möglichkeit strom zu messen mit dem Atmega32 oder 8

Hat das jemand eine lösung.

Spannung 12 - 15 V und Strom bis 2A

der Atmega soll die Spannung regeln.

geht das?

kalletronic
13.11.2009, 10:25
Hi, ja die giebt es und zwar über einen Shunt, da kannst du dann den Spannungsabfall messen und mit Hilfe des Ohmschen Gesetzes den STrom ausrechnen. Ich hatte mal sowas in Planung: https://www.roboternetz.de/phpBB2/viewtopic.php?t=37578
In dem Beitrag hab ich auch die Schaltung zum Strom messen, es ist der 2. Anhang von mir. Da ist in der rechten Hälfte der Shunt mit einem Operationsverstärker den du dir so einstellen kannst dass du am ADC-Eingang eine Spannung von 0-5V hast. Die Werte müssen gegebenenfalls angepasst werden.

Gruß Kalle

wkrug
13.11.2009, 21:51
Du kannst auch einen Stromsensor verwenden, wenn Du den Messtrom vom Rest der Schaltung galvanisch trennen willst.
Beispiel: Den ACS 750 von der Firma Allegro.
Auf unserer Homepage:
http://www.toeging.lednet.de/flieger/profi/lipovolt/lipovolt.htm
findest Du einen Schaltplan mit diesem Sensor.
Der Teil mit den beiden Operationsverstärkern ist nur da um einen 2ten Meßbereich mit besserer Auflösung zu haben.
Der Sensor ist im Schaltplan oben Links zu finden.

Johnes
14.11.2009, 01:25
Mit dem M32 lassen sich Differenzspannungen mit Gain messen! Daher ohne exteren Bauteile, eine Spannungsverstärkung erreichen, sodass die Auflösung steigt.

Ich messe mit dem M32 über einen 0R1/5W, Ströme bis 3A mit einer Auflösung bis zu 0,1mA!

Im Datenblatt ist die Einstellung für den Multiplexer gut beschrieben.

MfG

Dämmi
30.11.2009, 15:53
Hey

Guttes Thema hier da bin ich auch grade am überlegen wie ich so etwas aufbauen kann.

@Johnes

Könntest du mir einmal ein Bascom Quellcode zeigen wie man die Diff Eingänge einstellt? Hab das im Datenblatt glaub ich soweit verstanden weiß nur nich wie ich Bascom das klar machen soll -.-

Danke

lg dämmi

Dämmi
01.03.2010, 16:48
Hey

Also ich konnte mich nach langer zeit endlich wieder an mein Projekt setzen.
Allerdings bekomme ich es immer noch nicht hin das der Atmega32 den ADC0 Eingang mit einem X10 Gain benutzt.

Ich muss doch dafür das Register ADMUX = &B00001000 setzen oder seh ich das falsch?

und kann ich dann nicht einfach über getadc(0) den ADC0 Eingang einlesen?

lg Dämmi

kolisson
01.03.2010, 20:41
hallo dämmi,

eigentlich ist eher zufall dass ich dir etwas schreibe.
ich wollte mal ne frage zu bascom posten und bin dann über diesen thread gestolpert.
ich war sehr verwirrt, da er lt. liste sehr alt war und dann trotzdem oben gelistet war.

nachdem ich den inhalt des threads dann gelesen habe, komme ich auf die idee etwas dazu zu schreiben, ohne zu behaupten , dass meine meinung gut sein muss.

1. wie schon "Hannes Lux" im microcontroller.net mal jemand beschrieben hat, ist die getadc-funktion ja verwendbar aber nicht unbedingt brauchbar.
mir ist es z.b. noch nie gelungen über den GETADC den adlar zu setzten.

da ich aber derzeit nicht den link zum beitrag von HANNES LUX zur hand habe , poste ich mal den inhalt:



****************** 1***************************

> Was Assembler befehle angeht bin ich leider völliger neuling....

Es geht nicht um Assembler-Befehle, es geht um das Benutzen des
System-Register ADMUX, ADCSRA, ADCSRB, ADCL und ADCH, ferner auch noch
DIDR0.

Das sind nämlich die Schnittstellen zum ADC, in denen einzelne Bits
bestimmte Schalterwirkung haben, andere Bitgruppen Zahlen
repräsentieren. Um das zu verstehen, brauchst Du kein ASM zu lernen
(obwohl das keinesfalls schaden würde), sondern nur im Datenblatt die
Funktion des ADC und besonders seiner (oben aufgezählten) Register
nachzulesen (und zu verstehen).

Bascom bietet zwar die Funktion GETADC(), die taugt aber im Alltag nix,
da sie zuviel Zeit vertrödelt. Denn sie muss:

- den zu messenden Kanal einschalten (Kanalnummer und Referenzquellen-
Nummer in ADMUX schreiben)
- den ADC starten (ADEN und ADSC im Steuerregister ADCSRA setzen, sowie
den Vorteiler in ADCSRA einstellen)
- warten, bis das Bit ADIF in ADCSRA gesetzt ist, was das vereinbarte
Zeichen ist, dass der ADC fertig ist und ein Ergebnis hat
- das Ergebnis aus ADCL und ADCH auslesen und dem aufrufenden Programm
zurückgeben.

Das Problem dabei ist, dass die Programmabarbeitung solange warten muss,
bis das Ergebnis vorliegt, das ist nunmal bei "Funktionsaufruf" so. Es
verlangt aber keiner, dass Du diese Funktion benutzt. Stattdessen kannst
Du die Handgriffe selbst in Programmcode formulieren und zur rechten
Zeit ausführen.

Angenommen, Du brauchst nur einen ADC-Eingang 8-bittig zu messen. Dann
schreibst Du Die Mess-Quelle schon bei der Initialisierung in ADMUX. Im
Register ADMUX findest Du (beim Mega644) 2 REFS-Bits, 5 MUX-Bits und das
Bit ADLAR. Die REFS-Bits bestimmen die Referenzspannungsauswahl, siehe
Tabelle 21-3 des Datenblatts. ADLAR bestimmt die Ausrichtung des
Resultats, bei gesetztem Bit wird linksbündig ausgerichtet, die oberen 8
Bits stehen dann in ADCH, was das Auslesen des 8-Bit-Messwertes
erleichtert und beschleunigt (der ADC misst aber trotzdem 10-bittig, die
unteren 2 Bit liegen dann in ADCL und verfaulen, weil sie keiner
abholt). Mit den MUX-Bits wird angegeben, welcher Kanal gemessen werden
soll, siehe Tabelle 21-4 des Datenblatts. Du baust Dir nun das
gewünschte Bitmuster zusammen und schreibst es in ADMUX. Das erfordert
keinerlei missverständlichen CONFIG-Kram, sondern nur eine einfache
Zuweisung. Da Bascom leider nur die Registernamen kennt, nicht aber die
Bitnamen, musst Du auf die symbolischen Bitnamen verzichten und das
Bitmuster numerisch angeben (was den Code gegenüber ASM oder C
unübersichtlich macht und oftmals Protest aus der C-Liga bewirkt...).
ADC0 gegen AVcc 8-Bittig gemessen ergibt dann folgende Initialisierung
für ADMUX:

ADMUX = &b01100001
^^^^^--- Mess-Quelle 0 laut Tabelle 21-4
^-------- linksbündige Ausgabe (ADLAR)
^^--------- AVcc als Referenz laut Tabelle 21-3

Du hast also mit einer einzigen Zuweisung Referenz, Kanal und Format
eingestellt. Ist das nicht viel eindeutiger als das Config-Geraffel?

Ebenso gehst Du mit ADCSRA vor, das enthält den Vorteiler und weitere
Bits zum Schalten und Steuern. Mit einer Zuweisung konfigurierst und
startest Du den ADC. Wird nur eine Quelle gemessen, dann lohnt sich der
Freerun-Mode, also das Setzen von ADATE (heißt bei älteren AVRs ADFR),
dann klappert der ADC nach dem Starten im Hintergrund vor sich hin und
kann irgendwann mal nebenher ausgelresen werden, ohne dass das Programm
dabei warten muss. Für ADC0 gegen AVcc 8-Bittig gemessen ergibt dann
folgende Initialisierung für ADCRSA:

ADCSRA = &b11100110
^^^--- Vorteiler 64 (Tabelle 21-5)
^------ kein Interrupt aktivieren
^------- Interrupt-Flag ist hier nicht relevant
^-------- Free-Run, siehe ADCSRB
^--------- ADC starten
^---------- ADC einschalten

Der Vorteiler hängt von der Taktfrequenz des AVRs ab, er soll so gewählt
werden, dass der ADC mit 50kHz bis 200kHz getaktet wird. Er braucht
(ohne Umschaltung der Quellen) 13 Takte für eine Wandlung, hat also
Vorteiler mal 13 Takte ein neues Ergebnis, das so lange in ADCL und ADCH
verfügbar ist, bis es vom nächsten Ergebnis überschrieben wird. Un nun
das neueste Ergebnis zu erfahren, muss dein Programm es nur auslesen:

wert = ADCH

Wobei "wert" als Byte dimensioniert sein sollte. Da dies wieder nur eine
einfache Zuweisung ist, kostet das keinerlei Wartezeit. Und solltest Du
(durch ungünstige Programmplanung) den Wert zu oft abfragen, dann
bekommst Du den alten Wert eben nochmal, solange noch kein neuer
ermittelt wurde.

Ähnliches wie beim ADC wirst Du bei den Timern entdecken. Die Timer der
neueren Controller können viel mehr als Bascom per Config-Geraffel
bietet. Schau Dir das Datenblatt an, das ist verbindlich, verzichte auf
den Config-Kram und greife durch einfache Zuweisungen auf die interne
Peripherie der AVRs zu, Du wirst sehen, dass damit das Programmieren
auch in Bascom bedeutend einfacher und stressfreier wird.

...


****************************** 2 ******************************************


nach studium des textes wirst du wohl auch sehen, dass es manchmal sinvoller ist.. den kleinen micro mal direkt anzusprechen.
dann kannst du auch deine gains etc. einstellen.

dann kanst du es ja mal versuchen und berichten. es würde mich interessieren.


eine andere alternative zur strommessung, die leider wenig beachtung findet, ist bei mir schon seit jahren im einsatz. es handelt sich um eine idee aus dem AN32 von national-semi.

hier der link:

www.national.com/an/AN/AN-32.pdf

auf der seite 11 ganz unten findest du den "current monitor"

interessant an der schaltung ist die zugehörige berechnungsformel.
... da wir ja bei atmels gerne verschiedene referencespannungen für adc
haben, bietet diese schaltung den ultimativen vorteil,
ein poti für "R3" einzusetzen. (als regelwiderstand und nicht als teiler)

da kann man dann locker z.B. 2 Amp. durch den shunt jagen und am poti so lange drehen bis aus dem adc etwa 1000 (1023 ist max) herauskommen. .. und schon ist alles geeicht. (9turn timmer helfen natürlich)

die ausgangspannung der schaltung ist nahezu linear zum strom.
(ausser bei kleinen strömen)

die idee einen jfet haben zu müssen (sind ja mitlerweile selten und teuer)
ist falsch. (gibts aber noch bei csd elec...) 2sk..

ein bc 546 oder ein BS .. mos transi geht genausogut.
man muss nur den + und - vom opv vertauschen!!!
die linearität im ganz unteren messbereich leidet dann etwas aber das ist zu verkraften.

wichtig ist natürlich die auswahl des OPV. ein 358 wird nicht funktionieren
ein 1458 aber schon.

************************************************** *****
************************************************** *****

jetzt bist du wieder gefragt.
entweder die lösung finden oder..
deine schaltung mal posten, damit man dir weitere tips geben kann

gruss klaus

Dämmi
02.03.2010, 15:47
Hey

Danke für die Super Erklärung. Habe damit den ADC recht gut verstanden. Ich habe es auch geschaft ganz normal ADC0 mit interner ref 10bittig auszuwerten.

Allerdings klappt das mit der 10 fachen verstärkung noch nicht ganz. Ich bekomme zwar einen Messwert allerdings ist der nur halb so groß wie er sein sollte. z.B. bei 256mV keine 1023 sondern nur 511. Wenn ich dann am Poti eine ander Spannung einstelle hängt sich der µC auf.

Meinen Versuchsaufbau hab ich angehängt. Dieser ist auch nicht wirklich umfangreich will eben nur einmal testen.

Der Current Monitor gefällt mir schon sehr gut allerdings wollte ich wenns geht mit wenig externer Beschaltung den Strommessen.

Wenn das allerdings mit meiner billigen Versuchsschaltung gehen würde würd ich die nehmen. Dazu ist es doch auch ganz gut zu wissen wie die Gain ADC Eingänge funktionieren.

Gruß Dämmi

kolisson
02.03.2010, 17:02
und wie sieht jetzt im moment deine software aus ?


und noch wichtiger: GIBST DU ETWA WIRKLICH 24VOLT AUF DEN ADC EINGANG ? DAS GEHT NICHT UND KILLT IHN !!!!

Richard
02.03.2010, 17:12
Wenn der Spannungsteiler richtig dimensioniert ist klappt das, mit den
in der Zeichnung angegebenen Werten könnte man durchaus Zweifel
bekommen.

Gruß Richard

Dämmi
02.03.2010, 19:53
Hey

Also ich hab das Poti natürlich nur so weit aufgedreht das zwischen ADCO und ADC1 max 2,56V an liegen da ich ja auch die interne RefU benutze und da ich ja ADCO auf Masse lege (ist in der Zeichnung falsch seh ich grade also ADC0 liegt an Masse und an ADC1 liegt die + Spannung) sollte doch der ADC nich wirklich an 24V liegen da er ja keine Verbindung zur Masse des einstellbaren Netzteils hat. Oder?! Seh ich das falsch?

das Programm sieht wie folgt aus:


$regfile = "m32def.dat" 'Konfiguration auf ATmega 32

$crystal = 16000000 'Quarztakt 16MHz

'-----------------------------Configuration-------------------------------------

Config Portb = Output
Config Portd = Output
Dim Anz1u2 As Byte
Dim Anz3u4 As Byte
Dim Var1 As Byte
Dim Var2 As Byte
Dim Adcvar As Long
Dim X As Word
Dim V24 As Long

Admux = &B11101001
Adcsr = &B11100111

'-----------------------------Dimensionierung-----------------------------------

'----------------------------Hauptprogramm--------------------------------------





Do

Var1 = 0
Var2 = 0

Adcvar = Adch

V24 = Adcvar
Rotate V24 , Left , 2

Adcvar = Adcl
Rotate Adcvar , Right , 6

V24 = V24 + Adcvar

'V24 = V24 * 1000
'V24 = V24 / 4391

Adcvar = V24

'Waitms 100

For X = 1 To Adcvar Step 1

Var1 = Var1 + 1

If Var1 = 100 Then

Var2 = Var2 + 1
Var1 = 0

End If

Next

Anz1u2 = Makebcd(var1)
Anz3u4 = Makebcd(var2)
Portb = Anz1u2
Portd = Anz3u4

Loop


End

kolisson
03.03.2010, 17:25
hallo dämmi,

warum nun dein uC abstürzt weiss ich derzeit nicht.
allerdings // und ich weise nochmals daruf hin, dass ich bisher nix mit "adc-differentiell" gemacht habe, da sich mir der sinn nicht erschliesst//

ja .. allerdings kommt mir deine schaltung merkwürdig vor.
wie soll denn der adc etwas messen können, wenn du die massen nicht verbindest ?

andererseits ist es ja so, dass, wenn du sie verbindest, der atmega wohl angesichts deiner 24 volt den hut heben wird.

du benötigst also spannungsteiler jeweil vor dem shunt und dahiner.
dieser muss so ausgelegt sein, dass die spannung an den adc-in bei deinen angestrebten 12-15volt auf highside niemals mehr als avcc wird.
idealerweise sollte sie bei 2 A natürlich unterhalb deiner Aref bleiben.

aus den genannten gründen verstehe ich bisher auch wirklich nicht, warum man das nun differentiell messen sollte.
das spart doch meines erachtens nach nur eine einzige subtraction bei der auswertung.

also denk nochmal drüber nach.

gruss klaus

Dämmi
04.03.2010, 19:48
Hey

Also ich hab Natürlich AdcVcc auf 5V gelegt und auch AdcGnd verbunden.
Ich hab ja den AdcGND auf 12V glegt und damit diese 12V ja als GND bestimmt und auf den AdcIn gebe ich nie mehr als 14,56V. Daher hab ich auch nie mehr als ne Differenz von 2,56V und das sollte den Adc nicht killen oder? Ich will den Diff Eingang benutzen weil ich dort nen Gain von x10 hab und daduch Spannungen von 0 - 0,256V voll messen kann ohne sie extern zu verstärken.

Die beiden Spannungsquellen also die die den µC mit 5V versorgt und die Einstellbare Spannungsquelle sind Natürlich Galvanisch getrennt. Daher sollte es ja auch klappen die 12V am AdcGnd als 0V zu bestimmen oder bin ich da grade falsch vor?! Ich kann doch auch z.B. einen µC mit 20V Acc und mit 15V Gnd verbinden und dieser sollte nicht Schlappmachen.

Gruß dämmi

kolisson
04.03.2010, 20:18
adc gnd ist immer auch uc-gnd und nicht irgendwas anderes.
du killst den uc wenn du das so machst, wie es sich gerade darstellt.

nimm endlich die spannungsteiler !

gruss klaus

Dämmi
04.03.2010, 20:35
Hm .... Also ich habs ja schon so gemacht und der Adc ist noch ok und mir scheint das auch unlogisch weil der µC ja nirgends mehr als 5V abbekommt die massen der beiden Spannungsquellen sind absolut unabhängig und wenn ich die Masse vom µC einfach auf 12V der anderen Spannungsquelle lege und dann andere Eingänge wie den ADC0 an 14,5V lege hab ich ja eigl nur 2,5V zur Masse das sacht dann ja auch das Messgerät. Also sollte da nichts passieren und das tut es ja auch also bis auf das er sich aufhängt aber ich werd das einfach noch einmal mit den Spannungsteilern versuchen und schauen was dann passiert. Aber das mach ich dann Morgen. Aber sehr vielen Dank für die Hilfe.

lg dämmi

Richard
05.03.2010, 00:27
eff-eff Alarmanalgen machen das ähnlich, die 5 V für den
µC hängen + an 12V und GND an +7V. Die Relais werden dann
mit PNP Transistoren gegen 12V GND geschaltet. Das hat den Vorteil,
die 5V "schwimmt" auf den 12V, Netzschwankungen kommen da
überhaupt nicht an. :-)

Gruß Richard

Johnes
10.03.2010, 12:10
Über den Shunt sollte man mit zwei Teilern, die differentiellen Eingangssignale erzeugen! So haben beide den Massebezug!

Der Teiler muss so demensioniert sein, dass die Spannung nicht URef übersteigt! Sonst kann der µC sich aufhängen.



___
o----------------o---|___|----o--------o
| Shunt |
| |
| |
| |
.-. .-.
| | | |
| | | |
'-' '-'
___ | |
<-------|___|----)------------o <--
zum | | max Uref
ADC ___ | |
<-------|___|----o |
| |
.-. .-.
| | | max | | | max
| | | URef | | | Uref
'-' V '-' V
| |
GND GND

kolisson
10.03.2010, 12:20
@johnes

genau so hatte ich mir das auch vorgestellt und versucht dem fragesteller
das mitzuteilen.
so , wie ich das sehe , stellt der fragesteller aber mitlerweile die gleichen fragen im micrcont.net.

nunja

gruss klaus

Cybererror
24.03.2010, 10:06
Wenn du mich als Fragesteller meinst:
Hatte diese Frage nur hier her rein gestellt..
Aber die Idee werde ich in mein nexten Versuch mal umsetzen...

Dämmi
31.03.2010, 17:49
Moin

Nach langer Zeit kann ich mich endlich wieder diesem Problem zu wenden hatte mit einem Schulprojekt den ganzen Monat zu tun.

Also hab das behoben bekommen mit dem aufhängen hab einfach waitms 2 gleich in den anfang gesetzt.


$regfile = "m32def.dat" 'Konfiguration auf ATmega 32

$crystal = 16000000 'Quarztakt 16MHz

'-----------------------------Configuration-------------------------------------

Config Portb = Output
Config Portd = Output
Dim Anz1u2 As Byte
Dim Anz3u4 As Byte
Dim Var1 As Byte
Dim Var2 As Byte
Dim Adcvar As Long
Dim X As Word
Dim V24 As Long

Admux = &B11101001
Adcsr = &B11100111

'-----------------------------Dimensionierung-----------------------------------

'----------------------------Hauptprogramm--------------------------------------





Do

Waitms 2
Var1 = 0
Var2 = 0

Adcvar = Adch

V24 = Adcvar
Rotate V24 , Left , 2

Adcvar = Adcl
Rotate Adcvar , Right , 6

V24 = V24 + Adcvar

'V24 = V24 * 1000
'V24 = V24 / 4391

Adcvar = V24

'Waitms 100

For X = 1 To Adcvar Step 1

Var1 = Var1 + 1

If Var1 = 100 Then

Var2 = Var2 + 1
Var1 = 0

End If

Next

Anz1u2 = Makebcd(var1)
Anz3u4 = Makebcd(var2)
Portb = Anz1u2
Portd = Anz3u4

Loop


End

Allerdings messe ich nur bis 511 das wäre aber 9bittig gemessen....
Was mach ich falsch beim Bits drehen? Ich komme einfach nicht auf 1023.....

Zum testen hab ich den adc auch über einen Spannungsteiler an die Versorgungsspannung gelegt um einfach einmal dieses 24V Problem beseitigen.

Danke für die Beschaltung des Shunt werde das so einmal Probieren.

Gruß Jonas

Dämmi
01.04.2010, 16:47
Hey

Weiß nun warum er nur bis 511 misst. Er kann nun positive und Negative Spannungen messen und alles Negative ist 512 - 1023.

Kann ich das denn Irgendiwe umschalten das er mit gain auch 10bittig im positiven Berreich misst

Gruß Jonas

Richard
01.04.2010, 16:56
Ich habe das mit avcc als Ref-Spannung gemacht und dann
wurde auch von 0....1023 gemessen.

Gruß Richard

Dämmi
01.04.2010, 17:12
Das ist aber bei mir leider nicht möglich da ich ein möglichst kleines LSB haben will und da bittet sich die Interne Ref an.

Was ich mich auch noch grade frage wofür ist es sinnvoll den Adc so ein zu stellen das AD0 Positiv Differential Input und gleichzeitig Negativ Differential Input mit 10 Gain ist? Wenn ich das mache und Spannung anlege bekomme ich immer 0 raus? Wo für braucht man das denn?

gruß jonas

Richard
01.04.2010, 19:44
Hmm, ich glaube deine erste Schaltung ohne Spannungsteiler
war schon gut so. Allerdings dann ohne einen ADC mit GND Verbindung.

Eine Differenz Messung ist normal der Unterschied zweier WERTE, hier
die Spannungs Werte vor und nach dem Mess R. Dazu braucht/darf kein
anderer Bezugspunkt (hier GND) eingesetzt werden.

Wichtg ist alleine das der Spannungsabfall über dem Mess R nicht
zu groß wird. Ohne einer echten realen Verbindung zum Netzteil
der zu Messenden Spannung kann dann auch nichts abfackeln.

Es wird NICHT die Spannung gegen GND verglichen!!!! Es wird nur
die Differenz beider Messpunkte ermittelt. Schaue Dir mal so gnannte
"Instrumentenverstärker" = OP Schaltung an. Da ist das Ähnlich
gelöst.

Oder Messe einfach mal die Spannung über einen von Strom
durchgeflossenen Widerstand. Da ist das Messgerät auch nicht
mit GND verbunden und man erhält trotzdem ein genaues
Ergebnis ( wenn das Messeisen genau ist).

Aber ACHTUNG, Finger in die Taschen! Ansonsten "Erdest" Du die
Schaltung, soll heißen DU machst eine Verbindung Zwischen beiden
Netzteilen......

Gruß Richard

Dämmi
05.04.2010, 11:10
Kann mir keiner erklären warum ich ADC0 auf positiv diff input sowie output einstellen kann? Würde gerne wissen was das für einen Sinn hat.

Kann ich mit Diff Messungen auch von 0 - 1023 messen oder nur positive signale von 0-511?

Gruß jonas

Richard
05.04.2010, 11:36
Ich habe gerade ein Poti angeschlossen und getestet, mit AVcc =
Vref an vcc sollte man von 0...1023 (bei 10 Bit) messen können.

Gruß Richard

Dämmi
05.04.2010, 11:56
hm... nur so ok danke danke für die zahlreiche Hilfe ich werd denn nun mal sehen wie ich das bei mir löse.

gruß jonas

Dämmi
12.08.2010, 14:29
Hey,

ich hab mich einmal wieder an dieses Problem gesetzt und bekomme es immer noch nicht hin. Hier noch einmal die genau Fehlerbeschreibung.

Wenn ich den MUX auf 00000 einstelle und dadurch ADC0 singel ended input ist kann ich bei eingesteltem Vref bis 1023 messen. Daduch sollte ja bewiesen sein das das 10bitige messen funktioniert.

Wenn ich allerdings nun den MUX auf 01001 stelle und dadurch ADC1 positive differential input und ADC0 negativ differential input mit gain x10 ist messe ich egal bei welcher referenzspannung ob intern oder extern oder Avcc immer nur bis 511.

Ich verstehe einfach nicht wie Richard 10bitig messen kann.

gruß jonas

adelinde
21.08.2010, 09:17
Hallo Zusammen,
ist zwar schon eine Weile her, aber für alle sie bei der Suche nach Strommessung hier landen, noch eine andere Möglichkeit.

Der "Hall-Effekt Stromsensor ACS712 von Allegro" übernimmt die ganze Arbeit und gibt eine, zum Strom, lineare Spannung ab.
e.V. muss diese für kleine Ströme noch verstärkt werden.


http://www.watterott.com/de/Sensoren/Strom/ACS712-Breakout

Gruß Siggi