Hi! Ich habe meine LED-Fader Schaltung an 3 in reihe geschaltete NiCd Mikro Akkus mit 250mAh Kapazität. Die Last besteht aus 3 LEDs die vom AVR per Software PWM über NPN Transistoren gegen Vorwiderstand-->Masse getrieben werden. Wenn die LEDs aus sind verbraucht die Schaltung nur wenige mA. Bei weißem Licht können das dann schonmal 70 mA sein. Der AVR läuft mit 8 Mhz. Um die Akkuspannung nun zu überwachen messe ich mit dem ADC (Wandlungstakt 125kHz) im ADC Noise-Reduction Sleep-Mode periodisch alle ungefär viertel Sekunden (durch einen Timer gesteuert) über einen Spannungsteiler die Akkuspannung. Um den Einfluss der ständig anders angesteuerten LEDs auf die Spannung zu unterbinden schalte ich diese vor der Wandlung ab und danach wieder an. Das bringt schon deutliche Unterschiede.. zumindest verhindert es dass der Wert um +-30 rumschwankt. Trotzdem variiert der Wert immer um so +-3 je nach dem wie viele LEDs gerade wie hell an sind :-( Habe ausser parallel zu den Tastern zum entprellen keine Kapazitäten in der Schaltung verbaut und die enden ja an den hochohmigen Eingängen des µC also kann hier kein Strom fließen. Wenn ich den Fading-Vorgang pausiere bleibt der Wert stabil, ich habe bis auf die normalen Quantisierungsfehler absolut kein Rauschen am ADC. Woher kommen diese Spannungsschwankungen obwohl die Bedingungen während der Messung eigentlich immer gleich sind? Müssen sich die Akkus erst eine Zeit lang erhohlen um ihre ursprüngliche Spannung nach abschalten der Last wieder bereit zu stellen? mfg PoWl
Du hast dir die Antwort bereits selbst gegeben, genau das ist es. Je nach Ladezustand geht das schneller oder langsamer.
>Trotzdem variiert der Wert immer um so +-3 Was ist denn daran so schlimm ? Bei 8Bit Messwert sind das gerade mal 1.5%. >D.h. dagegen kann ich garnix machen? Akkus heiss machen. Pro 10° Celsius mehr verdoppelt sich die Reaktionsgeschwindigkeit deiner Akkus.
>>D.h. dagegen kann ich garnix machen?
Glättungs-C ?
Glättungs-C. Ich weiß nicht wo ich den hinbauen soll. Alle Versuche die Spannung irgendwie zu stabilisieren haben eher das Gegenteil bewirkt. sobald ich einen Kondensator zwischen Vcc und GND lege schwankt mein ADC noch viel stärker. Das Liegt wohl daran dass der Kondensator der ja nun von den LEDs leergesaugt wird sich während die LEDs aus sind wieder vollsaugt und somit den akku weiter destabilisiert. Denk ich mal. Eventuell hilft es wenn ich einen Kondensator mit ausreichender kapazität nehme, hm? Aber da stehen wieder kosten und nutzen nicht ganz im Verhältnis.
Ich würde den Glättungs-C direkt an den ADC Eingang legen. Wirkt dann mit dem Spannungsteiler (bei entsprechender Dimensionierung) als Tiefpass.
glättungs-C am ADC hat nur eine deutliche verstärkung der Schwankungen gezeigt :-( egal wo ich einen kondensator hinbaue, er wirkt sich immer negativ aus, ob zwischen ADC eingang und GND, zwischen Vcc und GND. Nur zwischen Aref und GND zeigt er zwar keine negative aber auch keine positive wirkung. Der ADC rauscht nichtmal wenn ich die "mindestbeschaltung" also den 100n-kerko zwischen Aref und GND ganz weg lasse. habe jedoch das gefühl dass wenn ich nun die Referenz nicht an den Aref pin lege, das rauschen schlimmer bzw. vorhanden ist. Aber wie schon gesagt habe ich kein problem mit rauschen sondern mit spannungsschwankungn der gnazen schaltung. Auch ein 470µF kondensator direkt am akku hat nix gebracht, oder ist der einfach nur zu klein? Naja aber danke für die hilfe, ich denke wir brauchen hieran nicht weiter zu diskutieren da es für mein vorhaben nicht wichtig ist genauste messungen zu machen während die schaltung auf akku-betrieb läuft.
der kondensator muss direkt an den an den verbraucher sonst induktivität + widerstand zu groß Ein kondensator 100nF für mikrocontroller Ein Kondensator ~400µF für leds Ein Kondensator 10µF für spannungsteiler (Tiefpass) mikrocontroller und leds nicht auf die selbe gnd plane und vcc setzen, sondern mit einer dünnen leiterbahn verbinden. Die Akkus sind's nicht schuld, sondern induktivität & Widerstand der Zuleitungen.
Du willst also die Akkuspannung im (fast) Leerlauf messen und schaltest vor der Messung die LEDs aus. Wenn die LEDs eingeschaltet sind, stellt sich an der gesamten Schaltung eine durch den Innenwiderstand der Akkus verringerte Betriebsspannung ein. Schaltest Du die LEDs aus, steigt die Betriebsspannung langsam auf den Wert der Leerlaufspannung an. Langsam deshalb, weil der Akku-Innenwiderstand und die in der Schaltung verbauten Kondensatoren einen Tiefpass bilden. 1. Abblockkondensatoren nicht größer als notwendig (aber auch nicht weglassen!) 2. Ein Tiefpass am Messeingang hat ebenfalls einen negativen Einfluss, da dadurch der Messeingang nur langsam der Betriebsspannung folgt. 3. Zwischen Abschaltung der LEDs und Messung etwas Zeit verstreichen lassen damit die Spannungen auf ihren korrekten Wert einschwingen können, Zeit ermitteln Mittels Trial and Error (ich schätze ein paar Millisekunden). Reinhard
ebenfalls interessant :-) wird ausprobiert! abblockkondensator? da meinst du doch denk ich mal nur einen kondensator am µC zwischen Vcc und Masse, oder? Einen solchen habe ich garnicht verbaut.
Bitte daran denken, dass die AVRs für jeden Vcc und AVcc einen separaten Blockkondensator brauchen (Datenblatt!). Und ja, die Blockkondensatoren müssen so dicht wie möglich an die zuständigen Pinne vom Chip. Um Deine Probleme nicht zu verschlimmern solltest Du die Blockkondensatoren mit nur 4.7nF..10nF wählen. Ggf. AVcc und Vcc über eine kleine Induktivität verbinden AVcc und AGnd nahe beieinander führen und zentral mit den Gegenparts Vcc / GND verbinden. Keine Tannenbaumversorgung oder Strickleiter, sondern Sternförmige Versorgung aufbauen. Es gibt vielleicht eine Möglichkeit, das Problem eleganter zu lösen, aber die erfordert mehr Aufwand. Bei Deiner Lösung ist das Schwierige, dass die Messschaltung und die Messgröße sich gegenseitig beeinflussen. Du könntest versuchen die Schaltung ein wenig abzukoppeln, also z.B. auf 3.3V herunter zu setzen über einen Spannungsregler. Hinter dem Spannungsregler glättest Du dann mit einem Kondensator. Damit ist Deine Referenz-Spannung schon mal weniger durch die Akku-Schwankungen beeinflusst. Um weiter runter zu gehen, kannst Du auch einen Mega-L einsetzen und das ganze mit <3V betreiben. Um den Einfluss der LED-Belastung zu verringern, könntest Du die LEDs sequenziell Schalten, also jeweils nur eine und das in schneller Folge. Das reduziert die punktuelle Belastung für den Akku. Natürlich solltest Du bei der Trennung über einen Spannungsregler die LEDs auf der Akku-Seite lassen und nur den AVR auf die Reglerseite bringen, da die LEDs Dir sonst den Kondensator leer saugen. Gegen die Trägheit des Akkus kann man nichts machen, da hilft nur ein experimentelles Ermitteln eines optimalen Messzeitpunktes, oder, um auf unterschiedliche Akkus reagieren zu können, kann man auch mehrere Messungen in schneller Folge machen und dann sehen, wann die Änderung ausreichend klein geworden ist. Gruß, Ulrich
> abblockkondensator? da meinst du doch denk ich mal nur einen > kondensator am µC zwischen Vcc und Masse, oder? Einen solchen > habe ich garnicht verbaut. Ja genau sowas. Aber egal ob direkt am µC oder sonstwo zwischen Vcc und Masse, die Wirkung als Tiefpass bleibt im Falle Deiner Anwendung die Gleiche. Ich kann mich den Ausführungen von Ulrich nur anschließen, wobei der Ansatz mit der Mehrfachmessung auch eine gute Idee ist. Reinhard
--------------------OT------------------------------------ @Ulrich P. Du schreibst von 10nF - 4n7F Abblockkondensatoren. Ich habe bis jetzt nur 100nF als Empfehlung gefunden. Wie kommst du auf deinen Wert? Hängt das vielleicht mit der Frequenz zusammen? Diese wäre bei mir 16MHz. Könnte es sein, dass die 100nF ein Wert sind, die von den alten Logikgattern stammt? Eine Webseite wo ich das nachlesen könnte wäre schön Das wäre praktisch für mich, weil ich eine 4000er Rolle mit 4n7F SMD-Cs habe.
Die Kondensatoren sollen kurzfristige Strom-Bedürfnisse des Chips befriedigen und damit Einflüsse auf die restliche Schaltung minimieren. 100nF sind der übliche Wert, bei vielen Chips und sparsamer Versorgung pumpt hinterher die ganze Schaltung. Man sollte also auch da nicht immer einfach nur den Standard verwenden. In Deinem Fall ist es aber so, dass du eine sparsame Schaltung an einer potenten Stromversorgung hast, daher können die Blockkondensatoren kleiner ausfallen. Im Grunde ist Lange-Leiterbahn+C ein RC Glied als Tiefpass. Um noch ein wenig mehr heraus zu holen, könntest Du Vcc/GND und AVcc/AGND getrennt führen, also direkt hinter einem eventuell vorhandenen Spannungsregler trennen und separat führen. Ohne Spannungsregler dann einfach ab Akku. In Serie zu AVcc kommt dann noch eine Spule 10mH, parallel zu AVcc und AGND einmal 47nF. Die (Block-)Kondensatoren dann bitte auf jeden Fall so dicht am Chip wie möglich, auch die Induktivität. Die Leitungen für AVcc/AGND bitte entweder komplett abseits der LEDs führen bzw. wenn sie an den LEDs vorbei müssen, dann immer möglichst quer dazu. Kenn jetzt die ADC Stufe im AVR nicht auswendig aber nicht dass es da einschlägt und Dir die S/H Stufe vorlädt oder die VRef verwirrt. Achso, beim Mega32 liegen AVCC und VCC, glaube ich, auf gegenüberliegenden Seiten. Verbindet man diese möglichst kurz, muss man unterm Chip drunter durch. Das ist der denkbar schlechteste Weg, weil man direkt unterm DIE durch muss und damit der direkten Abstrahlung des Chips ausgesetzt ist. Also lieber einen anderen Weg benutzen. Eine weitere Optimierung ( naja, dann sind wir aber schon fast im Audio-Philosophischen-Bereich :)) könnte sein: Die Schaltung wird ja direkt aus dem Akku versorgt: Zwei Schottky-Dioden entkoppeln direkt hinterm Akku zwei Spannungen: Eine ist für die Anzeige zuständig und sie sollte mit 470..1000uF geblockt werden. Die Andere kannst Du mit 100uF grob filtern und dann klemmst Du den AVR dahinter. Der natürlich mit den 4,7..10nF an allen Versorgungen. Naja, eine dritte Schottky könnte dann auch noch die AVCC entkoppeln, 100mH + 47nF sollten reichen, aber nee...:) Aber, hallo, was für ein Aufwand! Ist aber ein interessantes Spiel, auf jeden Fall. Ich würde es für mich nicht treiben sondern VCC mit 10nF gegen GND blocken, AVcc gegen AGND mit 47nF blocken, letztere über 1..10mH an VCC. In der Software 4 Messungen addieren, danach adc >>= 2; Wenn es dann noch zappelt ist es die kosmische Hintergrundstrahlung, die man nicht so ohne weiteres aus der Schaltung bekommt. Gruß, Astralix
Aus Bascom Samples... MCU mit Idle während der AD Wandlung schlafen legen. Evtl klappts damit besser.... '-------------------------------------------------------------------- ' ADC_INT.BAS ' demonstration of GETADC() function in combintion with the idle mode ' for a better noise immunity ' Getadc() will also work for other AVR chips that have an ADC converter '-------------------------------------------------------------------- $regfile = "4433def.dat" $crystal = 4000000 $baud = 19200 'configure single mode and auto prescaler setting 'The single mode must be used with the GETADC() function 'The prescaler divides the internal clock by 2,4,8,15,32,64 or 128 'Because the ADC needs a clock from 50-200 KHz 'The AUTO feature, will select the highest clockrate possible Config Adc = Single , Prescaler = Auto 'Now give power to the chip On Adc Adc_isr Nosave Enable Adc Enable Interrupts Dim W As Word , Channel As Byte Channel = 0 'now read A/D value from channel 0 Do Channel = 0 'idle will put the micro into sleep. 'an interrupt will wake the micro. Start Adc Idle Stop Adc Print "Channel " ; Channel ; " value " ; W Waitms 500 Loop End Adc_isr: push r24 in r24,sreg push r24 push r25 W = Getadc(channel) pop r25 pop r24 !out sreg,r24 pop r24 Return 'The new M163 has options for the reference voltage 'For this chip you can use the additional param : 'Config Adc = Single , Prescaler = Auto, Reference = Internal 'The reference param may be : 'OFF : AREF, internal reference turned off 'AVCC : AVCC, with external capacitor at AREF pin 'INTERNAL : Internal 2.56 voltage reference with external capacitor ar AREF pin 'Using the additional param on chip that do not have the internal reference will have no effect.
@ Ulrich P. Du schreibst Keine Tannenbaumversorgung oder Strickleiter, sondern Sternförmige Versorgung aufbauen. Kannst du bitte eine Zeichnung von diesen Varianten zeichnen. NOK OK Kann mir jetzt nichts genaueres darunter vorstellen. Danke schonmal mfg Alex
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.